summaryrefslogtreecommitdiff
path: root/data/en_us/alb
diff options
context:
space:
mode:
authorZhineng Li <im@zhineng.li>2026-07-12 17:11:17 +0800
committerZhineng Li <im@zhineng.li>2026-07-12 17:11:17 +0800
commit1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634 (patch)
tree5f0857666365b7e40cdaa3733ebe1f3ba9e13c67 /data/en_us/alb
parent7347bac4ab7e136157fc94777e6cf87ef9e08599 (diff)
downloadafterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.tar.gz
afterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.zip
update APIs 20260712
Diffstat (limited to 'data/en_us/alb')
-rw-r--r--data/en_us/alb/2020-06-16/api-docs.php32940
1 files changed, 13678 insertions, 19262 deletions
diff --git a/data/en_us/alb/2020-06-16/api-docs.php b/data/en_us/alb/2020-06-16/api-docs.php
index 411e23a..b30205b 100644
--- a/data/en_us/alb/2020-06-16/api-docs.php
+++ b/data/en_us/alb/2020-06-16/api-docs.php
@@ -1,401 +1,86 @@
<?php return [
'version' => '1.0',
- 'info' => [
- 'style' => 'RPC',
- 'product' => 'Alb',
- 'version' => '2020-06-16',
- ],
+ 'info' => ['style' => 'RPC', 'product' => 'Alb', 'version' => '2020-06-16'],
'directories' => [
[
- 'id' => 322361,
- 'title' => null,
+ 'children' => ['GetLoadBalancerAttribute', 'UpdateLoadBalancerAttribute', 'UpdateLoadBalancerZones', 'UpdateLoadBalancerEdition', 'UpdateLoadBalancerAddressTypeConfig', 'DisableDeletionProtection', 'EnableDeletionProtection', 'StartShiftLoadBalancerZones', 'CancelShiftLoadBalancerZones', 'EnableLoadBalancerIpv6Internet', 'DisableLoadBalancerIpv6Internet', 'LoadBalancerJoinSecurityGroup', 'LoadBalancerLeaveSecurityGroup'],
'type' => 'directory',
- 'children' => [
- 'DescribeRegions',
- 'DescribeZones',
- ],
+ 'title' => 'Instances',
],
[
- 'id' => 322364,
- 'title' => null,
+ 'children' => ['CreateListener', 'GetListenerAttribute', 'DeleteListener', 'ListListeners', 'StartListener', 'StopListener', 'UpdateListenerAttribute', 'UpdateListenerLogConfig', 'GetListenerHealthStatus'],
'type' => 'directory',
- 'children' => [
- 'CreateLoadBalancer',
- 'GetLoadBalancerAttribute',
- 'DeleteLoadBalancer',
- 'UpdateLoadBalancerAttribute',
- 'UpdateLoadBalancerZones',
- 'UpdateLoadBalancerEdition',
- 'UpdateLoadBalancerAddressTypeConfig',
- 'ListLoadBalancers',
- 'DisableDeletionProtection',
- 'EnableDeletionProtection',
- 'StartShiftLoadBalancerZones',
- 'CancelShiftLoadBalancerZones',
- 'EnableLoadBalancerIpv6Internet',
- 'DisableLoadBalancerIpv6Internet',
- 'LoadBalancerJoinSecurityGroup',
- 'LoadBalancerLeaveSecurityGroup',
- ],
+ 'title' => 'Listeners',
],
[
- 'id' => 322381,
- 'title' => null,
+ 'children' => ['AddServersToServerGroup', 'CreateServerGroup', 'DeleteServerGroup', 'UpdateServerGroupAttribute', 'UpdateServerGroupServersAttribute', 'ListServerGroups', 'ListServerGroupServers', 'RemoveServersFromServerGroup', 'ReplaceServersInServerGroup'],
'type' => 'directory',
- 'children' => [
- 'CreateListener',
- 'GetListenerAttribute',
- 'DeleteListener',
- 'ListListeners',
- 'StartListener',
- 'StopListener',
- 'UpdateListenerAttribute',
- 'UpdateListenerLogConfig',
- 'GetListenerHealthStatus',
- ],
+ 'title' => 'Server groups',
],
[
- 'id' => 322391,
- 'title' => null,
+ 'children' => ['CreateRules', 'DeleteRules', 'UpdateRuleAttribute', 'UpdateRulesAttribute'],
'type' => 'directory',
- 'children' => [
- 'AddServersToServerGroup',
- 'CreateServerGroup',
- 'DeleteServerGroup',
- 'UpdateServerGroupAttribute',
- 'UpdateServerGroupServersAttribute',
- 'ListServerGroups',
- 'ListServerGroupServers',
- 'RemoveServersFromServerGroup',
- 'ReplaceServersInServerGroup',
- ],
+ 'title' => 'Forwarding rules',
],
[
- 'id' => 322401,
- 'title' => null,
+ 'children' => ['AssociateAdditionalCertificatesWithListener', 'DissociateAdditionalCertificatesFromListener', 'ListListenerCertificates'],
'type' => 'directory',
- 'children' => [
- 'CreateRule',
- 'CreateRules',
- 'DeleteRule',
- 'DeleteRules',
- 'UpdateRuleAttribute',
- 'UpdateRulesAttribute',
- 'ListRules',
- ],
+ 'title' => 'Listener certificates',
],
[
- 'id' => 322409,
- 'title' => null,
+ 'children' => ['DetachCommonBandwidthPackageFromLoadBalancer', 'AttachCommonBandwidthPackageToLoadBalancer'],
'type' => 'directory',
- 'children' => [
- 'AssociateAdditionalCertificatesWithListener',
- 'DissociateAdditionalCertificatesFromListener',
- 'ListListenerCertificates',
- ],
+ 'title' => 'Shared bandwidth packages',
],
[
- 'id' => 322413,
- 'title' => null,
+ 'children' => ['DisableLoadBalancerAccessLog', 'EnableLoadBalancerAccessLog'],
'type' => 'directory',
- 'children' => [
- 'DetachCommonBandwidthPackageFromLoadBalancer',
- 'AttachCommonBandwidthPackageToLoadBalancer',
- ],
+ 'title' => 'Access logs',
],
[
- 'id' => 322416,
- 'title' => null,
+ 'children' => ['CreateHealthCheckTemplate', 'GetHealthCheckTemplateAttribute', 'DeleteHealthCheckTemplates', 'UpdateHealthCheckTemplateAttribute', 'ListHealthCheckTemplates'],
'type' => 'directory',
- 'children' => [
- 'DisableLoadBalancerAccessLog',
- 'EnableLoadBalancerAccessLog',
- ],
+ 'title' => 'Health checks',
],
[
- 'id' => 322419,
- 'title' => null,
+ 'children' => ['CreateSecurityPolicy', 'DeleteSecurityPolicy', 'UpdateSecurityPolicyAttribute', 'ListSecurityPolicies', 'ListSecurityPolicyRelations', 'ListSystemSecurityPolicies'],
'type' => 'directory',
- 'children' => [
- 'CreateHealthCheckTemplate',
- 'GetHealthCheckTemplateAttribute',
- 'DeleteHealthCheckTemplates',
- 'UpdateHealthCheckTemplateAttribute',
- 'ListHealthCheckTemplates',
- 'ApplyHealthCheckTemplateToServerGroup',
- ],
+ 'title' => 'Security policies',
],
[
- 'id' => 322426,
- 'title' => null,
+ 'children' => ['AddEntriesToAcl', 'CreateAcl', 'DeleteAcl', 'UpdateAclAttribute', 'ListAcls', 'ListAclEntries', 'AssociateAclsWithListener', 'ListAclRelations', 'DissociateAclsFromListener', 'RemoveEntriesFromAcl'],
'type' => 'directory',
- 'children' => [
- 'CreateSecurityPolicy',
- 'DeleteSecurityPolicy',
- 'UpdateSecurityPolicyAttribute',
- 'ListSecurityPolicies',
- 'ListSecurityPolicyRelations',
- 'ListSystemSecurityPolicies',
- ],
+ 'title' => 'Access control',
],
[
- 'id' => 322433,
- 'title' => null,
+ 'children' => ['ListAsynJobs'],
'type' => 'directory',
- 'children' => [
- 'AddEntriesToAcl',
- 'CreateAcl',
- 'DeleteAcl',
- 'UpdateAclAttribute',
- 'ListAcls',
- 'ListAclEntries',
- 'AssociateAclsWithListener',
- 'ListAclRelations',
- 'DissociateAclsFromListener',
- 'RemoveEntriesFromAcl',
- ],
+ 'title' => 'Asynchronous tasks',
],
[
- 'id' => 322444,
- 'title' => null,
+ 'children' => ['DescribeCapacityReservation'],
'type' => 'directory',
- 'children' => [
- 'MoveResourceGroup',
- ],
+ 'title' => 'Resource reservation',
],
[
- 'id' => 322446,
- 'title' => null,
+ 'children' => ['UpdateAScripts', 'CreateAScripts', 'DeleteAScripts', 'ListAScripts'],
'type' => 'directory',
- 'children' => [
- 'ListTagKeys',
- 'ListTagResources',
- 'ListTagValues',
- 'TagResources',
- 'UnTagResources',
- ],
+ 'title' => 'Programmable scripts',
],
[
- 'id' => 322452,
- 'title' => null,
+ 'children' => ['ApplyHealthCheckTemplateToServerGroup', 'CreateLoadBalancer', 'CreateRule', 'DeleteLoadBalancer', 'DeleteRule', 'DescribeRegions', 'DescribeZones', 'ListLoadBalancers', 'ListRules', 'ListTagKeys', 'ListTagResources', 'ListTagValues', 'ModifyCapacityReservation', 'MoveResourceGroup', 'TagResources', 'UnTagResources'],
+ 'title' => 'Others',
'type' => 'directory',
- 'children' => [
- 'ListAsynJobs',
- ],
- ],
- [
- 'id' => 322454,
- 'title' => null,
- 'type' => 'directory',
- 'children' => [
- 'ModifyCapacityReservation',
- 'DescribeCapacityReservation',
- ],
- ],
- [
- 'id' => 322457,
- 'title' => null,
- 'type' => 'directory',
- 'children' => [
- 'UpdateAScripts',
- 'CreateAScripts',
- 'DeleteAScripts',
- 'ListAScripts',
- ],
],
],
'components' => [
'schemas' => [],
],
'apis' => [
- 'DescribeRegions' => [
- 'summary' => 'Queries available regions.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
- ],
- ],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- 'abilityTreeCode' => '203',
- 'abilityTreeNodes' => [
- 'FEATUREslbRXTOWD',
- ],
- 'tenantRelevance' => 'publicInformation',
- ],
- 'parameters' => [
- [
- 'name' => 'AcceptLanguage',
- 'in' => 'query',
- 'schema' => [
- 'title' => '语言',
- 'description' => 'The supported language. Valid values:'."\n"
- ."\n"
- .'* **zh-CN** (default): Chinese'."\n"
- .'* **en-US**: English'."\n"
- .'* **ja**: Japanese'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'zh-CN',
- 'default' => 'zh-CN',
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => '',
- 'type' => 'object',
- 'properties' => [
- 'Regions' => [
- 'title' => 'Region列表',
- 'description' => 'The regions.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => '',
- 'type' => 'object',
- 'properties' => [
- 'LocalName' => [
- 'title' => '名称',
- 'description' => 'The name of the region.'."\n",
- 'type' => 'string',
- 'example' => 'China (Hangzhou)',
- ],
- 'RegionEndpoint' => [
- 'title' => 'endpoint',
- 'description' => 'The endpoint of region service.'."\n",
- 'type' => 'string',
- 'example' => 'alb.cn-hangzhou.aliyuncs.com',
- ],
- 'RegionId' => [
- 'title' => 'RegionId',
- 'description' => 'The ID of the region.'."\n",
- 'type' => 'string',
- 'example' => 'cn-hangzhou',
- ],
- ],
- ],
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- ],
- ],
- ],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"华东1(杭州)\\",\\n \\"RegionEndpoint\\": \\"alb.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ],\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeRegionsResponse>\\n <Regions>\\n <LocalName>华东1(杭州)</LocalName>\\n <RegionEndpoint>alb.cn-hangzhou.aliyuncs.com</RegionEndpoint>\\n <RegionId>cn-hangzhou</RegionId>\\n </Regions>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</DescribeRegionsResponse>","errorExample":""}]',
- 'title' => 'DescribeRegions',
- ],
- 'DescribeZones' => [
- 'summary' => 'Queries zones in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
- ],
- ],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- 'abilityTreeCode' => '204',
- 'abilityTreeNodes' => [
- 'FEATUREslbRXTOWD',
- ],
- 'tenantRelevance' => 'publicInformation',
- ],
- 'parameters' => [
- [
- 'name' => 'AcceptLanguage',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The supported language. Valid values:'."\n"
- ."\n"
- .'* **zh-CN** (default): Chinese'."\n"
- .'* **en-US**: English'."\n"
- .'* **ja**: Japanese'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'zh-CN',
- 'default' => 'zh-CN',
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- 'Zones' => [
- 'title' => '可用区列表',
- 'description' => 'The zones.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The zone.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'LocalName' => [
- 'title' => '可用区名称',
- 'description' => 'The name of the zone.'."\n",
- 'type' => 'string',
- 'example' => 'Hangzhou Zone G',
- ],
- 'ZoneId' => [
- 'title' => '可用区id',
- 'description' => 'The zone ID.'."\n",
- 'type' => 'string',
- 'example' => 'cn-hangzhou-g',
- ],
- ],
- ],
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPdzTKM4svjIT4VQig7tTMKqiHlxKt2p5Zuz45p+Lxdq',
- ],
- ],
- ],
- ],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\",\\n \\"Zones\\": [\\n {\\n \\"LocalName\\": \\"杭州 可用区G\\",\\n \\"ZoneId\\": \\"cn-hangzhou-g\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeZonesResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <Zones>\\n <LocalName>华东 1 可用区G</LocalName>\\n <ZoneId>cn-hangzhou-g</ZoneId>\\n </Zones>\\n</DescribeZonesResponse>","errorExample":""}]',
- 'title' => 'DescribeZones',
- ],
- 'CreateLoadBalancer' => [
- 'summary' => 'Creates an Application Load Balancer (ALB) instance in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'AddEntriesToAcl' => [
+ 'summary' => 'Adds IP entries to an access control list (ACL).',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -403,973 +88,294 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeCode' => '194',
- 'abilityTreeNodes' => [
- 'FEATUREslbM7ALO6',
- ],
- ],
+ 'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the value, but you must ensure that it is unique among different requests. The token can only contain ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system uses the value of **RequestId** as the value of **ClientToken**. The value of the **RequestId** parameter may be different for each API request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
- ],
- [
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform a dry run. Default value: false. Valid values:'."\n"
- ."\n"
- .'* **true:** performs a dry run. The system checks the required parameters, request format, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false:** performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- ],
- [
- 'name' => 'VpcId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '负载均衡实例的专有网络ID。',
- 'description' => 'The ID of the virtual private cloud (VPC) in which you want to create the ALB instance.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'vpc-bp1b49rqrybk45nio****',
- ],
- ],
- [
- 'name' => 'AddressType',
- 'in' => 'query',
- 'schema' => [
- 'title' => '负载均衡的地址类型',
- 'description' => 'The type of the address of the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **Internet:** The ALB instance uses a public IP address. The domain name of the ALB instance is resolved to the public IP address. In this case, the ALB instance can be accessed over the Internet.'."\n"
- .'* **Intranet:** The ALB instance uses a private IP address. The domain name of the ALB instance is resolved to the private IP address. In this case, the ALB instance can be accessed over the VPC in which the ALB instance is deployed.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Internet',
- ],
- ],
- [
- 'name' => 'LoadBalancerName',
- 'in' => 'query',
- 'schema' => [
- 'title' => '名称',
- 'description' => 'The name of the ALB instance.'."\n"
- ."\n"
- .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'alb1',
- ],
- ],
- [
- 'name' => 'DeletionProtectionEnabled',
- 'in' => 'query',
- 'schema' => [
- 'title' => '是否开启删除保护',
- 'description' => 'Specifies whether to enable deletion protection. Default value: false. Valid values:'."\n"
- ."\n"
- .'* **true:** enables deletion protection.'."\n"
- .'* **false:** disables deletion protection.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- ],
- [
- 'name' => 'ModificationProtectionConfig',
+ 'name' => 'AclId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '负载均衡修改保护相关信息',
- 'description' => 'The configuration read-only mode settings.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Reason' => [
- 'title' => '设置修改保护状态的原因',
- 'description' => 'The reason for enabling the configuration read-only mode.'."\n"
- ."\n"
- .'The reason must be 2 to 128 characters in length, can contain letters, digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.'."\n"
- ."\n"
- .'> This parameter takes effect only when **Status** is set to **ConsoleProtection**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Status' => [
- 'title' => '负载均衡修改保护状态',
- 'description' => 'Specifies whether to enable the configuration read-only mode. Valid values:'."\n"
- ."\n"
- .'* **NonProtection**: Disables the configuration read-only mode. In this case, the value of the **Reason** parameter that you specify does not take effect. If you specify **Reason**, the value of the parameter is cleared.'."\n"
- .'* **ConsoleProtection**: Enables the configuration read-only mode. In this case, the value of the **Reason** parameter that you specify takes effect.****'."\n"
- ."\n"
- .'> If the parameter is set to **ConsoleProtection**, the configuration read-only mode is enabled. You cannot modify the configurations of the ALB instance in the ALB console. However, you can call API operations to modify the configurations of the ALB instance.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'ConsoleProtection',
- ],
- ],
- 'required' => false,
- ],
+ 'schema' => ['title' => 'AclId', 'description' => 'The ID of the ACL.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'acl-hp34s2h0xx1ht4nwo****'],
],
[
- 'name' => 'ZoneMappings',
+ 'name' => 'AclEntries',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '可用区及交换机映射列表',
- 'description' => 'The mappings between zones an vSwitches. You can specify at most 10 zones. If the selected region supports two or more zones, select at least two zones to ensure the high availability of your service.'."\n",
+ 'title' => '',
+ 'description' => 'The ACL entries that you want to add. You can add at most 20 entries in each call.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The mappings between zones an vSwitches. You can specify at most 10 zones. If the selected region supports two or more zones, select at least two zones to ensure the high availability of your service.'."\n",
+ 'description' => 'The ACL entry.'."\n",
'type' => 'object',
'properties' => [
- 'VSwitchId' => [
- 'title' => '交换机标识',
- 'description' => 'The vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone. You can specify at most 10 zones. If the region supports two or more zones, specify at least two zones.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'vsw-sersdf****',
- ],
- 'ZoneId' => [
- 'title' => '可用区',
- 'description' => 'The zone ID of the cluster. You can specify at most 10 zones. If the region supports two or more zones, specify at least two zones. You can call the [DescribeZones](~~36064~~) operation to query the most recent zone list.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cn-hangzhou-a',
- ],
- 'AllocationId' => [
- 'title' => '弹性公网IP实例ID',
- 'description' => 'The ID of the EIP to be associated with the Internet-facing ALB instance.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'eip-bp1aedxso6u80u0qf****',
- ],
- 'EipType' => [
- 'title' => '弹性公网IP类型',
- 'description' => 'The type of EIP. Valid values:'."\n"
- ."\n"
- .'* **Common**: an EIP.'."\n"
- .'* **Anycast**: an Anycast EIP.'."\n"
- ."\n"
- .'> For more information about the regions in which ALB supports Anycast EIPs, see [Limits](~~460727~~).',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Common',
- ],
- 'IntranetAddress' => [
- 'description' => 'The private IPv4 address.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.10.1',
- ],
+ 'Description' => ['title' => '', 'description' => 'The description of the ACL entry. The description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'You can add at most 20 entries in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test-entry'],
+ 'Entry' => ['title' => '', 'description' => 'The CIDR block in the ACL entry.'."\n", 'type' => 'string', 'required' => true, 'example' => '10.0.1.0/24'],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
'required' => true,
- 'maxItems' => 10,
+ 'maxItems' => 20,
'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'AddressAllocatedMode',
- 'in' => 'query',
- 'schema' => [
- 'title' => '地址模式',
- 'description' => 'The mode in which IP addresses are allocated to the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **Fixed** (default): a fixed IP address is assigned to the ALB instance in each zone.'."\n"
- .'* **Dynamic**: IP addresses are dynamically allocated to the ALB instance in each zone.'."\n"
- ."\n"
- .'> Starting from 00:00:00 on February 25, 2025 (UTC+8), when you call this operation to create an ALB instance, the instance is automatically the [upgraded version](~~2864070~~) regardless of the mode you specify. Upgraded ALB instances no longer differentiate between IP modes. Instead, they globally auto-scale IP addresses for providing load balancing services. The ALB instances you created before this date and time are not affected.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Dynamic',
- 'default' => 'Fixed',
- ],
- ],
- [
- 'name' => 'ResourceGroupId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '资源组',
- 'description' => 'The ID of the resource group.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-atstuj3rtop****',
- ],
- ],
- [
- 'name' => 'LoadBalancerEdition',
- 'in' => 'query',
- 'schema' => [
- 'title' => '负载均衡的版本',
- 'description' => 'The edition of the ALB instance. The features and billing rules vary based on the edition of the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **Basic:** basic.'."\n"
- .'* **Standard:** standard.'."\n"
- .'* **StandardWithWaf:** WAF-enabled.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Standard',
- ],
- ],
- [
- 'name' => 'LoadBalancerBillingConfig',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '计费相关配置信息',
- 'description' => 'The billing method of the ALB instance.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'PayType' => [
- 'title' => '实例的计费类型',
- 'description' => 'The billing method of the instance.'."\n"
- ."\n"
- .'Set the value to **PostPay**, which specifies the pay-as-you-go billing method.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'PostPay',
- 'default' => 'PostPay',
- ],
- 'BandwidthPackageId' => [
- 'title' => '共享带宽实例ID',
- 'description' => 'The ID of the Internet Shared Bandwidth instance that is associated with the Internet-facing ALB instance.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'cbwp-bp1vevu8h3ieh****',
- ],
- ],
- 'required' => true,
- ],
- ],
- [
- 'name' => 'AddressIpVersion',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '协议版本',
- 'description' => 'The protocol version. Valid values:'."\n"
- ."\n"
- .'* **IPv4:** IPv4.'."\n"
- .'* **DualStack:** dual stack.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'IPv4',
- ],
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******'],
],
[
- 'name' => 'Tag',
+ 'name' => 'DryRun',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => '',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => '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' => 'env',
- ],
- 'Value' => [
- 'description' => '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' => 'product',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
+ 'schema' => ['title' => 'dryRun', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The operation to create an ALB instance.'."\n",
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'LoadBalancerId' => [
- 'title' => '负载均衡实例标识',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'example' => 'alb-o9ulmq5hgn68jk****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
+ 'JobId' => ['title' => 'job', 'description' => 'The asynchronous task ID.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'ResourceNotEnough.VSwitchIp',
- 'errorMessage' => 'The specified resource %s is not enough.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.LoadBalancersNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'Mismatch.ZoneIdAndVSwitchId',
- 'errorMessage' => 'The %s and %s are mismatched.',
- ],
- [
- 'errorCode' => 'DuplicatedParam.ZoneId',
- 'errorMessage' => 'The param of ZoneId is duplicated.',
- ],
- [
- 'errorCode' => 'OperationDenyed.ServiceLinkedRoleNotExist',
- 'errorMessage' => 'The service linked role AliyunServiceRoleForAlb does not exist.',
- ],
+ ['errorCode' => 'ResourceAlreadyExist.AclEntry', 'errorMessage' => 'The specified resource %s already exists.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.AclEntriesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.Acl', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.ListenerAclEntriesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => 'The quota of %s is exceeded for resource %s, usage %s/%s.'],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerAclEntriesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => 'The quota of %s is exceeded for resource %s, usage %s/%s.'],
],
404 => [
- [
- 'errorCode' => 'ResourceNotFound.VSwitch',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
],
- 'eventInfo' => [
- 'enable' => false,
- 'eventNames' => [],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"LoadBalancerId\\": \\"alb-o9ulmq5hqn68jk****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateLoadBalancerResponse>\\n <LoadBalancerId>alb-o9ulmq5hgn68jk****</LoadBalancerId>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</CreateLoadBalancerResponse>","errorExample":""}]',
- 'title' => 'CreateLoadBalancer',
- 'description' => '**CreateLoadBalancer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the status of an ALB instance.'."\n"
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","errorExample":""},{"type":"xml","example":"<AddEntriesToAclResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</AddEntriesToAclResponse>","errorExample":""}]',
+ 'title' => 'AddEntriesToAcl',
+ 'description' => '* Each ACL can contain IP addresses or CIDR blocks. Take note of the following limits on ACLs:'."\n"
."\n"
- .'* If an ALB instance is in the **Provisioning** state, it indicates that the ALB instance is being created.'."\n"
- .'* If an ALB instance is in the **Active** state, it indicates that the ALB instance is created.'."\n",
- ],
- 'GetLoadBalancerAttribute' => [
- 'summary' => 'Queries the details of an Application Load Balancer (ALB) instance.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ .' * The maximum number of IP entries that can be added to an ACL with each Alibaba Cloud account at a time: 20'."\n"
+ .' * The maximum number of IP entries that each ACL can contain: 1,000'."\n"
+ ."\n"
+ .'* **AddEntriesToAcl** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAclEntries](~~213616~~) operation to query the status of the task.'."\n"
+ ."\n"
+ .' * If the ACL is in the **Adding** state, the IP entries are being added.'."\n"
+ .' * If the ACL is in the **Available** state, the IP entries are added.'."\n",
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:AddEntriesToAcl',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ],
+ ],
+ ],
],
+ ],
+ 'AddServersToServerGroup' => [
+ 'summary' => 'Adds backend servers to a server group.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'get',
- 'abilityTreeCode' => '200',
- 'abilityTreeNodes' => [
- 'FEATUREslbM7ALO6',
- 'FEATUREslbK3ZR0L',
- 'FEATUREslbN5IE4S',
- ],
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => ['FEATUREslbULKWF1'],
],
'parameters' => [
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'ServerGroupId',
'in' => 'query',
- 'schema' => [
- 'title' => '实例标识',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-o9ulmq5hgn68jk****',
- ],
+ 'schema' => ['description' => 'The ID of the server group.', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtop****', 'title' => ''],
],
- ],
- 'responses' => [
- 200 => [
+ [
+ 'name' => 'Servers',
+ 'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The details of the ALB instance configuration.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AccessLogConfig' => [
- 'title' => '访问日志属性',
- 'description' => 'The configuration of the access log feature.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'LogProject' => [
- 'title' => '访问日志投递的logProject',
- 'description' => 'The Log Service project.'."\n",
- 'type' => 'string',
- 'example' => 'sls-setter',
- ],
- 'LogStore' => [
- 'title' => '删除保护开启时间',
- 'description' => 'The Logstore.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- ],
- ],
- 'AddressAllocatedMode' => [
- 'title' => '地址分配方式',
- 'description' => 'The mode in which IP addresses are allocated. Valid values:'."\n"
+ 'title' => '',
+ 'description' => 'A list of backend servers. You can add up to 200 servers in a single call.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The backend server.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Description' => ['description' => 'The description of the backend server. The description must be 2 to 256 characters in length and cannot start with http\\:// or https\\://.', 'type' => 'string', 'example' => 'test', 'title' => '', 'required' => false],
+ 'Port' => ['description' => 'The port used by the backend server. Valid values: **1** to **65535**. You can add up to 200 servers in a single call.'."\n"
."\n"
- .'* **Fixed**: allocates a static IP address to the ALB instance.'."\n"
- .'* **Dynamic**: dynamically allocates an IP address to each zone of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'Dynamic',
- ],
- 'AddressType' => [
- 'title' => '地址类型',
- 'description' => 'The network type of the ALB instance. Valid values:'."\n"
+ .'> This parameter is required when **ServerType** is set to **Ecs**, **Eni**, **Eci**, or **Ip**. You do not need to set this parameter when **ServerType** is set to **Fc**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'docRequired' => false, 'example' => '80', 'title' => ''],
+ 'ServerId' => ['description' => 'The ID of the backend server. You can add up to 200 servers in a single call.'."\n"
."\n"
- .'* **Internet**: The ALB instance uses a public IP address. The domain name of the ALB instance is resolved to the public IP address. Therefore, the ALB instance can be accessed over the Internet.'."\n"
- .'* **Intranet**: The ALB instance uses a private IP address. The domain name of the ALB instance is resolved to the private IP address. In this case, the ALB instance can be accessed over the virtual private cloud (VPC) where the ALB instance is deployed.'."\n",
- 'type' => 'string',
- 'example' => 'Intranet',
- ],
- 'BandwidthPackageId' => [
- 'title' => '带宽包ID',
- 'description' => 'The ID of the elastic IP address (EIP) bandwidth plan that is associated with the Internet-facing ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'cbwp-bp1vevu8h3ieh****',
- ],
- 'CreateTime' => [
- 'title' => '资源创建时间',
- 'description' => 'The time when the resource was created. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2022-07-02T02:49:05Z',
- ],
- 'DNSName' => [
- 'title' => 'DNS域名',
- 'description' => 'The domain name of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com',
- ],
- 'DeletionProtectionConfig' => [
- 'title' => '负载均衡删除保护相关信息',
- 'description' => 'The configuration of deletion protection.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Enabled' => [
- 'title' => '删除保护状态',
- 'description' => 'Indicates whether the deletion protection feature is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'EnabledTime' => [
- 'title' => '删除保护开启时间',
- 'description' => 'The time when the deletion protection feature was enabled. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2022-08-02T02:49:05Z',
- ],
- ],
- ],
- 'LoadBalancerBillingConfig' => [
- 'title' => '计费相关属性',
- 'description' => 'The billing method of the ALB instance.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'PayType' => [
- 'title' => '实例的计费类型',
- 'description' => 'The billing method.'."\n"
- ."\n"
- .'Only **PostPay** is returned, which indicates the pay-as-you-go billing method.'."\n",
- 'type' => 'string',
- 'example' => 'PostPay',
- 'default' => 'PostPay',
- ],
- ],
- ],
- 'LoadBalancerBussinessStatus' => [
- 'title' => '实例业务状态',
- 'description' => 'The service status of the ALB instance. Valid values:'."\n"
+ .'- If the server group is of the **Instance** type, set this parameter to the ID of an **ECS** instance, an **ENI**, or an **ECI** instance.'."\n"
."\n"
- .'* **Abnormal**'."\n"
- .'* **Normal**'."\n",
- 'type' => 'string',
- 'example' => 'Normal',
- ],
- 'LoadBalancerEdition' => [
- 'title' => '负载均衡的版本',
- 'description' => 'The edition of the ALB instance. The features and billing rules vary based on the edition of the ALB instance. Valid values:'."\n"
+ .'- If the server group is of the **Ip** type, set this parameter to an IP address.'."\n"
."\n"
- .'* **Basic**'."\n"
- .'* **Standard**'."\n"
- .'* **StandardWithWaf**'."\n",
- 'type' => 'string',
- 'example' => 'Standard',
- ],
- 'LoadBalancerId' => [
- 'title' => '负载均衡标识',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'example' => 'alb-o9ulmq5hgn68jk****',
- ],
- 'LoadBalancerName' => [
- 'title' => '实例名称',
- 'description' => 'The name of the ALB instance.'."\n"
+ .'- If the server group is of the **Fc** type, set this parameter to the Alibaba Cloud Resource Name (ARN) of a function in Function Compute.', 'type' => 'string', 'required' => false, 'example' => 'i-uf616vu8me******', 'title' => ''],
+ 'ServerIp' => ['description' => 'The IP address of the backend server. You can add up to 200 servers in a single call.'."\n"
."\n"
- .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n",
- 'type' => 'string',
- 'example' => 'alb1',
- ],
- 'LoadBalancerOperationLocks' => [
- 'title' => '锁定原因',
- 'description' => 'The type of the lock. Valid values:'."\n"
+ .'If **ServerType** is set to **Eni**, you can specify the primary private IP address or a secondary private IP address of the ENI.'."\n"
."\n"
- .'* **SecurityLocked**: The ALB instance is locked due to security reasons.'."\n"
- .'* **RelatedResourceLocked**: The ALB instance is locked due to association issues.'."\n"
- .'* **FinancialLocked**: The ALB instance is locked due to overdue payments.'."\n"
- .'* **ResidualLocked**: The ALB instance is locked because the associated resources have overdue payments and the resources are released.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => '',
- 'type' => 'object',
- 'properties' => [
- 'LockReason' => [
- 'title' => '锁定原因',
- 'description' => 'The reason why the ALB instance is locked. This parameter is valid only if **LoadBalancerBussinessStatus** is set to **Abnormal**.'."\n",
- 'type' => 'string',
- 'example' => 'nolock',
- ],
- 'LockType' => [
- 'title' => '锁定类型',
- 'description' => 'The lock type. Valid values:'."\n"
- ."\n"
- .'* **SecurityLocked**: The ALB instance is locked due to security reasons.'."\n"
- .'* **RelatedResourceLocked**: The ALB instance is locked due to other resources that are associated with the ALB instance.'."\n"
- .'* **FinancialLocked**: The ALB instance is locked due to overdue payments.'."\n"
- .'* **ResidualLocked**: The ALB instance is locked because the associated resources have overdue payments and the resources are released.'."\n",
- 'type' => 'string',
- 'example' => 'FinancialLocked',
- ],
- ],
- ],
- ],
- 'LoadBalancerStatus' => [
- 'title' => '实例状态',
- 'description' => 'The status of the ALB instance. Valid values:'."\n"
+ .'> You do not need to set this parameter when **ServerType** is set to **Fc**.', 'type' => 'string', 'example' => '192.168.1.1', 'title' => '', 'required' => false],
+ 'ServerType' => ['description' => 'The type of backend server. You can add up to 200 servers in a single call. Valid values:'."\n"
."\n"
- .'* **Inactive**: The ALB instance is disabled. ALB instances in the Inactive state do not forward traffic.'."\n"
- .'* **Active**: The ALB instance is running.'."\n"
- .'* **Provisioning**: The ALB instance is being created.'."\n"
- .'* **Configuring**: The ALB instance is being modified.'."\n"
- .'* **CreateFailed**: The system failed to create the ALB instance. In this case, you are not charged for the ALB instance. You can only delete the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'Active',
- ],
- 'ModificationProtectionConfig' => [
- 'title' => '负载均衡修改保护相关信息',
- 'description' => 'The configuration read-only mode settings.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Reason' => [
- 'title' => '设置修改保护状态的原因',
- 'description' => 'The reason why the configuration read-only mode is enabled.'."\n"
- ."\n"
- .'The name must be 2 to 128 character characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n"
- ."\n"
- .'This parameter takes effect only if **Status** is set to **ConsoleProtection**.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- 'Status' => [
- 'title' => '负载均衡修改保护状态',
- 'description' => 'Specifies whether the configuration read-only mode is enabled. Valid values:'."\n"
- ."\n"
- .'* **NonProtection**: The configuration read-only mode is disabled. In this case, the value of the **Reason** parameter that you specify does not take effect. If you set **Reason**, the value is cleared.'."\n"
- .'* **ConsoleProtection**: The configuration read-only mode is enabled. In this case, the value of the **Reason** parameter takes effect.****'."\n"
- ."\n"
- .'> If the parameter is set to **ConsoleProtection**, the configuration read-only mode is enabled. You cannot modify the configurations of the ALB instance in the ALB console. However, you can call API operations to modify the configurations of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'ConsoleProtection',
- ],
- ],
- ],
- 'RegionId' => [
- 'title' => '地域',
- 'description' => 'The region ID of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'cn-hangzhou',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
- 'ResourceGroupId' => [
- 'title' => '企业资源组ID',
- 'description' => 'The resource group ID.'."\n",
- 'type' => 'string',
- 'example' => 'rg-atstuj3rtop****',
- ],
- 'Tags' => [
- 'title' => '标签列表',
- 'description' => 'The tag value.'."\n"
+ .'- **Ecs**: an ECS instance.'."\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' => 'array',
- 'items' => [
- 'description' => '',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => '实例的标签键',
- 'description' => 'The tag key.'."\n"
- ."\n"
- .'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' => 'FinanceDept',
- ],
- 'Value' => [
- 'title' => '实例的标签值',
- 'description' => 'The tag value.'."\n"
- ."\n"
- .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n",
- 'type' => 'string',
- 'example' => 'FinanceJoshua',
- ],
- ],
- ],
- ],
- 'VpcId' => [
- 'title' => 'Vpc网络ID',
- 'description' => 'The ID of the VPC in which the ALB instance is deployed.'."\n",
- 'type' => 'string',
- 'example' => 'vpc-bp1b49rqrybk45nio****',
- ],
- 'ZoneMappings' => [
- 'title' => '负载均衡的可用区资源',
- 'description' => 'The mappings between zones and vSwitches. At most 10 zones are returned. If the current region supports two or more zones, at least two zones are returned.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The mappings between zones and vSwitches. At most 10 zones are returned. If the current region supports two or more zones, at least two zones are returned.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'LoadBalancerAddresses' => [
- 'title' => '固定VIP模式下,负载均衡在此可用区中的地址列表',
- 'description' => 'The address of the ALB instance.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The address of the ALB instance.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Address' => [
- 'title' => 'IP地址',
- 'description' => 'An IPv4 address.'."\n"
- ."\n"
- .'This parameter takes effect when **AddressIPVersion** is set to **IPv4** or **DualStack**. The network type is determined by the value of **AddressType**.'."\n",
- 'type' => 'string',
- 'example' => '192.168.10.1',
- ],
- 'Ipv6Address' => [
- 'title' => 'Ipv6地址',
- 'description' => 'An IPv6 address.'."\n"
- ."\n"
- .'This parameter takes effect only when **AddressIPVersion** is set to **DualStack**. The network type is determined by the value of **Ipv6AddressType**.'."\n",
- 'type' => 'string',
- 'example' => '2408:XXXX:39d:eb00::/56',
- ],
- 'IntranetAddress' => [
- 'title' => '私网地址',
- 'description' => 'The private IPv4 address.'."\n",
- 'type' => 'string',
- 'example' => '10.0.1.181',
- ],
- 'AllocationId' => [
- 'description' => 'The elastic IP address (EIP).'."\n",
- 'type' => 'string',
- 'example' => 'eip-uf6wm****1zj9',
- ],
- 'EipType' => [
- 'description' => 'The type of EIP. Valid values:'."\n"
- ."\n"
- .'* **Common**: an EIP.'."\n"
- .'* **Anycast**: an Anycast EIP.'."\n"
- ."\n"
- .'> For more information about the regions in which ALB supports Anycast EIPs, see [Limits](~~460727~~).'."\n",
- 'type' => 'string',
- 'example' => 'Common',
- ],
- 'IntranetAddressHcStatus' => [
- 'description' => 'The health status of the private IPv4 address of the ALB instance. '."\n"
- .'This parameter is returned only when the Status of the zone is Active.Valid values:'."\n"
- ."\n"
- .'- **Healthy**'."\n"
- ."\n"
- .'- **Unhealthy**',
- 'type' => 'string',
- 'example' => 'Healthy',
- ],
- 'Ipv6AddressHcStatus' => [
- 'description' => 'The health status of the private IPv6 address of the ALB instance. '."\n"
- .'This parameter is returned only when the Status of the zone is Active.Valid values:'."\n"
- ."\n"
- .'- **Healthy**'."\n"
- ."\n"
- .'- **Unhealthy**',
- 'type' => 'string',
- 'example' => 'Healthy',
- ],
- 'Ipv4LocalAddresses' => [
- 'description' => 'The IPv4 link-local addresses. The IP addresses that the ALB instance uses to communicate with the backend servers.',
- 'type' => 'array',
- 'items' => [
- 'description' => 'The IPv4 link-local address.',
- 'type' => 'string',
- 'example' => '10.1.0.62',
- ],
- ],
- 'Ipv6LocalAddresses' => [
- 'description' => 'The IPv6 link-local addresses. The IP addresses that the ALB instance uses to communicate with the backend servers.',
- 'type' => 'array',
- 'items' => [
- 'description' => 'The IPv6 link-local address.',
- 'type' => 'string',
- 'example' => '2408:xxxx:249:dd01:6f4:750f:xxxx:bcda',
- ],
- ],
- ],
- ],
- ],
- 'VSwitchId' => [
- 'title' => '交换机标识',
- 'description' => 'The vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone of an ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'vsw-bp12mw1f8k3jgy****',
- ],
- 'ZoneId' => [
- 'title' => '可用区标识',
- 'description' => 'The zone ID of the ALB instance.'."\n"
- ."\n"
- .'You can call the [DescribeZones](~~189196~~) operation to query the most recent zone list.'."\n",
- 'type' => 'string',
- 'example' => 'cn-hangzhou-a',
- ],
- 'Status' => [
- 'description' => 'The zone status. Valid values:'."\n"
- ."\n"
- .'- **Active**: The ALB instance is running.'."\n"
- ."\n"
- .'- **Stopped**: The ALB instance is disabled. '."\n"
- ."\n"
- .'- **Shifted**: The ALB instance is removed.'."\n"
- ."\n"
- .'- **Starting**: The ALB instance is starting.'."\n"
- ."\n"
- .'- **Stopping**: The ALB instance is stopping.',
- 'type' => 'string',
- 'example' => 'Active',
- ],
- ],
- ],
- ],
- 'AddressIpVersion' => [
- 'title' => '协议版本',
- 'description' => 'The IP version. Valid values:'."\n"
+ .'- **Eni**: an ENI.'."\n"
."\n"
- .'* **IPv4**'."\n"
- .'* **DualStack**'."\n",
- 'type' => 'string',
- 'example' => 'DualStack',
- ],
- 'Ipv6AddressType' => [
- 'title' => 'IPV6地址类型',
- 'description' => 'The type of IPv6 address that is used by the ALB instance. Valid values:'."\n"
+ .'- **Eci**: an ECI.'."\n"
."\n"
- .'* **Internet**: The ALB instance uses a public IP address. The domain name of the ALB instance is resolved to the public IP address. Therefore, the ALB instance can be accessed over the Internet.'."\n"
- .'* **Intranet**: The ALB instance uses a private IP address. The domain name of the ALB instance is resolved to the private IP address. Therefore, the ALB instance can be accessed over the VPC in which the ALB instance is deployed.'."\n",
- 'type' => 'string',
- 'example' => 'Intranet',
- ],
- 'SecurityGroupIds' => [
- 'description' => 'The IDs of the security groups to which the ALB instance is added.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ID of the security group to which the ALB instance is added.'."\n",
- 'type' => 'string',
- 'example' => 'sg-uf63j385dzwlm6cy****',
- ],
+ .'- **Ip**: an IP address.'."\n"
+ ."\n"
+ .'- **Fc**: a function in Function Compute.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Ecs', 'title' => ''],
+ 'Weight' => ['description' => 'The weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If you set the weight to **0**, no requests are forwarded to the backend server. You can add up to 200 servers in a single call.'."\n"
+ ."\n"
+ .'> You do not need to set this parameter when **ServerType** is set to **Fc**.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => '', 'required' => false],
+ 'RemoteIpEnabled' => ['description' => 'Specifies whether to enable the remote IP feature. You can add up to 200 servers in a single call. Valid values:'."\n"
+ ."\n"
+ .'- **true**: enabled.'."\n"
+ ."\n"
+ .'- **false**: disabled.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when **ServerType** is set to **Ip**.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- ],
- ],
- ],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication has failed for LoadBalancer.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- ],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"AccessLogConfig\\": {\\n \\"LogProject\\": \\"sls-setter\\",\\n \\"LogStore\\": \\"test\\"\\n },\\n \\"AddressAllocatedMode\\": \\"Dynamic\\",\\n \\"AddressType\\": \\"Intranet\\",\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"DNSName\\": \\"alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\",\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"EnabledTime\\": \\"2022-08-02T02:49:05Z\\"\\n },\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"LoadBalancerBussinessStatus\\": \\"Normal\\",\\n \\"LoadBalancerEdition\\": \\"Standard\\",\\n \\"LoadBalancerId\\": \\"alb-o9ulmq5hgn68jk****\\",\\n \\"LoadBalancerName\\": \\"alb1\\",\\n \\"LoadBalancerOperationLocks\\": [\\n {\\n \\"LockReason\\": \\"欠费\\",\\n \\"LockType\\": \\"FinancialLocked\\"\\n }\\n ],\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"ModificationProtectionConfig\\": {\\n \\"Reason\\": \\"托管实例\\",\\n \\"Status\\": \\"ConsoleProtection\\"\\n },\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"Address\\": \\"10.1.0.61\\",\\n \\"Ipv6Address\\": \\"2408:xxxx:249:dd01:6f4:750f:xxxx:bcd9\\",\\n \\"IntranetAddress\\": \\"10.1.0.61\\",\\n \\"AllocationId\\": \\"eip-uf6wm****1zj9\\",\\n \\"EipType\\": \\"Common\\",\\n \\"IntranetAddressHcStatus\\": \\"Healthy\\",\\n \\"Ipv6AddressHcStatus\\": \\"Healthy\\",\\n \\"Ipv4LocalAddresses\\": [\\n \\"10.1.0.62\\"\\n ],\\n \\"Ipv6LocalAddresses\\": [\\n \\"2408:xxxx:249:dd01:6f4:750f:xxxx:bcda\\"\\n ]\\n }\\n ],\\n \\"VSwitchId\\": \\"vsw-bp12mw1f8k3jgy****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"AddressIpVersion\\": \\"DualStack\\",\\n \\"Ipv6AddressType\\": \\"Intranet\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-uf63j385dzwlm6cy****\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetLoadBalancerAttributeResponse>\\n <AccessLogConfig>\\n <LogProject>sls-setter</LogProject>\\n <LogStore>test</LogStore>\\n </AccessLogConfig>\\n <AddressAllocatedMode>Dynamic</AddressAllocatedMode>\\n <AddressType>Intranet</AddressType>\\n <BandwidthPackageId>cbwp-bp1vevu8h3ieh****</BandwidthPackageId>\\n <CreateTime>2022-07-02T02:49:05Z</CreateTime>\\n <DNSName>alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com</DNSName>\\n <DeletionProtectionConfig>\\n <Enabled>true</Enabled>\\n <EnabledTime>2022-08-02T02:49:05Z</EnabledTime>\\n </DeletionProtectionConfig>\\n <LoadBalancerBillingConfig>\\n <PayType>PostPay</PayType>\\n </LoadBalancerBillingConfig>\\n <LoadBalancerBussinessStatus>Normal</LoadBalancerBussinessStatus>\\n <LoadBalancerEdition>Standard</LoadBalancerEdition>\\n <LoadBalancerId>alb-o9ulmq5hgn68jk****</LoadBalancerId>\\n <LoadBalancerName>alb1</LoadBalancerName>\\n <LoadBalancerOperationLocks>\\n <LockReason>欠费</LockReason>\\n <LockType>FinancialLocked</LockType>\\n </LoadBalancerOperationLocks>\\n <LoadBalancerStatus>Active</LoadBalancerStatus>\\n <ModificationProtectionConfig>\\n <Reason>托管实例</Reason>\\n <Status>ConsoleProtection</Status>\\n </ModificationProtectionConfig>\\n <RegionId>cn-hangzhou</RegionId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <Tags>\\n <Key>FinanceDept</Key>\\n <Value>FinanceJoshua</Value>\\n </Tags>\\n <VpcId>vpc-bp1b49rqrybk45nio****</VpcId>\\n <ZoneMappings>\\n <LoadBalancerAddresses>\\n <Address>192.168.10.1</Address>\\n <Ipv6Address>2408:XXXX:39d:eb00::/56</Ipv6Address>\\n </LoadBalancerAddresses>\\n <VSwitchId>vsw-bp12mw1f8k3jgy****</VSwitchId>\\n <ZoneId>cn-hangzhou-a</ZoneId>\\n </ZoneMappings>\\n <AddressIpVersion>DualStack</AddressIpVersion>\\n <Ipv6AddressType>Intranet</Ipv6AddressType>\\n</GetLoadBalancerAttributeResponse>","errorExample":""}]',
- 'title' => 'GetLoadBalancerAttribute',
- ],
- 'DeleteLoadBalancer' => [
- 'summary' => 'Deletes an Application Load Balancer (ALB) instance.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
- ],
- ],
- 'operationType' => 'write',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
- 'parameters' => [
- [
- 'name' => 'LoadBalancerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '实例id',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
'required' => true,
- 'example' => 'lb-bp1b6c719dfa08ex****',
+ 'maxItems' => 200,
+ 'minItems' => 1,
+ 'example' => '',
],
],
[
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'Generate a token on your client to make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['title' => 'dryRun', 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run. The system checks the required parameters, request format, and service limits. If the request fails the dry run, an error is returned. If the request passes the dry run, the `DryRunOperation` error code is returned. In a dry run, no backend servers are added.'."\n"
+ ."\n"
+ .'- **false** (default): sends the request. If the request passes the check, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The ALB instance to be deleted.'."\n",
+ 'description' => 'The returned data.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The ID of the asynchronous task.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.DeletionProtectionEnabled',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
+ ['errorCode' => 'Conflict.BackendServer', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.VpcVportNotFound', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'IncorrectStatus.Eni', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
+ ['errorCode' => 'ResourceInUse.IP', 'errorMessage' => 'The specified resource %s is in use.', 'description' => 'The specified resource %s is in use.'],
+ ['errorCode' => 'OperationDenied.NoAvailableVSwitch', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'OperationDenied.VgwVipNotFound', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'OperationDenied.CloudBox', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'Mismatch.Type', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'The %s is mismatched for %s and %s.'],
+ ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'The %s is mismatched for %s and %s.'],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceInConfiguring', 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', 'description' => ''],
+ ['errorCode' => 'DuplicatedParam.BackendServer', 'errorMessage' => 'The param of %s is duplicated.', 'description' => 'The param of %s is duplicated.'],
+ ['errorCode' => 'OperationDenied.EciNotSupportJobType', 'errorMessage' => 'The operation is not allowed because of eci not support job type.', 'description' => 'The operation is not allowed because of eci not support job type.'],
+ ['errorCode' => 'IllegalParam.ServerIp', 'errorMessage' => 'The param of ServerIp is illegal.', 'description' => ''],
+ ['errorCode' => 'Mismatch.ServerType', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => ''],
+ ['errorCode' => 'ServiceUnavailable', 'errorMessage' => 'The request has failed due to a temporary failure of the server.', 'description' => 'The request has failed due to a temporary failure of the server.'],
],
403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication has failed for LoadBalancer.',
- ],
+ ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication has failed for ServerGroup.', 'description' => ''],
],
[
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.Ecs', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.Eci', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.Eni', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteLoadBalancerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</DeleteLoadBalancerResponse>","errorExample":""}]',
- 'title' => 'DeleteLoadBalancer',
- 'description' => '**DeleteLoadBalancer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [GetLoadBalancerAttribute](~~214362~~) to query the status of the task.'."\n"
+ 'title' => 'AddServersToServerGroup',
+ 'description' => '**AddServersToServerGroup** is an asynchronous operation. After you send a request, the system returns a request ID, but the backend servers are not added immediately. The system adds the servers in the background.'."\n"
."\n"
- .'* If an ALB instance is in the **Deleting** state, the ALB instance is being deleted.'."\n"
- .'* If an ALB instance cannot be found, the ALB instance is deleted.'."\n",
- ],
- 'UpdateLoadBalancerAttribute' => [
- 'summary' => 'Modifies the attributes of an Application Load Balancer (ALB) instance, such as the name and the configuration read-only mode.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ .'1. Call [ListServerGroups](~~213627~~) to query the status of the server group:'."\n"
+ ."\n"
+ .'- If the server group is in the **Configuring** state, the configuration of the server group is being modified.'."\n"
+ ."\n"
+ .'- If the server group is in the **Available** state, the server group is running.'."\n"
+ ."\n"
+ .'2. Call [ListServerGroupServers](~~213628~~) to query the status of the backend servers:'."\n"
+ ."\n"
+ .'- If a backend server is in the **Adding** state, it is being added to the server group.'."\n"
+ ."\n"
+ .'- If a backend server is in the **Available** state, it is running.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:AddServersToServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","type":"json"}]',
+ ],
+ 'ApplyHealthCheckTemplateToServerGroup' => [
+ 'summary' => 'Applies a health check template to a server group.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -1377,162 +383,85 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'ClientToken',
+ 'name' => 'HealthCheckTemplateId',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['title' => '', 'description' => 'The template ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'hct-bp1qjwo61pqz3ahltv****'],
],
[
- 'name' => 'DryRun',
+ 'name' => 'ServerGroupId',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false**: performs a dry run and sends the request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed. This is the default value.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['title' => '', 'description' => 'The server group ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'sgp-n80wyad08u0tox****'],
],
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '实例id',
- 'description' => 'The ID of the ALB instance.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-o9ulmq5hgn68jk****',
- ],
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665******'],
],
[
- 'name' => 'LoadBalancerName',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '名称',
- 'description' => 'The name of the ALB instance. 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' => 'lb-instance-test',
- ],
- ],
- [
- 'name' => 'ModificationProtectionConfig',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '负载均衡修改保护相关信息',
- 'description' => 'The configuration read-only mode settings.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Reason' => [
- 'title' => '设置修改保护状态的原因',
- 'description' => 'The reason for enabling the configuration read-only mode.'."\n"
- ."\n"
- .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n"
- ."\n"
- .'This parameter takes effect only when **Status** is set to **ConsoleProtection**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Status' => [
- 'title' => '负载均衡修改保护状态',
- 'description' => 'Specifies whether to enable the configuration read-only mode. Valid values:'."\n"
- ."\n"
- .'* **NonProtection**: disables the configuration read-only mode. In this case, the value of the **Reason** parameter that you specify does not take effect. If you set the value of **Reason**, the value is cleared.'."\n"
- .'* **ConsoleProtection**: enables the configuration read-only mode. In this case, the value of the **Reason** parameter that you specify takes effect.****'."\n"
- ."\n"
- .'> If the parameter is set to **ConsoleProtection**, the configuration read-only mode is enabled. You cannot modify the configurations of the ALB instance in the ALB console. However, you can call API operations to modify the configurations of the ALB instance.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'ConsoleProtection',
- ],
- ],
- 'required' => false,
- ],
+ 'schema' => ['title' => 'dryRun', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The attributes that are modified.'."\n",
+ 'description' => 'The server group to which the template is applied.'."\n",
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The ID of the synchronous task.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
+ 'JobId' => ['title' => '', 'description' => 'The asynchronous task ID.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
+ ['errorCode' => 'IncorrectStatus.HealthCheckTemplate', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
],
403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication has failed for ServerGroup.', 'description' => ''],
],
[
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ['errorCode' => 'ResourceNotFound.HealthCheckTemplate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\"\\n}","errorExample":""},{"type":"xml","example":"<ApplyHealthCheckTemplateToServerGroupResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</ApplyHealthCheckTemplateToServerGroupResponse>","errorExample":""}]',
+ 'title' => 'ApplyHealthCheckTemplateToServerGroup',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:ApplyHealthCheckTemplateToServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthCheckTemplateId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#serverGroupId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerAttributeResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</UpdateLoadBalancerAttributeResponse>","errorExample":""}]',
- 'title' => 'UpdateLoadBalancerAttribute',
- 'description' => '**UpdateLoadBalancerAttribute** is an asynchronous operation. After you send a request, the system returns a request ID and runs the task in the background. You can call [GetLoadBalancerAttribute](~~214362~~) to query the status of the task.'."\n"
- ."\n"
- .'* If the ALB instance is in the **Configuring** state, the ALB instance is being modified.'."\n"
- .'* If the ALB instance is in the **Active** state, the ALB instance is modified.'."\n",
],
- 'UpdateLoadBalancerZones' => [
- 'summary' => 'Modifies the zones of an Application Load Balancer (ALB) instance.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'AssociateAclsWithListener' => [
+ 'summary' => 'Associates access control lists (ACLs) with a listener.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -1541,1324 +470,328 @@
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
- 'abilityTreeCode' => '198',
- 'abilityTreeNodes' => [
- 'FEATUREslb9RALVR',
- 'FEATUREslbFTB0NK',
- ],
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '161',
+ 'abilityTreeNodes' => ['FEATUREslbAYSA83'],
],
'parameters' => [
[
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
- ],
- [
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- ],
- [
- 'name' => 'LoadBalancerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '实例id',
- 'description' => 'The ID of the ALB instance.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lb-bp1b6c719dfa08ex****',
- ],
- ],
- [
- 'name' => 'ZoneMappings',
+ 'name' => 'AclIds',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '可用区及交换机映射列表',
- 'description' => 'The zones and the vSwitches in the zones. You can specify a maximum of 10 zones. If the selected region supports two or more zones, select at least two zones to ensure the high availability of your service. The specified zones and vSwitches overwrite the existing configurations.'."\n",
+ 'title' => '',
+ 'description' => 'The IDs of the ACLs. You can specify up to three IDs in each call.'."\n",
'type' => 'array',
- 'items' => [
- 'description' => 'The zones and the vSwitches in the zones. You can specify a maximum of 10 zones. If the selected region supports two or more zones, select at least two zones to ensure the high availability of your service. The specified zones and vSwitches overwrite the existing configurations.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'VSwitchId' => [
- 'title' => '交换机标识',
- 'description' => 'The ID of the vSwitch in the zone. By default, each zone contains one vSwitch and one subnet. You can specify at most 10 zones. If the region supports two or more zones, specify at least two zones.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'vsw-bp1rmcrwg3erh1fh8****',
- ],
- 'ZoneId' => [
- 'title' => '可用区',
- 'description' => 'The zone name. You can call the [DescribeZones](~~189196~~) operation to query the most recent zone list. You can specify at most 10 zones. If the region supports two or more zones, specify at least two zones.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cn-hangzhou-a',
- ],
- 'EipType' => [
- 'title' => '弹性公网IP类型',
- 'description' => 'The type of EIP. Valid values:'."\n"
- ."\n"
- .'* **Common**: an EIP.'."\n"
- .'* **Anycast**: an Anycast EIP.'."\n"
- ."\n"
- .'> For more information about the regions in which ALB supports Anycast EIPs, see [Limits](~~460727~~).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Common',
- ],
- 'IntranetAddress' => [
- 'description' => 'The private IPv4 address. You must specify at least two zones. You can specify a maximum of 10 zones.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.10.1',
- ],
- ],
- 'required' => false,
- ],
+ 'items' => ['description' => 'The ID of the ACL.'."\n", 'type' => 'string', 'required' => false, 'example' => 'acl-hp34s2h0xx1ht4nwo****', 'title' => ''],
'required' => true,
- 'maxItems' => 10,
- 'minItems' => 1,
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The attributes that are modified.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The ID of the asynchronous task.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
- ],
- ],
- ],
- ],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.Eip',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.ZoneVSwitchChanged',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.ZoneMappingsNotChanged',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'ResourceNotEnough.VSwitchIp',
- 'errorMessage' => 'The specified resource %s is not enough.',
- ],
- [
- 'errorCode' => 'Mismatch.ZoneIdAndVSwitchId',
- 'errorMessage' => 'The %s and %s are mismatched.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.VSwitch',
- 'errorMessage' => 'The specified resource %s is not found.',
+ 'maxItems' => 20,
+ 'example' => '',
],
],
- ],
- 'eventInfo' => [
- 'enable' => false,
- 'eventNames' => [],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerZonesResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</UpdateLoadBalancerZonesResponse>","errorExample":""}]',
- 'title' => 'UpdateLoadBalancerZones',
- 'description' => '**UpdateLoadBalancerZones** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [GetLoadBalancerAttribute](~~214362~~) to query the status of the task.'."\n"
- ."\n"
- .'* If an ALB instance is in the **Configuring** state, the zones are being modified.'."\n"
- .'* If an ALB instance is in the **Active** state, the zones are modified.'."\n"
- ."\n"
- .'> You may be charged after you call UpdateLoadBalancerZones.',
- ],
- 'UpdateLoadBalancerEdition' => [
- 'summary' => 'Changes the edition of an Application Load Balancer (ALB) instance.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
[
- 'AK' => [],
- ],
- ],
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
- 'parameters' => [
- [
- 'name' => 'ClientToken',
+ 'name' => 'ListenerId',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['title' => '', 'description' => 'The ID of the listener.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn9*******'],
],
[
- 'name' => 'DryRun',
+ 'name' => 'AclType',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => '', '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. The whitelist applies to scenarios in which 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 for a listener, 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 whitelist, the listener forwards all requests.'."\n"
+ .'* **Black**: a blacklist. All requests from the IP addresses or CIDR blocks in the ACL are blocked. The blacklist applies to scenarios in which you want to block access from specific IP addresses to an application. 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', 'required' => true, 'example' => 'White'],
],
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '实例Id',
- 'description' => 'The ID of the ALB instance.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lb-bp1b6c719dfa08ex****',
- ],
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
[
- 'name' => 'LoadBalancerEdition',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '实例版本',
- 'description' => 'The edition of the ALB instance. Different editions have different limits and support different billing methods.'."\n"
- ."\n"
- .'* **Basic**: basic'."\n"
- .'* **Standard**: standard'."\n"
- .'* **StandardWithWaf**: WAF-enabled'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Standard',
- ],
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The new edition of the ALB instance.'."\n",
+ 'description' => 'The operation to associate ACLs with a listener.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'JobId' => ['title' => '', 'description' => 'The synchronous task ID.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F87******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.Downgrade',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.EditionNotChanged',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
+ ['errorCode' => 'QuotaExceeded.AclsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['errorCode' => 'IncorrectStatus.Acl', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.ListenerAclEntriesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => 'The quota of %s is exceeded for resource %s, usage %s/%s.'],
+ ['errorCode' => 'OperationDenied.AclNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'ResourceAlreadyExist.AclEntry', 'errorMessage' => 'The specified resource %s already exists.', 'description' => ''],
+ ['errorCode' => 'ResourceInUse.Acl', 'errorMessage' => 'The specified resource %s is in use.', 'description' => 'The specified resource %s is in use.'],
+ ['errorCode' => 'OperationDenied.LoadBalancerJoinedSecurityGroupNotSupportAcl', 'errorMessage' => 'The operation is not allowed because of loadbalancer joined security group not support acl.', 'description' => 'The operation is not supported because SLB instances in security groups cannot be added to ACLs.'],
],
404 => [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerEditionResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</UpdateLoadBalancerEditionResponse>","errorExample":""}]',
- 'title' => 'UpdateLoadBalancerEdition',
- 'description' => '* You can only upgrade a basic ALB instance to a standard ALB instance or a WAF-enabled ALB instance. You cannot downgrade a standard ALB instance or a WAF-enabled ALB instance to a basic ALB instance. For more information, see [Upgrade an ALB instance](~~214654~~).'."\n"
- ."\n"
- .'* **UpdateLoadBalancerEdition** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the status of an ALB instance.'."\n"
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F87******\\"\\n}","errorExample":""},{"type":"xml","example":"<AssociateAclsWithListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</AssociateAclsWithListenerResponse>","errorExample":""}]',
+ 'title' => 'AssociateAclsWithListener',
+ 'description' => '**DeleteDhcpOptionsSet** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAclRelations](~~213618~~) operation to query the status of the task.'."\n"
."\n"
- .' * If the ALB instance is in the **Configuring** state, the edition of the ALB instance is being modified.'."\n"
- .' * If the ALB instance is in the **Active** state, the edition of the ALB instance is modified.',
- ],
- 'UpdateLoadBalancerAddressTypeConfig' => [
- 'summary' => 'Modifies the network type of an Application Load Balancer (ALB) instance.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
- ],
- ],
- 'operationType' => 'write',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- 'abilityTreeCode' => '86743',
- 'abilityTreeNodes' => [
- 'FEATUREslbXJYU12',
- 'FEATUREslbSUND48',
- ],
- ],
- 'parameters' => [
- [
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
- ],
- [
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => '是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'false',
- ],
- ],
- [
- 'name' => 'LoadBalancerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '实例id',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lb-bp1o94dp5i6ea****',
- ],
- ],
- [
- 'name' => 'AddressType',
- 'in' => 'query',
- 'schema' => [
- 'title' => '目标网络类型',
- 'description' => 'The new network type. Valid values:'."\n"
- ."\n"
- .'* **Internet**: The ALB instance uses a public IP address. The domain name of the ALB instance is resolved to the public IP address. Therefore, the ALB instance can be accessed over the Internet.'."\n"
- .'* **Intranet**: The ALB instance uses a private IP address. The domain name of the ALB instance is resolved to the private IP address. In this case, the ALB instance can be accessed over the virtual private cloud (VPC) where the ALB instance is deployed.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Internet',
- ],
- ],
- [
- 'name' => 'ZoneMappings',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '可用区及交换机映射列表',
- 'description' => 'The zones and the vSwitches in the zones. You can specify a maximum of 10 zones. If the selected region supports two or more zones, select at least two zones to ensure the high availability of your service.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The zones and the vSwitches in the zones.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'VSwitchId' => [
- 'title' => '交换机标识',
- 'description' => 'The vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone of an ALB instance. You can specify a maximum of 10 zones. If the selected region supports two or more zones, select at least two zones to ensure the high availability of your service.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'vsw-bp10ttov87felojcn****',
- ],
- 'ZoneId' => [
- 'title' => '可用区',
- 'description' => 'The zone ID of the ALB instance. You can specify a maximum of 10 zones. If the selected region supports two or more zones, select at least two zones to ensure the high availability of your service.'."\n"
- ."\n"
- .'You can call the [DescribeZones](~~189196~~) operation to query the information about the zone.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'cn-hangzhou-a',
- ],
- 'AllocationId' => [
- 'title' => '弹性公网IP',
- 'description' => 'The ID of the elastic IP address (EIP). You can specify a maximum of 10 zones.'."\n"
- ."\n"
- .'> This parameter is required if you want to change the network type from internal-facing to Internet-facing.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'eip-bp1aedxso6u80u0qf****',
- ],
- 'EipType' => [
- 'title' => '弹性公网IP类型',
- 'description' => 'The type of the EIP. Valid values:'."\n"
- ."\n"
- .'* Common (default): indicates an EIP'."\n"
- .'* Anycast: indicates an Anycast EIP'."\n"
- ."\n"
- .'> For more information about the regions in which ALB supports Anycast EIPs, see [Limits](~~460727~~).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Common',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The data struct returned.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The ID of the asynchronous job.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
+ .'* If an ACL is in the **Associating** state, the ACL is being associated with a listener.'."\n"
+ .'* If an ACL is in the **Associated** state, the ACL is associated with a listener.'."\n",
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:AssociateAclsWithListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'OperationDenied.OnlyPostPaidEipSupported',
- 'errorMessage' => 'The operation is not allowed because of OnlyPostPaidEipSupported.',
- ],
- [
- 'errorCode' => 'Mismatch.ZoneIdAndVSwitchId',
- 'errorMessage' => 'The ZoneId and VSwitchId are mismatched.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.Eip',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Eip',
- 'errorMessage' => 'The specified resource ResourceNotFound.Eip is not found.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.CommonBandwidthPackage',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.CommonBandwidthPackage',
- 'errorMessage' => 'The business status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.AddressTypeNotChanged',
- 'errorMessage' => 'The operation is not allowed because of AddressTypeNotChanged.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.CommonBandwidthPackage',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- ],
- ],
- 'eventInfo' => [
- 'enable' => false,
- 'eventNames' => [],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerAddressTypeConfigResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateLoadBalancerAddressTypeConfigResponse>","errorExample":""}]',
- 'title' => 'UpdateLoadBalancerAddressTypeConfig',
- 'description' => '## Prerequisites'."\n"
- ."\n"
- .'* An ALB instance is created. For more information about how to create an ALB instance, see [CreateLoadBalancer](~~214358~~).'."\n"
- .'* If you want to change the network type from internal-facing to Internet-facing, you must first create an elastic IP address (EIP). For more information, see [AllocateEipAddress](~~120192~~).'."\n"
- ."\n"
- .'## Usage notes'."\n"
- ."\n"
- .'**UpdateLoadBalancerAddressTypeConfig** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the status of the task.'."\n"
- ."\n"
- .'* If an ALB instance is in the **Configuring** state, the network type is being changed.'."\n"
- .'* If an ALB instance is in the **Active** state, the network type has been changed.'."\n",
],
- 'ListLoadBalancers' => [
- 'summary' => 'Queries the configurations of instances.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'AssociateAdditionalCertificatesWithListener' => [
+ 'summary' => 'Associates additional certificates with a listener.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeNodes' => [
- 'FEATUREslb6TP8T4',
- ],
- ],
+ 'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
- 'name' => 'NextToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '用来标记当前开始读取的位置,置空表示从头开始。',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* You do not need to specify this parameter for the first request.'."\n"
- .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- ],
- [
- 'name' => 'MaxResults',
- 'in' => 'query',
- 'schema' => [
- 'title' => '本次读取的最大数据记录数量,此参数为可选参数,取值1-100,用户传入为空时,默认为20。',
- 'description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **20**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '20',
- ],
- ],
- [
- 'name' => 'ZoneId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '可用区ID',
- 'description' => 'The ID of the zone where the ALB instance is deployed.'."\n"
- ."\n"
- .'You can call the [DescribeZones](~~189196~~) operation to query zones.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'cn-hangzhou-a',
- ],
- ],
- [
- 'name' => 'LoadBalancerStatus',
- 'in' => 'query',
- 'schema' => [
- 'title' => '实例状态',
- 'description' => 'The status of the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **Inactive**: The ALB instance is disabled. The listeners do not forward traffic.'."\n"
- .'* **Active**: The ALB instance is running.'."\n"
- .'* **Provisioning**: The ALB instance is being created.'."\n"
- .'* **Configuring**: The ALB instance is being modified.'."\n"
- .'* **CreateFailed**: The system failed to create the ALB instance. In this case, you are not charged for the ALB instance. You can only delete the ALB instance. By default, the system deletes the ALB instances that are in the CreateFailed state within the last day.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Active',
- ],
- ],
- [
- 'name' => 'LoadBalancerBussinessStatus',
- 'in' => 'query',
- 'schema' => [
- 'title' => '实例业务状态',
- 'description' => 'The service status of the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **Abnormal**'."\n"
- .'* **Normal**'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Normal',
- ],
- ],
- [
- 'name' => 'LoadBalancerIds',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '实例ID列表,N最大支持20',
- 'description' => 'The instance IDs. You can specify at most 20 ALB instance IDs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The instance ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'alb-o9ulmq5hgn68jk****',
- ],
- 'required' => false,
- 'maxItems' => 21,
- 'minItems' => 1,
- ],
- ],
- [
- 'name' => 'LoadBalancerNames',
+ 'name' => 'ListenerId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '实例Name列表,N最大支持10',
- 'description' => 'The instance names. You can specify at most 10 instance names.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The instance name.'."\n"
- ."\n"
- .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'alb-instance-test',
- ],
- 'required' => false,
- 'maxItems' => 11,
- 'minItems' => 1,
- ],
+ 'schema' => ['description' => 'The listener ID. This parameter is valid only for HTTPS and QUIC listeners.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'lsn-5qnirjhpt******'],
],
[
- 'name' => 'VpcIds',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => 'vpcId列表',
- 'description' => 'The ID of the VPC to which the ALB instance belongs. You can specify at most 10 VPC IDs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ID of the VPC to which the ALB instance belongs.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'vpc-bp1b49rqrybk45nio****',
- ],
- 'required' => false,
- 'maxItems' => 11,
- 'minItems' => 1,
- ],
- ],
- [
- 'name' => 'Tag',
+ 'name' => 'Certificates',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => 'tag列表',
- 'description' => 'The tags added to the ALB instance.'."\n",
+ 'title' => '',
+ 'description' => 'The additional certificates.',
'type' => 'array',
'items' => [
- 'description' => 'The tag structure.'."\n",
+ 'description' => 'The additional certificate.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => '实例的标签键',
- '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://`. It cannot start with `aliyun` or `acs:`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'KeyTest',
- ],
- 'Value' => [
- 'title' => '实例的标签值',
- 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n"
- ."\n"
- .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'alueTest',
- ],
+ 'CertificateId' => ['description' => 'The ID of the certificate. Only server certificates are supported.'."\n"
+ ."\n"
+ .'> The globally unique certificate ID, which ends with a region ID, for example, 1011\\*\\*\\*\\*-cn-hangzhou.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '1011****-cn-hangzhou'],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
- 'maxItems' => 21,
+ 'required' => true,
+ 'maxItems' => 15,
'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'AddressType',
- 'in' => 'query',
- 'schema' => [
- 'title' => '负载均衡的地址类型',
- 'description' => 'The network type. Valid values:'."\n"
- ."\n"
- .'* **Internet**: The ALB instance uses a public IP address. The domain name of the ALB instance is resolved to the public IP address. Therefore, the ALB instance can be accessed over the Internet.'."\n"
- .'* **Intranet**: The ALB instance uses a private IP address. The domain name of the ALB instance is resolved to the private IP address. In this case, the ALB instance can be accessed over the VPC where the ALB instance is deployed.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Intranet',
- ],
- ],
- [
- 'name' => 'PayType',
- 'in' => 'query',
- 'schema' => [
- 'title' => '付费类型',
- 'description' => 'The billing method of the ALB instance. Set the value to'."\n"
- ."\n"
- .'**PostPay**, which specifies the pay-as-you-go billing method. This is the default value.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'PostPay',
- ],
- ],
- [
- 'name' => 'ResourceGroupId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '资源组ID',
- 'description' => 'The ID of the resource group.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-acfmxazb4ph****',
- ],
- ],
- [
- 'name' => 'AddressIpVersion',
- 'in' => 'query',
- 'schema' => [
- 'title' => '需要过滤的协议版本',
- 'description' => 'The IP version. Valid values:'."\n"
- ."\n"
- .'* **IPv4**'."\n"
- .'* **DualStack**',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'IPv4',
- ],
- ],
- [
- 'name' => 'Ipv6AddressType',
- 'in' => 'query',
- 'schema' => [
- 'title' => 'IPV6的地址网络类型',
- 'description' => 'The type of IPv6 address that is used by the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **Internet**: The ALB instance uses a public IP address. The domain name of the ALB instance is resolved to the public IP address. Therefore, the ALB instance can be accessed over the Internet.'."\n"
- .'* **Intranet**: The ALB instance uses a private IP address. The domain name of the ALB instance is resolved to the private IP address. Therefore, the ALB instance can be accessed over the VPC in which the ALB instance is deployed.',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Intranet',
- ],
- ],
- [
- 'name' => 'DNSName',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The domain name.',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com',
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The configurations of the specified ALB instances.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'LoadBalancers' => [
- 'title' => '实例列表',
- 'description' => 'A list of ALB instances.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The configurations of the ALB instance.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AccessLogConfig' => [
- 'title' => '访问日志属性',
- 'description' => 'The configurations of access logs.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'LogProject' => [
- 'title' => '访问日志投递的logProject',
- 'description' => 'The Simple Log Service project.'."\n",
- 'type' => 'string',
- 'example' => 'sls-setter',
- ],
- 'LogStore' => [
- 'title' => '删除保护开启时间',
- 'description' => 'The Logstore.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- ],
- ],
- 'AddressAllocatedMode' => [
- 'title' => '地址模式',
- 'description' => 'The mode in which IP addresses are allocated. Valid values:'."\n"
- ."\n"
- .'* **Fixed**: The ALB instance uses a static IP address.'."\n"
- .'* **Dynamic**: dynamically allocates an IP address to each zone of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'Fixed',
- ],
- 'AddressType' => [
- 'title' => '地址类型',
- 'description' => 'The type of IP address that the ALB instance uses to provide services. Valid values:'."\n"
- ."\n"
- .'* **Internet**: The ALB instance is assigned a public IP address. The domain name is resolved to the public IP address. The ALB instance is accessible over the Internet.'."\n"
- .'* **Intranet**: The ALB instance is assigned only a private IP address. The domain name is resolved to the private IP address. The ALB instance is accessible only within the VPC of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'Intranet',
- ],
- 'BandwidthPackageId' => [
- 'title' => '带宽包ID',
- 'description' => 'The ID of the Internet Shared Bandwidth instance that is associated with the Internet-facing ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'cbwp-bp1vevu8h3ieh****',
- ],
- 'CreateTime' => [
- 'title' => '资源创建时间',
- 'description' => 'The time when the resource was created.'."\n",
- 'type' => 'string',
- 'example' => '2022-07-02T02:49:05Z',
- ],
- 'DNSName' => [
- 'title' => 'DNS域名',
- 'description' => 'The domain name.'."\n",
- 'type' => 'string',
- 'example' => 'alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com',
- ],
- 'DeletionProtectionConfig' => [
- 'title' => '负载均衡删除保护相关信息',
- 'description' => 'The configuration of the deletion protection feature.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Enabled' => [
- 'title' => '删除保护状态',
- 'description' => 'Indicates whether deletion protection is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'EnabledTime' => [
- 'title' => '删除保护开启时间',
- 'description' => 'The time when deletion protection is enabled.'."\n",
- 'type' => 'string',
- 'example' => '2022-08-02T02:49:05Z',
- ],
- ],
- ],
- 'LoadBalancerBillingConfig' => [
- 'title' => '计费相关属性',
- 'description' => 'The billing information about the ALB instance.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'PayType' => [
- 'title' => '实例的计费类型',
- 'description' => 'The billing method. Valid value:'."\n"
- ."\n"
- .'**PostPay**: You are charged for the ALB instance on a pay-as-you-go basis.'."\n",
- 'type' => 'string',
- 'example' => 'PostPay',
- 'default' => 'PostPay',
- ],
- ],
- ],
- 'LoadBalancerBussinessStatus' => [
- 'title' => '实例业务状态',
- 'description' => 'The status of the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **Abnormal**'."\n"
- .'* **Normal**'."\n",
- 'type' => 'string',
- 'example' => 'Normal',
- ],
- 'LoadBalancerEdition' => [
- 'title' => '负载均衡的版本',
- 'description' => 'The edition of the ALB instance. The features and billing rules vary based on the edition. Valid values:'."\n"
- ."\n"
- .'* **Basic**'."\n"
- .'* **Standard**'."\n"
- .'* **StandardWithWaf**'."\n",
- 'type' => 'string',
- 'example' => 'Standard',
- ],
- 'LoadBalancerId' => [
- 'title' => '负载均衡标识',
- 'description' => 'The ID of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'alb-o9ulmq5hgn68jk****',
- ],
- 'LoadBalancerName' => [
- 'title' => '实例名称',
- 'description' => 'The name of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'alb-instance-test',
- ],
- 'LoadBalancerOperationLocks' => [
- 'title' => '锁定的原因',
- 'description' => 'The configuration of the operation lock.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The structure of the operation lock.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'LockReason' => [
- 'title' => '锁定的原因',
- 'description' => 'The reason why the ALB instance is locked. This parameter is valid only if **LoadBalancerBussinessStatus** is set to **Abnormal**.'."\n",
- 'type' => 'string',
- 'example' => 'Test LockReason',
- ],
- 'LockType' => [
- 'title' => '锁定的类型',
- 'description' => 'The lock type. Valid values:'."\n"
- ."\n"
- .'* **SecurityLocked**: The ALB instance is locked due to security risks.'."\n"
- .'* **RelatedResourceLocked**: The ALB instance is locked due to other resources associated with the ALB instance.'."\n"
- .'* **FinancialLocked**: The ALB instance is locked due to overdue payments.'."\n"
- .'* **ResidualLocked**: The ALB instance is locked because the associated resources have overdue payments and the resources are released.'."\n",
- 'type' => 'string',
- 'example' => 'FinancialLocked',
- ],
- ],
- ],
- ],
- 'LoadBalancerStatus' => [
- 'title' => '实例状态',
- 'description' => 'The status of the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **Inactive**: The ALB instance is disabled. ALB instances in the Inactive state do not forward traffic.'."\n"
- .'* **Active**: The ALB instance is running.'."\n"
- .'* **Provisioning**: The ALB instance is being created.'."\n"
- .'* **Configuring**: The ALB instance is being modified.'."\n"
- .'* **CreateFailed**: The system failed to create the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'Active',
- ],
- 'ModificationProtectionConfig' => [
- 'title' => '负载均衡修改保护相关信息',
- 'description' => 'The configuration read-only mode settings.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Reason' => [
- 'title' => '设置修改保护状态的原因',
- 'description' => 'The reason why the configuration read-only mode is enabled.'."\n"
- ."\n"
- .'The reason must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n"
- ."\n"
- .'This parameter takes effect only if **Status** is set to **ConsoleProtection**.'."\n",
- 'type' => 'string',
- 'example' => 'Test Reason',
- ],
- 'Status' => [
- 'title' => '负载均衡修改保护状态',
- 'description' => 'Indicates whether the configuration read-only mode is enabled. Valid values:'."\n"
- ."\n"
- .'* **NonProtection**: The configuration read-only mode is disabled. In this case, **Reason** is not returned. If **Reason** is set, the value is cleared.'."\n"
- .'* **ConsoleProtection**: The configuration read-only mode is enabled. In this case, **Reason** is returned.****'."\n"
- ."\n"
- .'> If the value is **ConsoleProtection**, the configuration read-only mode is enabled. You cannot modify the configurations of the ALB instance in the ALB console. However, you can call API operations to modify the configurations of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'ConsoleProtection',
- ],
- ],
- ],
- 'ResourceGroupId' => [
- 'title' => '企业资源组ID',
- 'description' => 'The ID of the resource group.'."\n",
- 'type' => 'string',
- 'example' => 'rg-atstuj3rtop****',
- ],
- 'Tags' => [
- 'title' => '标签列表',
- 'description' => 'The information about the tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tag structure.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => '实例的标签键',
- 'description' => 'The tag key of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'KeyTest',
- ],
- 'Value' => [
- 'title' => '实例的标签值',
- 'description' => 'The tag value of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'alueTest',
- ],
- ],
- ],
- ],
- 'VpcId' => [
- 'title' => 'Vpc网络ID',
- 'description' => 'The ID of the VPC in which the ALB instance is deployed.'."\n",
- 'type' => 'string',
- 'example' => 'vpc-bp1b49rqrybk45nio****',
- ],
- 'AddressIpVersion' => [
- 'title' => '协议版本',
- 'description' => 'The IP version. Valid values:'."\n"
- ."\n"
- .'* **IPv4**'."\n"
- .'* **DualStack**'."\n",
- 'type' => 'string',
- 'example' => 'DualStack',
- ],
- 'Ipv6AddressType' => [
- 'title' => 'IPV6地址类型',
- 'description' => 'The type of IPv6 address used by the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **Internet** The ALB instance is assigned a public IP address. The domain name is resolved to the public IP address. The ALB instance is accessible over the Internet.'."\n"
- .'* **Intranet** The ALB instance is assigned only a private IP address. The domain name is resolved to the private IP address. The ALB instance is accessible only within the VPC of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'Intranet',
- ],
- 'SecurityGroupIds' => [
- 'description' => '',
- 'type' => 'array',
- 'items' => [
- 'description' => '',
- 'type' => 'string',
- 'example' => 'sg-2zejdtxxpu8c9tny****',
- ],
- ],
- ],
- ],
- ],
- 'MaxResults' => [
- 'title' => '本次请求所返回的最大记录条数。',
- 'description' => 'The number of entries returned per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
- ],
- 'NextToken' => [
- 'title' => '用来表示当前调用返回读取到的位置,空代表数据已经读取完毕。',
- 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If a value is returned for **NextToken**, the value is used to retrieve a new page of results.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
- 'TotalCount' => [
- 'title' => '本次请求条件下的数据总量。',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '100',
- ],
- ],
- ],
- ],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"LoadBalancers\\": [\\n {\\n \\"AccessLogConfig\\": {\\n \\"LogProject\\": \\"sls-setter\\",\\n \\"LogStore\\": \\"test\\"\\n },\\n \\"AddressAllocatedMode\\": \\"Fixed\\",\\n \\"AddressType\\": \\"Intranet\\",\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"DNSName\\": \\"alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\",\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"EnabledTime\\": \\"2022-08-02T02:49:05Z\\"\\n },\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"LoadBalancerBussinessStatus\\": \\"Normal\\",\\n \\"LoadBalancerEdition\\": \\"Standard\\",\\n \\"LoadBalancerId\\": \\"alb-o9ulmq5hgn68jk****\\",\\n \\"LoadBalancerName\\": \\"alb-instance-test\\",\\n \\"LoadBalancerOperationLocks\\": [\\n {\\n \\"LockReason\\": \\"\\",\\n \\"LockType\\": \\"FinancialLocked\\"\\n }\\n ],\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"ModificationProtectionConfig\\": {\\n \\"Reason\\": \\"Managed Instance\\",\\n \\"Status\\": \\"ConsoleProtection\\"\\n },\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"alueTest\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqryhk45nio****\\",\\n \\"AddressIpVersion\\": \\"DualStack\\",\\n \\"Ipv6AddressType\\": \\"Intranet\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-2zejdtxxpu8c9tny****\\"\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"TotalCount\\": 100\\n}","errorExample":""},{"type":"xml","example":"<ListLoadBalancersResponse>\\n <LoadBalancers>\\n <AccessLogConfig>\\n <LogProject>sls-setter</LogProject>\\n <LogStore>test</LogStore>\\n </AccessLogConfig>\\n <AddressAllocatedMode>Fixed</AddressAllocatedMode>\\n <AddressType>Intranet</AddressType>\\n <BandwidthPackageId>cbwp-bp1vevu8h3ieh****</BandwidthPackageId>\\n <CreateTime>2022-07-02T02:49:05Z</CreateTime>\\n <DNSName>alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com</DNSName>\\n <DeletionProtectionConfig>\\n <Enabled>true</Enabled>\\n <EnabledTime>2022-08-02T02:49:05Z</EnabledTime>\\n </DeletionProtectionConfig>\\n <LoadBalancerBillingConfig>\\n <PayType>PostPay</PayType>\\n </LoadBalancerBillingConfig>\\n <LoadBalancerBussinessStatus>Normal</LoadBalancerBussinessStatus>\\n <LoadBalancerEdition>Standard</LoadBalancerEdition>\\n <LoadBalancerId>alb-o9ulmq5hgn68jk****</LoadBalancerId>\\n <LoadBalancerName>alb-instance-test</LoadBalancerName>\\n <LoadBalancerOperationLocks>\\n <LockReason>欠费</LockReason>\\n <LockType>FinancialLocked</LockType>\\n </LoadBalancerOperationLocks>\\n <LoadBalancerStatus>Active</LoadBalancerStatus>\\n <ModificationProtectionConfig>\\n <Reason>托管实例</Reason>\\n <Status>ConsoleProtection</Status>\\n </ModificationProtectionConfig>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <Tags>\\n <Key>KeyTest</Key>\\n <Value>alueTest</Value>\\n </Tags>\\n <VpcId>vpc-bp1b49rqrybk45nio****</VpcId>\\n <AddressIpVersion>DualStack</AddressIpVersion>\\n <Ipv6AddressType>Intranet</Ipv6AddressType>\\n </LoadBalancers>\\n <MaxResults>20</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <TotalCount>100</TotalCount>\\n</ListLoadBalancersResponse>","errorExample":""}]',
- 'title' => 'ListLoadBalancers',
- ],
- 'DisableDeletionProtection' => [
- 'summary' => 'Disables deletion protection for an Application Load Balancer (ALB) instance.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
- ],
- ],
- 'operationType' => 'write',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
- 'parameters' => [
- [
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **RequestId** as the **ClientToken**. The **RequestId** is different for each request.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3F******'],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false**: (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- ],
- [
- 'name' => 'ResourceId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '实例id',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 're-atstuj3rtop****',
- ],
+ 'schema' => ['title' => 'dryRun', 'description' => 'Specifies whether to perform only a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): performs a dry run, then performs the operation. If the request passes the check, a `2xx` HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The operation to disable deletion protection feature for an ALB instance.'."\n",
+ 'description' => 'Associating an extension certificate with an HTTPS or QUIC listener.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
+ 'JobId' => ['description' => 'The asynchronous task ID.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.DefaultCertificateUsed', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'OperationFailed.DefaultCertificateNotFound', 'errorMessage' => 'The operation failed because of %s.', 'description' => 'The operation failed because of %s.'],
+ ['errorCode' => 'ResourceAlreadyAssociated.Certificate', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerCertificatesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.HttpListenerNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Invalid parameter, please check the parameter input.', 'description' => 'Invalid parameter, please check the parameter input.'],
+ ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource %s is configuring, please try again later.', 'description' => 'The specified resource %s is being configured. Please try again later.'],
],
403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication has failed for LoadBalancer.', 'description' => ''],
],
[
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ['errorCode' => 'ResourceNotFound.Certificate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","type":"json"}]',
+ 'title' => 'AssociateAdditionalCertificatesWithListener',
+ 'description' => '**AssociateAdditionalCertificatesWithListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [](t2324519.xdita#)operation to query the status of the task:'."\n"
+ ."\n"
+ .'- If the HTTPS or QUIC listener is in the **Associating** state, the additional certificates are being associated.'."\n"
+ ."\n"
+ .'- If the HTTPS or QUIC listener is in the **Associated** state, the certificates are associated.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:AssociateAdditionalCertificatesWithListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableDeletionProtectionResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</DisableDeletionProtectionResponse>","errorExample":""}]',
- 'title' => 'DisableDeletionProtection',
],
- 'EnableDeletionProtection' => [
- 'summary' => 'Enables deletion protection for a resource.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'AttachCommonBandwidthPackageToLoadBalancer' => [
+ 'summary' => 'Associates an Internet Shared Bandwidth instance with an Application Load Balancer (ALB) instance.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => ['FEATUREslbZBWWR9'],
],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'allowEmptyValue' => false,
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665*****'],
],
[
- 'name' => 'DryRun',
+ 'name' => 'RegionId',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false**: (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['title' => '', 'description' => 'The region ID of the ALB instance.'."\n"
+ ."\n"
+ .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'],
],
[
- 'name' => 'ResourceId',
+ 'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => '实例id',
- 'description' => 'The Application Load Balancer (ALB) instance ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 're-atstuj3rtop****',
- ],
+ 'schema' => ['title' => '', 'description' => 'The ALB instance ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'alb-d676fho813rmu3****'],
+ ],
+ [
+ 'name' => 'BandwidthPackageId',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The EIP bandwidth plan ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cbwp-bp1pzf0ym72pu3y76****'],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false**(default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The operation to enable the deletion protection feature.'."\n",
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2EF39708-974B-5E74-AFF5-3445******'],
+ 'JobId' => ['title' => '', 'description' => 'The asynchronous task ID.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
+ ['errorCode' => 'IncorrectBusinessStatus.CommonBandwidthPackage', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.CommonBandwidthPackage', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
],
- 403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.CommonBandwidthPackage', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
- [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2EF39708-974B-5E74-AFF5-3445******\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<AttachCommonBandwidthPackageToLoadBalancerResponse>\\n <RequestId>2EF39708-974B-5E74-AFF5-3445263035A8</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</AttachCommonBandwidthPackageToLoadBalancerResponse>","errorExample":""}]',
+ 'title' => 'AttachCommonBandwidthPackageToLoadBalancer',
+ 'description' => '**AttachCommonBandwidthPackageToLoadBalancer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [GetLoadBalancerAttribute](~~214362~~) to query the status of the task.'."\n"
+ ."\n"
+ .'* If the ALB instance is in the **Configuring** state, the EIP bandwidth plan is being associated with the ALB instance.'."\n"
+ .'* If the ALB instance is in the **Active** state, the EIP bandwidth plan is associated with the ALB instance.'."\n",
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:AttachCommonBandwidthPackageToLoadBalancer',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableDeletionProtectionResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</EnableDeletionProtectionResponse>","errorExample":""}]',
- 'title' => 'EnableDeletionProtection',
],
- 'StartShiftLoadBalancerZones' => [
- 'summary' => 'Removes an elastic IP address (EIP) or a virtual IP address (VIP) of a zone from a DNS record.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'CancelShiftLoadBalancerZones' => [
+ 'summary' => 'Adds the elastic IP address (EIP) and virtual IP address (VIP) of a zone to a DNS record.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -2870,84 +803,57 @@
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeNodes' => [
- 'FEATUREslb9RALVR',
- ],
+ 'abilityTreeNodes' => ['FEATUREslbFTB0NK'],
],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n",
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n", 'title' => '', 'required' => false],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
[
'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => '实例id',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-o9ulmq5hgn68jk****'."\n",
- ],
+ 'schema' => ['description' => 'The ID of the ALB instance.', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'."\n", 'title' => ''],
],
[
'name' => 'ZoneMappings',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '可用区及交换机映射列表',
+ 'title' => '',
'description' => 'The mappings between zones and vSwitches.'."\n"
."\n"
- .'> You can remove only one zone in each call.'."\n",
+ .'> You can add only one zone in each call.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
- 'VSwitchId' => [
- 'title' => '交换机标识',
- 'description' => 'The ID of the vSwitch in the zone. By default, each zone uses one vSwitch and one subnet.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'vsw-bp1rmcrwg3erh1fh8****'."\n",
- ],
- 'ZoneId' => [
- 'title' => '可用区',
- 'description' => 'The zone ID. You can call the [DescribeZones](~~189196~~) operation to query the most recent zone list.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cn-hangzhou-a',
- ],
+ 'VSwitchId' => ['description' => 'The ID of the vSwitch in the zone. By default, each zone uses one vSwitch and one subnet.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'vsw-bp1rmcrwg3erh1fh8****'."\n"],
+ 'ZoneId' => ['description' => 'The zone ID. You can call the [DescribeZones](~~189196~~) operation to query the most recent zone list.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'cn-hangzhou-a'],
],
'required' => false,
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
],
'required' => true,
'maxItems' => 1,
'minItems' => 1,
+ 'example' => '',
],
],
],
@@ -2955,98 +861,57 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'Schema of Response'."\n",
+ 'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n",
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n"],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.Eip',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.ZoneVSwitchChanged',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.ZoneMappingsNotChanged',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.ZoneVSwitchNotExist',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.EniStatusNotSupport',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.OnlyFixedAddressAllocatedModeSupported',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.ConfigLastActiveZoneNotSupport',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationFailed.ShiftLoadBalancerZonesFailed',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'ResourceNotEnough.VSwitchIp',
- 'errorMessage' => 'The specified resource %s is not enough.',
- ],
- [
- 'errorCode' => 'Mismatch.ZoneIdAndVSwitchId',
- 'errorMessage' => 'The %s and %s are mismatched.',
- ],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'IncorrectBusinessStatus.Eip', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'OperationDenied.ZoneVSwitchChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'."\n"],
+ ['errorCode' => 'OperationDenied.ZoneMappingsNotChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.ZoneVSwitchNotExist', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The instance does not contain the zone or vSwitch specified in the request.'],
+ ['errorCode' => 'OperationDenied.EniStatusNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'This operation is not supported by the status of the ENI.'],
+ ['errorCode' => 'OperationDenied.OnlyFixedAddressAllocatedModeSupported', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'This operation is not supported by the IP mode of the SLB instance.'],
+ ['errorCode' => 'OperationFailed.CancelShiftLoadBalancerZonesFailed', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'Failed to restore the A record of the IP address in the zone.'],
+ ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource %s is not enough.', 'description' => 'The specified resource %s is not enough.'],
+ ['errorCode' => 'Mismatch.ZoneIdAndVSwitchId', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The %s and %s are mismatched.'],
],
404 => [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.VSwitch',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => 'CancelShiftLoadBalancerZones',
+ 'description' => 'This operation is supported only by Application Load Balancer (ALB) instances that use static IP addresses. Before you call this operation, you must call the StartShiftLoadBalancerZones operation to remove the zone from the ALB instance.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:CancelShiftLoadBalancerZones',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
+ ],
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5A2CFF0E-5718-45B5-9D4D-70B3FF3898\\"\\n}","type":"json"}]',
- 'title' => 'StartShiftLoadBalancerZones',
- 'description' => 'This operation is supported by Application Load Balancer (ALB) instances that use static IP addresses. The zone cannot be removed if the ALB instance has only one available zone.'."\n",
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5A2CFF0E-5718-45B5-9D4D-70B3FF3898\\\\n\\"\\n}","type":"json"}]',
],
- 'CancelShiftLoadBalancerZones' => [
- 'summary' => 'Adds the elastic IP address (EIP) and virtual IP address (VIP) of a zone to a DNS record.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'CreateAScripts' => [
+ 'summary' => 'Create a script.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -3055,87 +920,94 @@
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
+ 'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeNodes' => [
- 'FEATUREslbFTB0NK',
- ],
+ 'abilityTreeCode' => '34526',
+ 'abilityTreeNodes' => ['FEATUREslb2Q6O49'],
],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n",
- ],
+ 'schema' => ['description' => 'A client token used to ensure request idempotency.'."\n"
+ ."\n"
+ .'You can generate this value on your client. The value must be unique across requests and contain only ASCII characters.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', 'title' => '', 'required' => false],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run without creating the AScript. The system checks the request for required parameters, format validity, and service limits. If the request fails the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): sends a normal request. After the request passes the check, the system returns an HTTP 2xx status code and performs the operation.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
],
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'ListenerId',
'in' => 'query',
- 'schema' => [
- 'title' => '实例id',
- 'description' => 'The ID of the ALB instance.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-o9ulmq5hgn68jk****'."\n",
- ],
+ 'schema' => ['description' => 'The listener ID.', 'type' => 'string', 'required' => true, 'example' => 'lsn-6hfq3zs0x04ibn****', 'title' => ''],
],
[
- 'name' => 'ZoneMappings',
+ 'name' => 'AScripts',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '可用区及交换机映射列表',
- 'description' => 'The mappings between zones and vSwitches.'."\n"
- ."\n"
- .'> You can add only one zone in each call.'."\n",
+ 'title' => '',
+ 'description' => 'The AScripts to create.',
'type' => 'array',
'items' => [
+ 'description' => 'An AScript configuration.',
'type' => 'object',
'properties' => [
- 'VSwitchId' => [
- 'title' => '交换机标识',
- 'description' => 'The ID of the vSwitch in the zone. By default, each zone uses one vSwitch and one subnet.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'vsw-bp1rmcrwg3erh1fh8****'."\n",
- ],
- 'ZoneId' => [
- 'title' => '可用区',
- 'description' => 'The zone ID. You can call the [DescribeZones](~~189196~~) operation to query the most recent zone list.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cn-hangzhou-a',
+ 'AScriptName' => ['description' => 'The name of the AScript.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters long, and must start with a letter, a digit, or a Chinese character. It can contain digits, periods (.), underscores (\\_), hyphens (-), and spaces.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''],
+ 'Position' => ['description' => 'Specifies when the AScript is executed. Valid values:'."\n"
+ ."\n"
+ .'- **RequestHead** (default): Executes before request rules.'."\n"
+ ."\n"
+ .'- **RequestFoot**: Executes after request rules.'."\n"
+ ."\n"
+ .'- **ResponseHead**: Executes before response rules.', 'type' => 'string', 'required' => false, 'example' => 'RequestFoot', 'default' => 'RequestHead', 'title' => ''],
+ 'Enabled' => ['description' => 'Specifies whether the AScript is enabled. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enabled.'."\n"
+ ."\n"
+ .'- **false** (default): Disabled.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
+ 'ScriptContent' => ['description' => 'The content of the AScript.', 'type' => 'string', 'required' => true, 'example' => 'if and(match_re($uri, \'^/1.txt$\'), $arg_type) { rewrite(concat(\'/1.\', $arg_type), \'break\') }', 'title' => ''],
+ 'ExtAttributes' => [
+ 'title' => '',
+ 'description' => 'The extended attributes.',
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'AttributeKey' => ['description' => 'The attribute key.'."\n"
+ ."\n"
+ .'The only valid value is **EsDebug**. If a request contains the \\_es\\_dbg parameter and its value matches the secret key specified in AttributeValue, the system adds a debug header to the response, which contains rule execution logs.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'EsDebug'],
+ 'AttributeValue' => ['description' => 'The attribute value, which is used as the secret key for the EsDebug attribute. The value must be 1 to 128 characters long and can contain uppercase letters, lowercase letters, and digits.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'test123'],
+ ],
+ 'required' => false,
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'example' => '',
],
+ 'ExtAttributeEnabled' => ['description' => 'Specifies whether to enable extended attributes for the AScript. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enabled.'."\n"
+ ."\n"
+ .'- **false** (default): Disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'required' => true,
- 'maxItems' => 1,
- 'minItems' => 1,
+ 'required' => false,
+ 'example' => '',
],
],
],
@@ -3143,144 +1015,134 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'Schema of Response'."\n",
+ 'description' => 'The response data.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n",
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'title' => '', 'example' => '5c607642-535e-4e06-9d77-df53049b****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => 'BF0FE763-9603-558F-A55B-0F4******'],
+ 'AScriptIds' => [
+ 'title' => '',
+ 'description' => 'A list of programmable script IDs.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The programmable script ID.',
+ 'type' => 'object',
+ 'properties' => [
+ 'AScriptId' => ['description' => 'The ID of the programmable script.', 'type' => 'string', 'title' => '', 'example' => 'as-xvq5igaa7uv6vr****'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.Eip',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.ZoneVSwitchChanged',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.ZoneMappingsNotChanged',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.ZoneVSwitchNotExist',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.EniStatusNotSupport',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.OnlyFixedAddressAllocatedModeSupported',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationFailed.CancelShiftLoadBalancerZonesFailed',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'ResourceNotEnough.VSwitchIp',
- 'errorMessage' => 'The specified resource %s is not enough.',
- ],
- [
- 'errorCode' => 'Mismatch.ZoneIdAndVSwitchId',
- 'errorMessage' => 'The %s and %s are mismatched.',
- ],
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.AScriptsNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.AScriptsTotalLinesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.AScriptLinesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.VSwitch',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"5c607642-535e-4e06-9d77-df53049b****\\",\\n \\"RequestId\\": \\"BF0FE763-9603-558F-A55B-0F4******\\",\\n \\"AScriptIds\\": [\\n {\\n \\"AScriptId\\": \\"as-xvq5igaa7uv6vr****\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'CreateAScripts',
+ 'description' => '### Prerequisites'."\n"
+ ."\n"
+ .'- You have created a standard edition or WAF-enhanced edition ALB instance. For more information, see [CreateLoadBalancer](~~214358~~).'."\n"
+ ."\n"
+ .'### Usage'."\n"
+ ."\n"
+ .'**CreateAScripts** is an asynchronous operation. After you send a request, the system returns a request ID, but the programmable script is not created immediately because the creation task runs in the background. You can call [ListAScripts](~~472574~~) to query the creation status of the programmable script:'."\n"
+ ."\n"
+ .'- If the programmable script is in the **Creating** state, it is being created.'."\n"
+ ."\n"
+ .'- If the programmable script is in the **Available** state, it has been created.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateAScripts',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5A2CFF0E-5718-45B5-9D4D-70B3FF3898\\\\n\\"\\n}","type":"json"}]',
- 'title' => 'CancelShiftLoadBalancerZones',
- 'description' => 'This operation is supported only by Application Load Balancer (ALB) instances that use static IP addresses. Before you call this operation, you must call the StartShiftLoadBalancerZones operation to remove the zone from the ALB instance.'."\n",
],
- 'EnableLoadBalancerIpv6Internet' => [
- 'summary' => 'Changes the type of the IPv6 address that is used by a dual-stack Application Load Balancer (ALB) instance from private to public.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'CreateAcl' => [
+ 'summary' => 'Creates an access control list (ACL) in a specified region.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '131',
+ 'abilityTreeNodes' => ['FEATUREslbAYSA83'],
+ 'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
+ 'name' => 'AclName',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The name of the ACL. The name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), hyphens (-), letters, and Chinese characters. The name must start with a letter, a Chinese character, or a digit.', 'type' => 'string', 'example' => 'test-acl', 'title' => '', 'required' => false],
+ ],
+ [
'name' => 'ClientToken',
'in' => 'query',
- 'allowEmptyValue' => false,
- 'schema' => [
- 'title' => '幂等参数',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate a value, but you must make sure that the value is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the request as the **ClientToken**. The **RequestId** of each request may be different.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3*****'],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '预校验',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false**(default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => 'dryRun', 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run. The system checks the required parameters, request format, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned. No ACL is created.'."\n"
+ ."\n"
+ .'- **false** (default): sends a normal request. If the request passes the check, an HTTP 2xx status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'true', 'required' => false],
],
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'ResourceGroupId',
'in' => 'query',
+ 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'example' => 'rg-atstuj3rtop****', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '实例ID',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-o2cvudgo6rlqz7****',
+ 'description' => 'The tags to add to the ACL.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'This object represents a single tag.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => 'rg-12313',
],
],
],
@@ -3288,88 +1150,52 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'Schema of Response'."\n",
+ 'description' => 'The response object.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'BB920797-D70E-567F-8098-55A861DD7912',
- ],
- 'JobId' => [
- 'title' => '异步任务ID',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '4a6e3ad4-ef08-4ab1-b332-fa621cfe****',
- ],
+ 'AclId' => ['title' => 'AclId', 'description' => 'The ID of the ACL.', 'type' => 'string', 'example' => 'acl-hp34s2h0xx1ht4nwo****'],
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.NonDualStackInstance',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.Ipv6InternetInstance',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
+ ['errorCode' => 'QuotaExceeded.AclsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['errorCode' => 'NotExist.ResourceGroup', 'errorMessage' => 'ResourceGroup does not exist.', 'description' => ''],
],
403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
- ],
- [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'ACL authentication has failed.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BB920797-D70E-567F-8098-55A861DD7912\\",\\n \\"JobId\\": \\"4a6e3ad4-ef08-4ab1-b332-fa621cfe****\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableLoadBalancerIpv6InternetResponse>\\n <RequestId>BB920797-D70E-567F-8098-55A861DD7912</RequestId>\\n <JobId>4a6e3ad4-ef08-4ab1-b332-fa621cfe****</JobId>\\n</EnableLoadBalancerIpv6InternetResponse>","errorExample":""}]',
- 'title' => 'EnableLoadBalancerIpv6Internet',
- 'description' => '### Prerequisites'."\n"
- ."\n"
- .'An ALB instance is created and IPv4/IPv6 dual stack is enabled for the instance. You can call the [CreateLoadBalancer](~~214358~~) operation and set **AddressIpVersion** to **DualStack** to create a dual-stack ALB instance.'."\n"
- ."\n"
- .'> If you set **AddressIpVersion** to **DualStack**:'."\n"
- ."\n"
- .'* If you set **AddressType** to **Internet**, the ALB instance uses a public IPv4 IP address and a private IPv6 address.'."\n"
- ."\n"
- .'* If you set **AddressType** to **Intranet**, the ALB instance uses a private IPv4 IP address and a private IPv6 address.'."\n"
- ."\n"
- .'### Description'."\n"
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AclId\\": \\"acl-hp34s2h0xx1ht4nwo****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\"\\n}","type":"json"}]',
+ 'title' => 'CreateAcl',
+ 'description' => '**CreateAcl** is an asynchronous operation. After you send a request, the system returns an instance ID and starts to create the ACL in the background. You can call the [ListAcls](~~213617~~) operation to query the status of the ACL.'."\n"
."\n"
- .'* After the EnableLoadBalancerIpv6Internet operation is called, the value of **Ipv6AddressType** is changed to **Internet** and the type of the IPv6 address of the ALB instance is changed from private to public. If you upgrade the instance or the instance scales elastic network interfaces (ENIs) along with workloads, public IPv6 addresses are automatically enabled for the instance and the new ENIs. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the value of **Ipv6AddressType**.'."\n"
+ .'- If the ACL is in the **Creating** state, the ACL is being created.'."\n"
."\n"
- .'* **EnableLoadBalancerIpv6Internet** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the status of the task.'."\n"
- ."\n"
- .' * If the ALB instance is in the **Configuring** state, the network type of the IPv6 address that is used by the ALB instance is being changed.'."\n"
- .' * If the ALB instance is in the **Active** state, the network type of the IPv6 address that is used by the ALB instance is changed.'."\n",
- ],
- 'DisableLoadBalancerIpv6Internet' => [
- 'summary' => 'Changes the type of the IPv6 address that is used by a dual-stack Application Load Balancer (ALB) instance from public to private.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ .'- If the ACL is in the **Available** state, the ACL is available for use.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateAcl',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/*'],
+ ],
+ ],
+ ],
],
+ ],
+ 'CreateHealthCheckTemplate' => [
+ 'summary' => 'Create a health check template in a specified region.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -3378,430 +1204,230 @@
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '149',
+ 'abilityTreeNodes' => ['FEATUREslb6RAQIN'],
+ 'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
- 'schema' => [
- 'title' => '幂等参数',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can generate this token, but you must ensure that it is unique across requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system uses the `RequestId` of the request as the client token. Each API request has a unique `RequestId`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'],
],
[
- 'name' => 'DryRun',
+ 'name' => 'HealthCheckTemplateName',
'in' => 'query',
- 'schema' => [
- 'title' => '预校验',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'The name of the health check template.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters in length, must start with a letter, a digit, or a Chinese character, and can contain digits, periods (.), underscores (\\_), hyphens (-), and spaces.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'HealthCheckTemplate1'],
],
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'HealthCheckConnectPort',
'in' => 'query',
- 'schema' => [
- 'title' => '实例ID',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-chugtlrj1iusjh****',
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'Schema of Response'."\n",
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '7D866E37-1123-5160-AFF1-BDAF5EB86A8A',
- ],
- 'JobId' => [
- 'title' => '异步任务ID',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => 'd12871a6-ebb2-41f3-8d74-d9f452bb****',
- ],
- ],
- ],
- ],
- ],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.NonDualStackInstance',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.Ipv6IntranetInstance',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- ],
- 403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ 'schema' => ['description' => 'The port used for health checks.'."\n"
+ ."\n"
+ .'Valid values: **0** to **65535**.'."\n"
+ ."\n"
+ .'Default value: **0**. This value indicates that the port of a backend server is used for health checks.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '80'],
],
[
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- ],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7D866E37-1123-5160-AFF1-BDAF5EB86A8A\\",\\n \\"JobId\\": \\"d12871a6-ebb2-41f3-8d74-d9f452bb****\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableLoadBalancerIpv6InternetResponse>\\n <RequestId>7D866E37-1123-5160-AFF1-BDAF5EB86A8A</RequestId>\\n <JobId>d12871a6-ebb2-41f3-8d74-d9f452bb****</JobId>\\n</DisableLoadBalancerIpv6InternetResponse>","errorExample":""}]',
- 'title' => 'DisableLoadBalancerIpv6Internet',
- 'description' => '### Prerequisites'."\n"
- ."\n"
- .'An ALB instance is created and IPv4/IPv6 dual stack is enabled for the instance. You can call the [CreateLoadBalancer](~~214358~~) operation and set **AddressIpVersion** to **DualStack** to create a dual-stack ALB instance.'."\n"
- ."\n"
- .'> If you set **AddressIpVersion** to **DualStack**:'."\n"
- ."\n"
- .'* If you set **AddressType** to **Internet**, the ALB instance uses a public IPv4 IP address and a private IPv6 address.'."\n"
- .'* If you set **AddressType** to **Intranet**, the ALB instance uses a private IPv4 IP address and a private IPv6 address.'."\n"
- ."\n"
- .'### Description'."\n"
- ."\n"
- .'* After the DisableLoadBalancerIpv6Internet operation is called, the value of **Ipv6AddressType** is changed to **Intranet** and the type of the IPv6 address of the ALB instance is changed from public to private. If you upgrade the instance or the instance scales elastic network interfaces (ENIs) along with workloads, private IPv6 addresses are automatically enabled for the instance and the new ENIs. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the value of **Ipv6AddressType**.'."\n"
- ."\n"
- .'* **DisableLoadBalancerIpv6Internet** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the status of the task.'."\n"
- ."\n"
- .' * If the ALB instance is in the **Configuring** state, the network type of the IPv6 address that is used by the ALB instance is being changed.'."\n"
- .' * If the ALB instance is in the **Active** state, the network type of the IPv6 address that is used by the ALB instance is changed.'."\n",
- ],
- 'LoadBalancerJoinSecurityGroup' => [
- 'summary' => 'Adds an Application Load Balancer (ALB) instance to a security group.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
- ],
- ],
- 'operationType' => 'write',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'none',
- 'abilityTreeCode' => '171521',
- 'abilityTreeNodes' => [
- 'FEATUREslbKS6M4D',
- 'FEATUREslb39XGK4',
+ 'name' => 'HealthCheckHost',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The domain name used for the health check. Valid values:'."\n"
+ ."\n"
+ .'- **$SERVER\\_IP**: The private IP address of a backend server. If you set this parameter to `$SERVER_IP` or leave it empty, the load balancer uses the private IP address of the backend server as the domain name for the health check.'."\n"
+ ."\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 `HealthCheckProtocol` parameter is set to **HTTP** or **HTTPS**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '$SERVER_IP'],
],
- ],
- 'parameters' => [
[
- 'name' => 'SecurityGroupIds',
+ 'name' => 'HealthCheckCodes',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The security group IDs.'."\n",
+ 'title' => '',
+ 'description' => 'The HTTP status codes that indicate a successful health check.',
'type' => 'array',
- 'items' => [
- 'description' => 'The security group ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'sg-m5e7xkprgt1pi1ik****',
- ],
- 'required' => true,
- 'maxItems' => 10,
+ 'items' => ['description' => 'The HTTP status codes that indicate a successful health check.'."\n"
+ ."\n"
+ .'- If **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, you can specify **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**. You can specify multiple HTTP status codes. Separate them with commas (,).'."\n"
+ ."\n"
+ .'- If **HealthCheckProtocol** is set to **gRPC**, the valid status codes are from **0** to **99**. The default value is **0**. You can specify up to 20 value ranges. Separate them with commas (,).'."\n"
+ ."\n"
+ .'> This parameter takes effect only when the `HealthCheckProtocol` parameter is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'required' => false, 'example' => 'http_2xx', 'title' => ''],
+ 'required' => false,
+ 'example' => '5',
],
],
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'HealthCheckInterval',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-h7kcw4g4nnvtqp****',
- ],
+ 'schema' => ['description' => 'The interval at which health checks are performed.'."\n"
+ ."\n"
+ .'Valid values: **1** to **50**. Unit: seconds.'."\n"
+ ."\n"
+ .'Default value: **2**. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '2'],
],
[
- 'name' => 'DryRun',
+ 'name' => 'HealthCheckTimeout',
'in' => 'query',
- 'schema' => [
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'The timeout period for a health check response. If a backend server does not respond within this period, the health check fails.'."\n"
+ ."\n"
+ .'Valid values: **1** to **300**. Unit: seconds.'."\n"
+ ."\n"
+ .'Default value: **5**. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '5'],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'HealthCheckPath',
'in' => 'query',
- 'schema' => [
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-426655440000',
- ],
+ 'schema' => ['title' => 'uri', 'description' => 'The URL that is used for health checks.'."\n"
+ ."\n"
+ .'The URL must be 1 to 80 characters in length. It must start with a forward slash (/) and can contain letters, digits, and the following special characters: `- / . % ? # & _;~!()*[]@$^:\',+`.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when the `HealthCheckProtocol` parameter is set to **HTTP** or **HTTPS**.', 'type' => 'string', 'required' => false, 'example' => '/test/index.html'],
],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => '创建结果',
- 'description' => 'The task result.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'JobId' => [
- 'description' => 'The ID of the asynchronous task.'."\n",
- 'type' => 'string',
- 'example' => '8fe81f25-79a0-4fa0-9036-f2601fda****',
- ],
- 'RequestId' => [
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'D3B9AE45-F5DB-58E3-A4B5-EE58F1EC****',
- ],
- ],
- ],
- ],
- ],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceAlreadyAssociated.SecurityGroup',
- 'errorMessage' => 'The specified resource of %s is already associated.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.SecurityGroupNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'OperationDenied.SecurityGroupNotSupport',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.LbAssociatedAclCanNotJoinSecurityGroup',
- 'errorMessage' => 'The operation is not allowed because of loadBalancer associated acl can not join security group.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.SecurityGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ [
+ 'name' => 'HealthCheckMethod',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The method used for the health check. Valid values:'."\n"
+ ."\n"
+ .'- **HEAD** (default): For HTTP and HTTPS listeners, the default health check method is HEAD.'."\n"
+ ."\n"
+ .'- **POST**: For gRPC listeners, the default health check method is POST.'."\n"
+ ."\n"
+ .'- **GET**: If the response body exceeds 8 KB, it is truncated. This does not affect the health check result.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when the `HealthCheckProtocol` parameter is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'HEAD'],
],
- ],
- 'staticInfo' => [
- 'returnType' => 'asynchronous',
- 'callback' => 'Alb::2020-06-16::ListAsynJobs',
- 'callbackInterval' => 3000,
- 'maxCallbackTimes' => 20,
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"8fe81f25-79a0-4fa0-9036-f2601fda****\\",\\n \\"RequestId\\": \\"D3B9AE45-F5DB-58E3-A4B5-EE58F1EC****\\"\\n}","type":"json"}]',
- 'title' => 'LoadBalancerJoinSecurityGroup',
- 'description' => '* By default, security groups are unavailable. To use security groups, contact your account manager.'."\n"
- ."\n"
- .'* Make sure that a security group is created. For more information about how to create security groups, see [CreateSecurityGroup](~~2679843~~).'."\n"
- ."\n"
- .'* Each ALB instance can be added to at most four security groups.'."\n"
- ."\n"
- .'* To query the security groups of an ALB instance, call the [GetLoadBalancerAttribute](~~2254835~~) operation.'."\n"
- ."\n"
- .'* GetLoadBalancerAttribute is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAsynJobs](~~2254893~~) operation to query the status of the task.'."\n"
- ."\n"
- .' * If the task is in the Succeeded state, the ALB instance is added to the security group.'."\n"
- .' * If the task is in the Processing state, the ALB instance is being added to the security group. In this case, you can query the task but cannot perform other operations.'."\n",
- ],
- 'LoadBalancerLeaveSecurityGroup' => [
- 'summary' => 'Removes an Application Load Balancer (ALB) instance from a security group.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
[
- 'AK' => [],
+ 'name' => 'HealthCheckProtocol',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The protocol used for the health check. Valid values:'."\n"
+ ."\n"
+ .'- **HTTP** (default): simulates browser access by sending HEAD or GET requests to check whether the server application is healthy.'."\n"
+ ."\n"
+ .'- **HTTPS**: simulates browser access by sending HEAD or GET requests to check whether the server application is healthy. HTTPS provides encrypted data transmission and is more secure than HTTP.'."\n"
+ ."\n"
+ .'- **TCP**: checks whether the server port is responsive by sending SYN packets.'."\n"
+ ."\n"
+ .'- **gRPC**: checks whether the server application is healthy by sending POST or GET requests.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'HTTP'],
],
- ],
- 'operationType' => 'write',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'none',
- 'abilityTreeCode' => '171520',
- 'abilityTreeNodes' => [
- 'FEATUREslbKS6M4D',
- 'FEATUREslb39XGK4',
+ [
+ 'name' => 'HealthCheckHttpVersion',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The version of the HTTP protocol that is used for the health check.'."\n"
+ ."\n"
+ .'Valid values: **HTTP1.0** and **HTTP1.1**.'."\n"
+ ."\n"
+ .'Default value: **HTTP1.1**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when the `HealthCheckProtocol` parameter is set to **HTTP** or **HTTPS**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'HTTP 1.0'],
],
- ],
- 'parameters' => [
[
- 'name' => 'SecurityGroupIds',
+ 'name' => 'HealthyThreshold',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The security group IDs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The security group ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'sg-1nmf15kvwj37g2g1****',
- ],
- 'required' => true,
- 'maxItems' => 10,
- ],
+ 'schema' => ['description' => 'The number of consecutive successful health checks required to change the health status of a backend server from **unhealthy** to **healthy**.'."\n"
+ ."\n"
+ .'Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'Default value: **3**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '4'],
],
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'UnhealthyThreshold',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the ALB instance.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-iv9gj3lpak6fbj****',
- ],
+ 'schema' => ['description' => 'The number of consecutive failed health checks required to change the health status of a backend server from **healthy** to **unhealthy**.'."\n"
+ ."\n"
+ .'Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'Default value: **3**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '4'],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => 'dryRun', 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Performs a dry run. The system checks the request for potential issues, including missing required parameters, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned. The resource is not created.'."\n"
+ ."\n"
+ .'- **false** (default): Sends a normal request. If the request is valid, a 2xx HTTP status code is returned and the health check template is created.', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'Tag',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'description' => 'The task result.',
- 'type' => 'string',
+ 'description' => 'The tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => false,
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0****',
+ 'title' => '',
+ 'example' => '',
],
],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****', 'title' => ''],
+ ],
],
'responses' => [
200 => [
'schema' => [
- 'title' => '创建结果',
- 'description' => '',
+ 'title' => 'Schema of Response',
+ 'description' => 'The health check template object.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The request ID.',
- 'type' => 'string',
- 'example' => 'EC0C96E4-7CCB-599C-9329-3A5DB6FF****',
- ],
- 'JobId' => [
- 'description' => 'The ID of the asynchronous task.',
- 'type' => 'string',
- 'example' => '51c5b627-3500-487c-b17d-5cc583f0****',
- ],
+ 'HealthCheckTemplateId' => ['description' => 'The ID of the health check template.', 'type' => 'string', 'title' => '', 'example' => 'hct-pno8sisi******'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.SecurityGroupNotSupport',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'ResourceNotAssociated.SecurityGroup',
- 'errorMessage' => 'The specified resource of %s is not associated.',
- ],
+ ['errorCode' => 'QuotaExceeded.HealthCheckTemplatesNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded. Usage: %s/%s.'],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.SecurityGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ 403 => [
+ ['errorCode' => 'Forbidden.HealthCheckTemplate', 'errorMessage' => 'Authentication has failed for HealthCheckTemplate.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'asynchronous',
- 'callback' => 'Alb::2020-06-16::ListAsynJobs',
- 'callbackInterval' => 3000,
- 'maxCallbackTimes' => 20,
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"HealthCheckTemplateId\\": \\"hct-pno8sisi******\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","type":"json"}]',
+ 'title' => 'CreateHealthCheckTemplate',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateHealthCheckTemplate',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/*'],
+ ],
+ ],
+ ],
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC0C96E4-7CCB-599C-9329-3A5DB6FF****\\",\\n \\"JobId\\": \\"51c5b627-3500-487c-b17d-5cc583f0****\\"\\n}","type":"json"}]',
- 'title' => 'LoadBalancerLeaveSecurityGroup',
- 'description' => '* LoadBalancerLeaveSecurityGroup is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAsynJobs](~~2254893~~) operation to query the status of the task.'."\n"
- ."\n"
- .' * If the task is in the Succeeded state, the ALB instance is removed from the security group.'."\n"
- .' * If the task is in the Processing state, the ALB instance is being removed from the security group. In this case, you can query the task but cannot perform other operations.'."\n",
],
'CreateListener' => [
- 'summary' => 'Creates a listener.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -3811,399 +1437,245 @@
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
'abilityTreeCode' => '186',
- 'abilityTreeNodes' => [
- 'FEATUREslbM7ALO6',
- 'FEATUREslbK3ZR0L',
- 'FEATUREslbN5IE4S',
- ],
+ 'abilityTreeNodes' => ['FEATUREslbM7ALO6', 'FEATUREslbK3ZR0L', 'FEATUREslbN5IE4S'],
],
'parameters' => [
[
'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => '负载均衡标识',
- 'description' => 'The ID of the ALB instance.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-n5qw04uq8vavfe****',
- ],
+ 'schema' => ['description' => 'The ID of the Application Load Balancer (ALB) instance.', 'type' => 'string', 'required' => true, 'example' => 'alb-n5qw04uq8vavfe****', 'title' => ''],
],
[
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the value, but you must make sure that it is unique among all requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not set this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. **RequestId** may be different for each API request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-426655440000',
- ],
+ 'schema' => ['description' => 'A client-generated token that is used to ensure the idempotency of the request. The token must be unique across different requests and can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** is unique for each API request.', 'type' => 'string', 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => '', 'required' => false],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a precheck. Valid values:'."\n"
- ."\n"
- .'* **true**: prechecks the request without creating a listener. The system checks the required parameters, request syntax, and limits. If the request fails the precheck, an error code is returned based on the cause of the failure. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): sends the API request. If the request passes the precheck, a 2xx HTTP status code is returned and the system proceeds to create a listener.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Performs a dry run to check the request for potential issues, including required parameters, request format, and service limits. The listener is not created. If the request fails the check, the system returns an error. If the request passes the check, the system returns the `DryRunOperation` error code.'."\n"
+ ."\n"
+ .'- **false** (default): Sends the request. If the request passes the check, the system performs the operation and returns an HTTP 2xx status code.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
],
[
'name' => 'ListenerProtocol',
'in' => 'query',
- 'schema' => [
- 'title' => '监听协议',
- 'description' => 'The listener protocol.'."\n"
- ."\n"
- .'Valid values: **HTTP**, **HTTPS**, and **QUIC**.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'HTTP',
- ],
+ 'schema' => ['description' => 'The listener protocol.'."\n"
+ ."\n"
+ .'Valid values: **HTTP**, **HTTPS**, and **QUIC**.', 'type' => 'string', 'required' => true, 'example' => 'HTTP', 'title' => ''],
],
[
'name' => 'ListenerPort',
'in' => 'query',
- 'schema' => [
- 'title' => '监听端口',
- 'description' => 'The frontend port that is used by the ALB instance.'."\n"
- ."\n"
- .'Valid values: **1 to 65535**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'example' => '80',
- ],
+ 'schema' => ['description' => 'The frontend port used by the listener.'."\n"
+ ."\n"
+ .'Valid values: **1** to **65535**.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '80'],
],
[
'name' => 'ListenerDescription',
'in' => 'query',
- 'schema' => [
- 'title' => '监听描述',
- 'description' => 'The name of the listener.'."\n"
- ."\n"
- .'The description must be 2 to 256 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_). Regular expressions are supported.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP_80',
- ],
+ 'schema' => ['description' => 'A custom name for the listener.'."\n"
+ ."\n"
+ .'The name must be 2 to 256 characters long and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), underscores (\\_), and Chinese characters.', 'type' => 'string', 'example' => 'HTTP_80', 'title' => '', 'required' => false],
],
[
'name' => 'RequestTimeout',
'in' => 'query',
- 'schema' => [
- 'title' => '请求超时时间',
- 'description' => 'The timeout period of a request. Unit: seconds.'."\n"
- ."\n"
- .'Valid values: **1 to 180**.'."\n"
- ."\n"
- .'Default value: **60**.'."\n"
- ."\n"
- .'If no response is received from the backend server during the request timeout period, ALB sends an `HTTP 504` error code to the client.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'minimum' => '1',
- 'example' => '60',
- 'default' => '60',
- ],
+ 'schema' => ['description' => 'The request timeout in seconds.'."\n"
+ ."\n"
+ .'Valid values: **1** to **600**.'."\n"
+ ."\n"
+ .'Default value: **60**.'."\n"
+ ."\n"
+ .'If a backend server does not respond within the timeout period, the load balancer returns an `HTTP 504` error to the client.'."\n"
+ ."\n"
+ .'> You can request a quota increase to a maximum of 3,600 seconds.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'example' => '60', 'default' => '60', 'title' => '', 'required' => false],
],
[
'name' => 'IdleTimeout',
'in' => 'query',
- 'schema' => [
- 'title' => '连接空闲超时时间',
- 'description' => 'The timeout period of an idle connection. Unit: seconds.'."\n"
- ."\n"
- .'Valid values: **1 to 60**.'."\n"
- ."\n"
- .'Default value: **15**.'."\n"
- ."\n"
- .'If no requests are received within the specified timeout period, ALB closes the current connection. When a new request is received, ALB establishes a new connection.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'minimum' => '1',
- 'example' => '3',
- 'default' => '15',
- ],
+ 'schema' => ['description' => 'The idle timeout in seconds.'."\n"
+ ."\n"
+ .'Valid values: **1** to **600**.'."\n"
+ ."\n"
+ .'Default value: **15**.'."\n"
+ ."\n"
+ .'If no requests are received on a connection within the idle timeout, the load balancer closes the connection. A new connection is established for the next request.'."\n"
+ ."\n"
+ .'> You can request a quota increase to a maximum of 3,600 seconds.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'example' => '3', 'default' => '15', 'title' => '', 'required' => false],
],
[
'name' => 'GzipEnabled',
'in' => 'query',
- 'schema' => [
- 'title' => '是否开启Gzip压缩',
- 'description' => 'Specifies whether to enable `Gzip` compression to compress specific types of files. Valid values:'."\n"
- ."\n"
- .'* **true** (default): enables Gzip compression.'."\n"
- .'* **false**: disables Gzip compression.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'Specifies whether to enable `Gzip` compression to compress specific types of files. Valid values:'."\n"
+ ."\n"
+ .'- **true** (default): Enables Gzip compression.'."\n"
+ ."\n"
+ .'- **false**: Disables Gzip compression.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
[
'name' => 'Http2Enabled',
'in' => 'query',
- 'schema' => [
- 'title' => '是否开启HTTP/2特性',
- 'description' => 'Specifies whether to enable `HTTP/2`. Valid values:'."\n"
- ."\n"
- .'* **true** (default): enables HTTP/2.'."\n"
- .'* **false**: disables HTTP/2.'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'Specifies whether to enable `HTTP/2`. Valid values:'."\n"
+ ."\n"
+ .'- **true** (default): Enables HTTP/2.'."\n"
+ ."\n"
+ .'- **false**: Disables HTTP/2.'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
[
'name' => 'SecurityPolicyId',
'in' => 'query',
- 'schema' => [
- 'title' => '安全策略',
- 'description' => 'The ID of the security policy. System security policies and custom security policies are supported.'."\n"
- ."\n"
- .'Default value: **tls_cipher_policy\\_1\\_0** (system security policy).'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'tls_cipher_policy_1_0',
- ],
+ 'schema' => ['description' => 'The ID of the security policy. Both system and custom security policies are supported.'."\n"
+ ."\n"
+ .'Default value: **tls\\_cipher\\_policy\\_1\\_0** (a system security policy).'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'string', 'example' => 'tls_cipher_policy_1_0', 'title' => '', 'required' => false],
],
[
'name' => 'CaEnabled',
'in' => 'query',
- 'schema' => [
- 'title' => '是否开启双向认证',
- 'description' => 'Specifies whether to enable mutual authentication. Valid values:'."\n"
- ."\n"
- .'* **true**: enables mutual authentication.'."\n"
- .'* **false** (default): disables mutual authentication.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'Specifies whether to enable mutual authentication. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables mutual authentication.'."\n"
+ ."\n"
+ .'- **false** (default): Disables mutual authentication.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
],
[
'name' => 'XForwardedForConfig',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => 'XForward字段相关的配置',
- 'description' => 'The configuration of the XForward header.',
+ 'title' => '',
+ 'description' => 'The configuration of `X-Forwarded-*` headers.',
'type' => 'object',
'properties' => [
- 'XForwardedForClientCertClientVerifyAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertClientVerifyEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertClientVerifyEnabled** is set to **true**.'."\n"
- ."\n"
- .'The name must be 1 to 40 characters in length, and can contain lowercase letters, hyphens (-), underscores (\\_), and digits.'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_client-verify-alias_123456',
- ],
- 'XForwardedForClientCertClientVerifyEnabled' => [
- 'title' => '是否通过X-Forwarded-Clientcert-clientverify 头字段获取对访问负载均衡实例客户端证书的校验结果。HTTPS监听有效。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Clientcert-clientverify` header to retrieve the verification result of the client certificate. Valid values:'."\n"
- ."\n"
- .'* **true**: uses the X-Forwarded-Clientcert-clientverify header.'."\n"
- .'* **false** (default): does not use the X-Forwarded-Clientcert-clientverify header.'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- 'XForwardedForClientCertFingerprintAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertFingerprintEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertFingerprintEnabled** is set to **true**.'."\n"
- ."\n"
- .'The name must be 1 to 40 characters in length, and can contain lowercase letters, hyphens (-), underscores (\\_), and digits.'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_finger-print-alias_123456',
- ],
- 'XForwardedForClientCertFingerprintEnabled' => [
- 'title' => '是否通过X-Forwarded-Clientcert-fingerprint 头字段获取访问负载均衡实例客户端证书的指纹取值,HTTPS监听有效。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Clientcert-fingerprint` header to retrieve the fingerprint of the client certificate. Valid values:'."\n"
- ."\n"
- .'* **true**: uses the X-Forwarded-Clientcert-fingerprint header.'."\n"
- .'* **false** (default): does not use the X-Forwarded-Clientcert-fingerprint header.'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- 'XForwardedForClientCertIssuerDNAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertIssuerDNEnabled的值为‘On’的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertIssuerDNEnabled** is set to **true**.'."\n"
- ."\n"
- .'The name must be 1 to 40 characters in length, and can contain lowercase letters, hyphens (-), underscores (\\_), and digits.'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_issue-dn-alias_123456',
- ],
- 'XForwardedForClientCertIssuerDNEnabled' => [
- 'title' => '是否通过 X-Forwarded-Clientcert-issuerdn 头字段获取访问负载均衡实例客户端证书的发行者信息。HTTPS监听有效。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Clientcert-issuerdn` header to retrieve information about the authority that issues the client certificate. Valid values:'."\n"
- ."\n"
- .'* **true**: uses the X-Forwarded-Clientcert-issuerdn header.'."\n"
- .'* **false** (default): does not use the X-Forwarded-Clientcert-issuerdn header.'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- 'XForwardedForClientCertSubjectDNAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertSubjectDNEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertSubjectDNEnabled** is set to **true**.'."\n"
- ."\n"
- .'The name must be 1 to 40 characters in length, and can contain lowercase letters, hyphens (-), underscores (\\_), and digits.'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_subject-dn-alias_123456',
- ],
- 'XForwardedForClientCertSubjectDNEnabled' => [
- 'title' => '是否通过X-Forwarded-Clientcert-subjectdn 头字段获取访问负载均衡实例客户端证书的所有者信息。HTTPS监听有效。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Clientcert-subjectdn` header to retrieve information about the owner of the client certificate. Valid values:'."\n"
- ."\n"
- .'* **true**: uses the X-Forwarded-Clientcert-subjectdn header.'."\n"
- .'* **false** (default): does not use the X-Forwarded-Clientcert-subjectdn header.'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- 'XForwardedForClientSrcPortEnabled' => [
- 'title' => '是否通过X-Forwarded-Client-Port 头字段获取访问负载均衡实例客户端的端口。HTTPS监听有效。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Client-srcport` header to retrieve the client port. Valid values:'."\n"
- ."\n"
- .'* **true**: uses the X-Forwarded-Client-srcport header.'."\n"
- .'* **false** (default): does not use the X-Forwarded-Client-srcport header.'."\n"
- ."\n"
- .'> HTTP and HTTPS listeners support this parameter.',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- 'XForwardedForEnabled' => [
- 'title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP',
- 'description' => 'Specifies whether to use the `X-Forwarded-For` header to retrieve client IP addresses. Valid values:'."\n"
- ."\n"
- .'* **true** (default)'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> HTTP and HTTPS listeners support this parameter.',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- 'XForwardedForProcessingMode' => [
- 'description' => 'Specifies how the `X-Forwarded-For` header is processed. This parameter takes effect only when **XForwardedForEnabled** is set to **true**. Valid values:'."\n"
- ."\n"
- .'* **append** (default)'."\n"
- .'* **remove**'."\n"
- ."\n"
- .'> * If this parameter is set to **append**, ALB appends the IP address of the last hop to the existing `X-Forwarded-For` header in the request before the request is sent to backend servers.'."\n"
- .'> * If this parameter is set to **remove**, ALB removes the `X-Forwarded-For` header in the request before the request is sent to backend servers, no matter whether the request carries the `X-Forwarded-For` header.'."\n"
- .'> * This parameter is only available for HTTP and HTTPS listeners.',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'append',
- ],
- 'XForwardedForProtoEnabled' => [
- 'title' => '是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Proto` header to retrieve the listener protocol of the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **true**: uses the X-Forwarded-Proto header.'."\n"
- .'* **false** (default): does not use the X-Forwarded-Proto header.'."\n"
- ."\n"
- .'> HTTP, HTTPS, and QUIC listeners support this parameter.',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForSLBIdEnabled' => [
- 'title' => '是否通过SLB-ID头字段获取负载均衡实例ID。',
- 'description' => 'Specifies whether to use the `SLB-ID` header to retrieve the ID of the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **true**: uses the SLB-ID header.'."\n"
- .'* **false** (default): does not use the SLB-ID header.'."\n"
- ."\n"
- .'> HTTP, HTTPS, and QUIC listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForSLBPortEnabled' => [
- 'title' => '是否通过X-Forwarded-Port 头字段获取负载均衡实例的监听端口。HTTPS监听有效。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Port` header to retrieve the listener port of the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **true**: uses the X-Forwarded-Port header.'."\n"
- .'* **false** (default): does not use the X-Forwarded-Port header.'."\n"
- ."\n"
- .'> HTTP, HTTPS, and QUIC listeners support this parameter.',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForClientSourceIpsEnabled' => [
- 'description' => 'Specifies whether to allow the ALB instance to retrieve client IP addresses from the `X-Forwarded-For` header. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n"
- ."\n"
- .'> HTTP and HTTPS listeners support this parameter.',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForClientSourceIpsTrusted' => [
- 'description' => 'The trusted proxy IP address.'."\n"
- ."\n"
- .'ALB traverses `X-Forwarded-For` backwards and selects the first IP address that is not in the trusted IP list as the originating IP address of the client, which will be throttled if source IP address throttling is enabled.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '10.1.1.0/24',
- ],
- 'XForwardedForHostEnabled' => [
- 'description' => 'Specifies whether to use the `X-Forwarded-Host` header to retrieve the client domain name. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n"
- ."\n"
- .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'XForwardedForClientCertClientVerifyAlias' => ['description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertClientVerifyEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name must be 1 to 40 characters long and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test_client-verify-alias_123456'],
+ 'XForwardedForClientCertClientVerifyEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Client-Cert-Client-Verify` header to retrieve the client certificate\'s verification result. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables this feature.'."\n"
+ ."\n"
+ .'- **false** (default): Disables this feature.'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'],
+ 'XForwardedForClientCertFingerprintAlias' => ['description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertFingerprintEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name must be 1 to 40 characters long and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test_finger-print-alias_123456'],
+ 'XForwardedForClientCertFingerprintEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Client-Cert-Fingerprint` header to retrieve the fingerprint of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables this feature.'."\n"
+ ."\n"
+ .'- **false** (default): Disables this feature.'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'],
+ 'XForwardedForClientCertIssuerDNAlias' => ['description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertIssuerDNEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name must be 1 to 40 characters long and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test_issue-dn-alias_123456'],
+ 'XForwardedForClientCertIssuerDNEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Client-Cert-Issuer-DN` header to retrieve information about the issuer of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables this feature.'."\n"
+ ."\n"
+ .'- **false** (default): Disables this feature.'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'],
+ 'XForwardedForClientCertSubjectDNAlias' => ['description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertSubjectDNEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name must be 1 to 40 characters long and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test_subject-dn-alias_123456'],
+ 'XForwardedForClientCertSubjectDNEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Client-Cert-Subject-DN` header to retrieve information about the owner of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables this feature.'."\n"
+ ."\n"
+ .'- **false** (default): Disables this feature.'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'],
+ 'XForwardedForClientSrcPortEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Client-Srcport` header to retrieve the source port of the client. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables this feature.'."\n"
+ ."\n"
+ .'- **false** (default): Disables this feature.'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP and HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'],
+ 'XForwardedForEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-For` header to retrieve the client IP address. Valid values:'."\n"
+ ."\n"
+ .'- **true** (default): Enables this feature.'."\n"
+ ."\n"
+ .'- **false**: Disables this feature.'."\n"
+ ."\n"
+ .'> 1. If you set this parameter to **true**, the default value of **XForwardedForProcessingMode** is **append**. You can change the value to **remove**.'."\n"
+ .'>'."\n"
+ .'> 2. If you set this parameter to **false**, ALB retains the `X-Forwarded-For` header and does not perform additional processing before sending the request to a backend server.'."\n"
+ .'>'."\n"
+ .'> 3. This parameter is available for HTTP and HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'],
+ 'XForwardedForProcessingMode' => ['description' => 'The mode used to process the `X-Forwarded-For` header. This parameter takes effect only when **XForwardedForEnabled** is set to **true**. Valid values:'."\n"
+ ."\n"
+ .'- **append** (default): Appends the IP address of the last hop to the `X-Forwarded-For` header.'."\n"
+ ."\n"
+ .'- **remove**: Deletes the `X-Forwarded-For` header.'."\n"
+ ."\n"
+ .'> 1. If you set the value to **append**, ALB adds the IP address of the last hop to the `X-Forwarded-For` header before sending a request to a backend server.'."\n"
+ .'>'."\n"
+ .'> 2. If you set the value to **remove**, ALB deletes the `X-Forwarded-For` header before sending a request to a backend server, regardless of whether the request contains an `X-Forwarded-For` header.'."\n"
+ .'>'."\n"
+ .'> 3. This parameter is available for HTTP and HTTPS listeners.', 'type' => 'string', 'required' => false, 'example' => 'append', 'title' => ''],
+ 'XForwardedForProtoEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Proto` header to retrieve the listener protocol of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables this feature.'."\n"
+ ."\n"
+ .'- **false** (default): Disables this feature.'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'XForwardedForSLBIdEnabled' => ['description' => 'Specifies whether to use the `SLB-ID` header to retrieve the ID of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables this feature.'."\n"
+ ."\n"
+ .'- **false** (default): Disables this feature.'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'XForwardedForSLBPortEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Port` header to retrieve the listener port of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables this feature.'."\n"
+ ."\n"
+ .'- **false** (default): Disables this feature.'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'XForwardedForClientSourceIpsEnabled' => ['description' => 'Specifies whether to allow ALB to retrieve the client IP address from the X-Forwarded-For header. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables this feature.'."\n"
+ ."\n"
+ .'- **false** (default): Disables this feature.'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP and HTTPS listeners.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
+ 'XForwardedForClientSourceIpsTrusted' => ['description' => 'Specifies the trusted proxy IP addresses.'."\n"
+ ."\n"
+ .'ALB traverses the `X-Forwarded-For` header from right to left, selecting the first IP address not in this trusted list as the client IP address. This IP is then used for features such as source IP-based throttling.', 'type' => 'string', 'required' => false, 'example' => '10.1.1.0/24', 'title' => ''],
+ 'XForwardedForHostEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Host` header to retrieve the domain name that is used to access the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables this feature.'."\n"
+ ."\n"
+ .'- **false** (default): Disables this feature.'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
'required' => false,
+ 'example' => '',
],
],
[
@@ -4211,33 +1683,23 @@
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => 'HTTPS启用QUIC时相关属性',
- 'description' => 'Select a QUIC listener and associate it with the ALB instance.',
+ 'title' => '',
+ 'description' => 'The configuration of the associated QUIC listener.',
'type' => 'object',
'properties' => [
- 'QuicListenerId' => [
- 'title' => '需要关联的QUIC监听ID,HTTPS监听时有效,QuicUpgradeEnabled为true时必选',
- 'description' => 'The ID of the QUIC listener that you want to associate with the HTTPS listener. Only HTTPS listeners support this parameter. This parameter is required when **QuicUpgradeEnabled** is set to **true**.'."\n"
- ."\n"
- .'> The HTTPS listener and the QUIC listener must be added to the same ALB instance. Make sure that the QUIC listener is not associated with any other listeners.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'lsn-o4u54y73wq7b******',
- ],
- 'QuicUpgradeEnabled' => [
- 'title' => '是否开启quic升级,HTTPS监听时有效',
- 'description' => 'Specifies whether to enable QUIC upgrade. Valid values:'."\n"
- ."\n"
- .'* **true**: enables QUIC upgrade.'."\n"
- .'* **false** (default): disables QUIC upgrade.'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'QuicListenerId' => ['description' => 'The ID of the QUIC listener to associate with the listener. This parameter is required for HTTPS listeners when **QuicUpgradeEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'> The HTTPS listener and the associated QUIC listener must belong to the same ALB instance, and the QUIC listener must not be already associated with another listener.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'lsn-o4u54y73wq7b******'],
+ 'QuicUpgradeEnabled' => ['description' => 'Specifies whether to enable QUIC upgrade. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables QUIC upgrade.'."\n"
+ ."\n"
+ .'- **false** (default): Disables QUIC upgrade.'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
],
'required' => false,
+ 'example' => '',
],
],
[
@@ -4245,26 +1707,27 @@
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '监听默认服务器证书列表,N当前取值范围为1',
- 'description' => 'The details about each certificate.',
+ 'title' => '',
+ 'description' => 'A list of server certificates.',
'type' => 'array',
'items' => [
- 'description' => 'The configurations of the certificate.',
+ 'description' => 'The certificate.',
'type' => 'object',
'properties' => [
- 'CertificateId' => [
- 'title' => '正式标识',
- 'description' => 'The ID of the certificate. Only server certificates are supported. You can specify up to 20 certificate IDs.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '103705*******',
- ],
+ 'CertificateId' => ['description' => 'The ID of the default server certificate. Only one default server certificate is supported.'."\n"
+ ."\n"
+ .'> - This parameter is required if **ListenerProtocol** is set to **HTTPS** or **QUIC**.'."\n"
+ .'>'."\n"
+ .'> - To associate additional certificates, call the [AssociateAdditionalCertificatesWithListener](~~2254830~~) operation after the listener is created.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '103705*******'],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
'required' => false,
'maxItems' => 1,
'minItems' => 1,
+ 'example' => '',
],
],
[
@@ -4272,28 +1735,25 @@
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '监听默认CA证书列表,N当前取值范围为1',
- 'description' => 'The certificate authority (CA) certificates. You can specify only one CA certificate.',
+ 'title' => '',
+ 'description' => 'A list of CA certificates for the listener. Only one CA certificate is supported.',
'type' => 'array',
'items' => [
- 'description' => 'The CA hierarchy.',
+ 'description' => 'The CA certificate.',
'type' => 'object',
'properties' => [
- 'CertificateId' => [
- 'title' => '正式标识',
- 'description' => 'The ID of the CA certificate.'."\n"
- ."\n"
- .'> This parameter is required if **CaEnabled** is set to **true**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '123157*******',
- ],
+ 'CertificateId' => ['description' => 'The ID of the CA certificate.'."\n"
+ ."\n"
+ .'> This parameter is required if **CaEnabled** is set to **true**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '123157*******'],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
'required' => false,
'maxItems' => 1,
'minItems' => 1,
+ 'example' => '',
],
],
[
@@ -4301,54 +1761,49 @@
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '监听默认动作',
- 'description' => 'The actions of the forwarding rule.',
+ 'title' => '',
+ 'description' => 'The default actions for the listener.',
'type' => 'array',
'items' => [
- 'description' => '',
+ 'description' => 'The list of default actions.',
'type' => 'object',
'properties' => [
'ForwardGroupConfig' => [
- 'title' => '转发组',
- 'description' => 'The configuration of the forwarding action. You can specify at most 20 actions.',
+ 'title' => '',
+ 'description' => 'The configuration of the forward action. You can specify up to 20 forward actions.',
'type' => 'object',
'properties' => [
'ServerGroupTuples' => [
- 'title' => '服务器组列表',
- 'description' => 'The destination server group to which requests are forwarded.',
+ 'title' => '',
+ 'description' => 'The destination server groups.',
'type' => 'array',
'items' => [
- 'description' => '',
+ 'description' => 'The destination server groups.',
'type' => 'object',
'properties' => [
- 'ServerGroupId' => [
- 'title' => '服务器组ID',
- 'description' => 'The ID of the server group to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'sgp-8ilqs4axp6******',
- ],
+ 'ServerGroupId' => ['description' => 'The ID of the destination server group.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'sgp-8ilqs4axp6******'],
],
'required' => true,
+ 'title' => '',
+ 'example' => '',
],
'required' => true,
+ 'example' => '',
],
],
'required' => true,
+ 'example' => '',
],
- 'Type' => [
- 'title' => '动作类型',
- 'description' => 'The action type. You can specify only one action type. Valid value:'."\n"
- ."\n"
- .'**ForwardGroup**: forwards requests to multiple Server groups.',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'ForwardGroup',
- ],
+ 'Type' => ['description' => 'The type of action.'."\n"
+ ."\n"
+ .'Set this to **ForwardGroup** to forward requests to one or more server groups.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'ForwardGroup'],
],
'required' => true,
+ 'title' => '',
+ 'example' => '',
],
'required' => true,
+ 'example' => '',
],
],
[
@@ -4356,1634 +1811,2079 @@
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The tags.',
+ 'description' => 'A list of tags to add to the listener.',
'type' => 'array',
'items' => [
- 'description' => '',
+ 'description' => 'The tag.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The tag key. The tag key can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. The tag value can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'product',
- ],
+ 'Key' => ['description' => 'The tag key. The key can be up to 128 characters long and cannot start with `aliyun` or `acs:`, or contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The value can be up to 128 characters long and cannot start with `aliyun` or `acs:`, or contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => '',
+ 'title' => '',
+ 'description' => 'Details of the created listener',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The ID of the asynchronous task.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'ListenerId' => [
- 'title' => '监听标识',
- 'description' => 'The ID of the listener.'."\n",
- 'type' => 'string',
- 'example' => 'lsn-o4u54y73wq7b******',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876*******',
- ],
+ 'JobId' => ['description' => 'Asynchronous task ID', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'ListenerId' => ['description' => 'Listener ID', 'type' => 'string', 'title' => '', 'example' => 'lsn-o4u54y73wq7b******'],
+ 'RequestId' => ['title' => '', 'description' => 'Request ID', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876*******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'ResourceAlreadyExist.Listener',
- 'errorMessage' => 'The specified resource %s is already exist.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerListenersNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'OperationDenied.CrossLoadBalancerQUICListener',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'ResourceAlreadyAssociated.Listener',
- 'errorMessage' => 'The specified resource %s is already associated.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.SecurityPolicyAttachedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'Mismatch.VpcId',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.ServerGroupProtocolNotSupport',
- 'errorMessage' => 'The operation is not allowed because of ServerGroupProtocolNotSupport.',
- ],
- [
- 'errorCode' => 'OperationDenied.GRPCServerGroup',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'Mismatch.LoadBalancerEditionAndConnectionDrain',
- 'errorMessage' => 'The %s and %s are mismatched.',
- ],
- [
- 'errorCode' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable',
- 'errorMessage' => 'The %s and %s are mismatched.',
- ],
- [
- 'errorCode' => 'InvalidParameter',
- 'errorMessage' => 'Invalid parameter, please check the parameter input.',
- ],
+ ['errorCode' => 'ResourceAlreadyExist.Listener', 'errorMessage' => 'The specified resource %s is already exist.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerListenersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => 'The quota of %s is exceeded for resource %s, usage %s/%s.'],
+ ['errorCode' => 'OperationDenied.CrossLoadBalancerQUICListener', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'ResourceAlreadyAssociated.Listener', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => 'The specified resource %s is already associated.'],
+ ['errorCode' => 'ResourceQuotaExceeded.SecurityPolicyAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => 'The quota of %s is exceeded for resource %s. Usage: %s/%s.'],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'The %s is mismatched for %s and %s.'],
+ ['errorCode' => 'OperationDenied.ServerGroupProtocolNotSupport', 'errorMessage' => 'The operation is not allowed because of ServerGroupProtocolNotSupport.', 'description' => 'The operation is not allowed because the server group protocol is not supported.'],
+ ['errorCode' => 'OperationDenied.GRPCServerGroup', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'Mismatch.LoadBalancerEditionAndConnectionDrain', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The %s and %s are mismatched.'],
+ ['errorCode' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The %s and %s are mismatched.'],
+ ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Invalid parameter, please check the parameter input.', 'description' => 'Invalid parameter, please check the parameter input.'],
+ ['errorCode' => 'OperationDenied.CACertificateCorrupted', 'errorMessage' => 'The CA certificate is corrupted.', 'description' => 'CA certificate is corrupted'],
],
403 => [
- [
- 'errorCode' => 'Forbidden.SecurityPolicy',
- 'errorMessage' => 'Authentication has failed for SecurityPolicy.',
- ],
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
- [
- 'errorCode' => 'Forbidden.Listener',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ ['errorCode' => 'Forbidden.SecurityPolicy', 'errorMessage' => 'Authentication has failed for SecurityPolicy.', 'description' => ''],
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
+ ['errorCode' => 'Forbidden.Listener', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
],
[
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.SecurityPolicy',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Certificate',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.Certificate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"ListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876*******\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <ListenerId>lsr-bp1bpn0kn908w4nbw****</ListenerId>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</CreateListenerResponse>","errorExample":""}]',
'title' => 'CreateListener',
- 'description' => '## Usage notes'."\n"
+ 'summary' => 'Create a listener.',
+ 'description' => 'The **CreateListener** operation is an asynchronous operation. A successful request returns a request ID, but the listener is created in the background. Call [GetListenerAttribute](~~2254865~~) to query the listener\'s creation status:'."\n"
."\n"
- .'**CreateListener** is an asynchronous operation. After you call this operation, the system returns a request ID. However, the operation is still being performed in the background. You can call the [GetListenerAttribute](~~214353~~) operation to query the status of the HTTP, HTTPS, or QUIC listener.'."\n"
+ .'- The **Provisioning** state indicates that the listener is being created.'."\n"
."\n"
- .'* If the HTTP, HTTPS, or QUIC listener is in the **Provisioning** state, it indicates that the listener is being created.'."\n"
- .'* If the HTTP, HTTPS, or QUIC listener is in the **Running** state, it indicates that the listener has been created successfully.'."\n",
- ],
- 'GetListenerAttribute' => [
- 'summary' => 'Queries the details about a listener.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ .'- The **Running** state indicates that the listener has been created successfully.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'alb:ListenerProtocol', 'validationType' => 'always'],
+ ],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"ListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876*******\\"\\n}","type":"json"}]',
+ ],
+ 'CreateLoadBalancer' => [
+ 'summary' => 'Create an application load balancer in a specified region',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'get',
- 'abilityTreeCode' => '189',
- 'abilityTreeNodes' => [
- 'FEATUREslbM7ALO6',
- 'FEATUREslbK3ZR0L',
- 'FEATUREslbN5IE4S',
- ],
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '194',
+ 'abilityTreeNodes' => ['FEATUREslbM7ALO6'],
],
'parameters' => [
[
- 'name' => 'ListenerId',
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'A client token to ensure the idempotency of the request.'."\n"
+ ."\n"
+ .'You can generate a unique value from your client for each request. The `ClientToken` parameter supports only ASCII characters.'."\n"
+ ."\n"
+ .'> If you omit this parameter, the system uses the **RequestId** of the request as the **ClientToken**.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run without creating the Application Load Balancer instance. The system checks for required parameters, the request format, and service limits. If the request fails the check, an error is returned. If the request passes the check, the system returns the `DryRunOperation` error code.'."\n"
+ ."\n"
+ .'- **false** (default): sends a normal request. If the request passes the check, the system returns an HTTP 2xx status code and performs the operation.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'VpcId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the VPC for the Application Load Balancer instance.', 'type' => 'string', 'required' => true, 'example' => 'vpc-bp1b49rqrybk45nio****', 'title' => ''],
+ ],
+ [
+ 'name' => 'AddressType',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The address type of the Application Load Balancer. Valid values:'."\n"
+ ."\n"
+ .'- **Internet**: The load balancer is assigned a public IP address. Its domain name is resolved to the public IP address, allowing access from the public network.'."\n"
+ ."\n"
+ .'- **Intranet**: The load balancer is assigned a private IP address. Its domain name is resolved to the private IP address, allowing access only from the private network of the VPC where the load balancer is deployed.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'Internet'],
+ ],
+ [
+ 'name' => 'LoadBalancerName',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The name of the Application Load Balancer instance.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters long. It must start with a letter, a Chinese character, or a digit, and can contain digits, periods (.), underscores (\\_), hyphens (-), and spaces.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'alb1'],
+ ],
+ [
+ 'name' => 'DeletionProtectionEnabled',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to enable deletion protection. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables deletion protection.'."\n"
+ ."\n"
+ .'- **false** (default): Disables deletion protection.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ ],
+ [
+ 'name' => 'ModificationProtectionConfig',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The modification protection settings.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Reason' => ['description' => 'The reason for enabling modification protection.'."\n"
+ ."\n"
+ .'The reason must be 2 to 128 characters long. It must start with a letter or a Chinese character, and can contain digits, periods (.), underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'> This parameter is effective only when **Status** is set to **ConsoleProtection**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Managed Instance'],
+ 'Status' => ['description' => 'The modification protection status of the Application Load Balancer instance. Valid values:'."\n"
+ ."\n"
+ .'- **NonProtection**: Modification protection is disabled. If you specify a value for **Reason**, the value is cleared.'."\n"
+ ."\n"
+ .'- **ConsoleProtection**: Console-based modification protection is enabled. If you specify a value for **Reason**, the value takes effect.'."\n"
+ ."\n"
+ .'> If you set the value to **ConsoleProtection**, you cannot modify the instance in the Application Load Balancer console. However, you can still modify it by calling API operations.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'ConsoleProtection'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'ZoneMappings',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '监听标识',
- 'description' => 'The listener ID.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The mappings between availability zones and subnets. You can specify up to 10 availability zones. If the region has two or more availability zones, you must specify at least two.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The mappings between availability zones and subnets. You can specify up to 10 availability zones. If the region has two or more availability zones, you must specify at least two.',
+ 'type' => 'object',
+ 'properties' => [
+ 'VSwitchId' => ['description' => 'The ID of the subnet in the specified availability zone. Each availability zone can be mapped to only one subnet.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'vsw-sersdf****'],
+ 'ZoneId' => ['description' => 'The ID of the availability zone.'."\n"
+ .'You can call the [DescribeZones](~~36064~~) operation to query for available zones.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'cn-hangzhou-a'],
+ 'AllocationId' => ['description' => 'The ID of the Elastic IP address (EIP) to associate with the public-facing instance.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'eip-bp1aedxso6u80u0qf****'],
+ 'EipType' => ['description' => 'The type of the Elastic IP address. Valid values:'."\n"
+ ."\n"
+ .'- **Common** (default): an Elastic IP address.'."\n"
+ ."\n"
+ .'- **Anycast**: an Anycast EIP.'."\n"
+ ."\n"
+ .'> For regions that support binding Anycast EIPs to an Application Load Balancer instance, see [Limitations](~~460727~~).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Common'],
+ 'IntranetAddress' => ['description' => 'The private IPv4 address.', 'type' => 'string', 'required' => false, 'example' => '192.168.10.1', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
+ 'maxItems' => 10,
+ 'minItems' => 1,
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'AddressAllocatedMode',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The address allocation mode. Valid values:'."\n"
+ ."\n"
+ .'- **Fixed** (default): A static IP address is assigned to each availability zone.'."\n"
+ ."\n"
+ .'- **Dynamic**: An IP address is dynamically assigned to each availability zone.'."\n"
+ ."\n"
+ .'> Starting from <props="china">00:00:00 on February 25, 2025 (Beijing time)</props><props="intl">00:00:00 on February 25, 2025 (UTC+8)</props>, all instances created by calling this API will be [upgraded ALB instances](~~2864070~~) regardless of the mode you specify. IP modes are no longer distinguished, and the allocated IP addresses scale automatically. Existing ALB instances created before the upgrade are not affected.', 'type' => 'string', 'default' => 'Fixed', 'title' => '', 'required' => false, 'example' => 'Fixed'],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'rg-atstuj3rtop****'],
+ ],
+ [
+ 'name' => 'LoadBalancerEdition',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The edition of the Application Load Balancer. Different editions have different features and billing policies. Valid values:'."\n"
+ ."\n"
+ .'- **Basic**: Basic edition.'."\n"
+ ."\n"
+ .'- **Standard**: Standard edition.'."\n"
+ ."\n"
+ .'- **StandardWithWaf**: WAF-enabled edition.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'Standard'],
+ ],
+ [
+ 'name' => 'LoadBalancerBillingConfig',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The billing configuration of the Application Load Balancer instance.',
+ 'type' => 'object',
+ 'properties' => [
+ 'PayType' => ['description' => 'The billing method of the instance.'."\n"
+ ."\n"
+ .'Set the value to **PostPay** for pay-as-you-go.', 'type' => 'string', 'required' => true, 'default' => 'PostPay', 'title' => '', 'example' => 'PostPay'],
+ 'BandwidthPackageId' => ['description' => 'The ID of the shared bandwidth package that is associated with the public-facing instance.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'cbwp-bp1vevu8h3ieh****'],
+ ],
+ 'required' => true,
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'AddressIpVersion',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The protocol version. Valid values:'."\n"
+ ."\n"
+ .'- **IPv4**: IPv4.'."\n"
+ ."\n"
+ .'- **DualStack**: The instance supports both IPv4 and IPv6.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'IPv4'],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The tags to add to the instance.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag structure.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key. The key can be up to 128 characters long, cannot start with aliyun or acs:, and cannot contain http\\:// or https\\://.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The value can be up to 128 characters long, cannot start with aliyun or acs:, and cannot contain http\\:// or https\\://.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'SecurityGroupIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'SecurityGroupId' => ['description' => 'The ID of the security group.', 'type' => 'string', 'example' => 'sg-gw82chzr7ru23iwbn9mu', 'title' => '', 'required' => false],
+ ],
+ 'title' => '',
+ 'description' => 'The IDs of the security groups to associate with the instance.',
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'title' => '',
+ 'description' => 'The IDs of the security groups to associate with the instance.',
+ 'required' => false,
+ 'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The details about the listener.'."\n",
+ 'title' => '',
+ 'description' => 'The response from creating an Application Load Balancer instance.',
'type' => 'object',
'properties' => [
- 'AclConfig' => [
- 'title' => 'ACL相关配置信息',
- 'description' => 'The configurations of the access control lists (ACLs).'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AclRelations' => [
- 'title' => '监听绑定的访问策略组',
- 'description' => 'The IDs of the ACLs that are associated with the listener.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The structure of the ACL that is associated with the listener.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AclId' => [
- 'title' => 'ACL标识',
- 'description' => 'The ID of the ACL that is associated with the listener.'."\n",
- 'type' => 'string',
- 'example' => 'acl-doc****',
- ],
- 'Status' => [
- 'title' => 'ACL与监听关联的状态',
- 'description' => 'Indicates whether the ACL is associated with the listener. Valid values:'."\n"
- ."\n"
- .'* **Associating**'."\n"
- .'* **Associated**'."\n"
- .'* **Dissociating**'."\n",
- 'type' => 'string',
- 'example' => 'Associating',
- ],
- ],
- ],
- ],
- 'AclType' => [
- 'title' => '访问控制类型',
- '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 are applicable to scenarios in which 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 for a listener, only requests from IP addresses that are on the whitelist are forwarded by the listener.'."\n"
- ."\n"
- .' If you enable a whitelist but do not add an IP address to the whitelist, the listener forwards all requests.'."\n"
- ."\n"
- .'* **Black**: a blacklist. Requests from the IP addresses or CIDR blocks in the network ACL are denied. Blacklists are suitable for 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 addresses are added to the blacklist, the listener forwards all requests.'."\n",
- 'type' => 'string',
- 'example' => 'White',
- ],
- ],
- ],
- 'Certificates' => [
- 'title' => '监听默认服务器证书列表,N当前取值范围为1',
- 'description' => 'A list of certificates.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The configurations of the certificate.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'CertificateId' => [
- 'title' => '正式标识',
- 'description' => 'The ID of the certificate. Only server certificates are supported.'."\n",
- 'type' => 'string',
- 'example' => '12315790212_166f8204689_1714763408_70998****',
- ],
- ],
- ],
- ],
- 'CaCertificates' => [
- 'title' => '监听默认CA证书列表,N当前取值范围为1',
- 'description' => 'A list of default CA certificates.'."\n",
- 'type' => 'array',
- 'items' => [
+ 'LoadBalancerId' => ['description' => 'The Application Load Balancer instance ID.', 'type' => 'string', 'title' => '', 'example' => 'alb-o9ulmq5hqn68jk****'],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'],
+ ],
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource %s is not enough.', 'description' => 'The specified resource %s is not enough.'],
+ ['errorCode' => 'QuotaExceeded.LoadBalancersNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['errorCode' => 'Mismatch.ZoneIdAndVSwitchId', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The %s and %s are mismatched.'],
+ ['errorCode' => 'DuplicatedParam.ZoneId', 'errorMessage' => 'The param of ZoneId is duplicated.', 'description' => ''],
+ ['errorCode' => 'OperationDenyed.ServiceLinkedRoleNotExist', 'errorMessage' => 'The service linked role AliyunServiceRoleForAlb does not exist.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"LoadBalancerId\\": \\"alb-o9ulmq5hqn68jk****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]',
+ 'title' => 'CreateLoadBalancer',
+ 'description' => 'The **CreateLoadBalancer** operation is asynchronous. A successful call returns an instance ID, but the application load balancer instance is created in the background. Call [GetLoadBalancerAttribute](~~214362~~) to check the creation status of the application load balancer instance:'."\n"
+ ."\n"
+ .'- If the instance is in the **provisioning** state, it is being created.'."\n"
+ ."\n"
+ .'- If the instance is in the **active** state, it has been created.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateLoadBalancer',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'alb:AddressType', 'validationType' => 'always'],
+ ],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/*'],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'CreateRule' => [
+ 'summary' => 'Creates a forwarding rule for a listener.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '417',
+ 'abilityTreeNodes' => ['FEATUREslbM7ALO6'],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the listener.', 'type' => 'string', 'required' => true, 'example' => 'lsn-l16uo9y******', 'title' => ''],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The client token used to ensure request idempotence.'."\n"
+ ."\n"
+ .'The client must generate a unique token for each request. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. Each API request has a unique **RequestId**.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Performs a dry run. The system checks for potential issues, such as required parameters, request format, and service limits, without creating the forwarding rule. If the check fails, the system returns an error. If the check passes, the system returns the `DryRunOperation` error code.'."\n"
+ ."\n"
+ .'- **false** (default): Sends a normal request. If the check passes, the system performs the operation and returns an `HTTP 2xx` status code.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'Priority',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The priority of the rule. Valid values: **1** to **10000**. A smaller value indicates a higher priority.'."\n"
+ ."\n"
+ .'> The priority of each forwarding rule within the same listener must be unique.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '10'],
+ ],
+ [
+ 'name' => 'Direction',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The direction in which the forwarding rule is applied. Valid values:'."\n"
+ ."\n"
+ .'- **Request** (default): The rule matches and processes requests sent from the client to the ALB instance.'."\n"
+ ."\n"
+ .'- **Response**: The rule matches and processes responses returned from server groups to the ALB instance.'."\n"
+ ."\n"
+ .'> Basic ALB instances do not support the **Response** type.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Request'],
+ ],
+ [
+ 'name' => 'RuleActions',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'A list of actions for the forwarding rule.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The actions of the forwarding rule.',
+ 'type' => 'object',
+ 'properties' => [
+ 'FixedResponseConfig' => [
+ 'title' => '',
+ 'description' => 'The fixed response configuration.',
'type' => 'object',
'properties' => [
- 'CertificateId' => [
- 'title' => '正式标识',
- 'description' => 'The ID of the default CA certificate.'."\n",
- 'type' => 'string',
- 'example' => '139a00604bd-cn-east-hangzho****',
- ],
- 'Status' => [
- 'title' => '证书状态',
- 'description' => 'The status of the certificate.'."\n",
- 'type' => 'string',
- 'example' => 'Associated',
- ],
- 'IsDefault' => [
- 'title' => '是否为默认证书',
- 'description' => 'Indicates whether the certificate is a default certificate: Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
+ 'Content' => ['description' => 'The content of the fixed response. The content can be up to 1 KB in size and can contain only ASCII characters.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'dssacav'],
+ 'ContentType' => ['description' => 'The content type of the fixed response.'."\n"
+ ."\n"
+ .'Valid values: **text/plain**, **text/css**, **text/html**, **application/javascript**, or **application/json**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'text/plain'],
+ 'HttpCode' => ['description' => 'The HTTP response status code. Valid values are strings that represent **2xx**, **4xx**, and **5xx** status codes, where **x** is any digit.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '200'],
],
+ 'required' => false,
+ 'example' => '',
],
- ],
- 'CaEnabled' => [
- 'title' => '是否开启双向认证',
- 'description' => 'Indicates whether mutual authentication is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
- ],
- 'DefaultActions' => [
- 'title' => '默认动作',
- 'description' => 'The actions of the default forwarding rule.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The configurations of the default forwarding rule.'."\n",
+ 'ForwardGroupConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration for forwarding requests to one or more server groups.',
'type' => 'object',
'properties' => [
- 'ForwardGroupConfig' => [
- 'title' => '转发到服务器组',
- 'description' => 'The configuration of the ForwardGroup action. This parameter is returned and takes effect when Type is set to **ForwardGroup**.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupTuples' => [
- 'title' => '服务器组列表',
- 'description' => 'The server group to which requests are forwarded.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The server groups to which requests are forwarded.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupId' => [
- 'title' => '服务器组ID',
- 'description' => 'The ID of the server group to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'example' => 'rsp-cige6j****',
- ],
- ],
- ],
+ 'ServerGroupTuples' => [
+ 'title' => '',
+ 'description' => 'The server groups to which requests are forwarded. You can specify up to five server groups.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The configuration for a server group.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupId' => ['description' => 'The ID of the server group.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'sgp-k86c1ov501id6p****'],
+ 'Weight' => ['description' => 'The weight of the server group. A server group with a higher weight receives more requests. Valid values: **0** to **100**.'."\n"
+ ."\n"
+ .'- If you specify only one server group, the default weight is **100**.'."\n"
+ ."\n"
+ .'- If you specify more than one server group, you must specify a weight for each group.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '0', 'title' => '', 'required' => false, 'example' => '100'],
],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
+ 'required' => false,
+ 'example' => '',
],
- 'Type' => [
- 'title' => '类型',
- 'description' => 'The type of the action.'."\n"
- ."\n"
- .'If **ForwardGroup** is returned, requests are forwarded to multiple vServer groups.'."\n",
- 'type' => 'string',
- 'example' => 'ForwardGroup',
- ],
- ],
- ],
- ],
- 'GzipEnabled' => [
- 'title' => '是否开启Gzip压缩',
- 'description' => 'Indicates whether GZIP compression is enabled to compress specific types of files. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'Http2Enabled' => [
- 'title' => '是否开启HTTP/2特性',
- 'description' => 'Indicates whether HTTP/2 is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter is available only when you create an HTTPS listener.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'IdleTimeout' => [
- 'title' => '连接空闲超时时间',
- 'description' => 'The timeout period of an idle connection. Unit: seconds.'."\n"
- ."\n"
- .'If no requests are received within the specified timeout period, Application Load Balancer (ALB) closes the current connection. When a request is received, ALB establishes a new connection.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
- 'ListenerDescription' => [
- 'title' => '监听描述',
- 'description' => 'The name of the listener.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- 'ListenerId' => [
- 'title' => '监听标识',
- 'description' => 'The ID of the listener.'."\n",
- 'type' => 'string',
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
- 'ListenerPort' => [
- 'title' => '监听端口',
- 'description' => 'The frontend port that is used by the ALB instance.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '80',
- ],
- 'ListenerProtocol' => [
- 'title' => '监听协议',
- 'description' => 'The listener protocol. Valid values: **HTTP**, **HTTPS**, and **QUIC**.'."\n",
- 'type' => 'string',
- 'example' => 'HTTP',
- ],
- 'ListenerStatus' => [
- 'title' => '监听状态',
- 'description' => 'The status of the listener. Valid values:'."\n"
- ."\n"
- .'* **Provisioning**'."\n"
- .'* **Running**'."\n"
- .'* **Configuring**'."\n"
- .'* **Stopped**'."\n",
- 'type' => 'string',
- 'example' => 'Running',
- ],
- 'LoadBalancerId' => [
- 'title' => '负载均衡标识',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'example' => 'lb-bp1o94dp5i6ea****',
- ],
- 'LogConfig' => [
- 'title' => '监听访问日志相关配置',
- 'description' => 'The logging configuration.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AccessLogRecordCustomizedHeadersEnabled' => [
- 'title' => '访问日志是否开启携带自定义Header',
- 'description' => 'Indicates whether custom headers are recorded in the access log. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'AccessLogTracingConfig' => [
- 'title' => '访问日志Xtrace相关的配置',
- 'description' => 'The configuration of Xtrace. Xtrace is used to record requests sent to ALB.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'TracingEnabled' => [
- 'title' => 'Xtrace功能状态',
- 'description' => 'Indicates whether Xtrace is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> You can set this parameter to **true** only if the AccessLogEnabled parameter is set to true.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'TracingSample' => [
- 'title' => 'Xtrace功能状态',
- 'description' => 'The sampling rate of Xtrace. Valid values: 1 to 10000.'."\n"
+ 'ServerGroupStickySession' => [
+ 'title' => '',
+ 'description' => 'The session persistence configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Enabled' => ['description' => 'Specifies whether to enable session persistence. Valid values:'."\n"
."\n"
- .'> If **TracingEnabled** is set to **true**, this parameter is valid.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '100',
- ],
- 'TracingType' => [
- 'title' => 'xtrace的类型',
- 'description' => 'The Xtrace type. Supported Xtrace type: **Zipkin**.'."\n"
+ .'- **true**: Enables session persistence.'."\n"
."\n"
- .'> If **TracingEnabled** is set to **true**, this parameter is valid.'."\n",
- 'type' => 'string',
- 'example' => 'Zipkin',
+ .'- **false** (default): Disables session persistence.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'Timeout' => ['description' => 'The timeout period, in seconds. Valid values: **1** to **86400**. Default: **1000**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '100'],
],
+ 'required' => false,
+ 'example' => '',
],
],
+ 'required' => false,
+ 'example' => '',
],
- ],
- 'QuicConfig' => [
- 'title' => 'HTTPS启用QUIC时相关属性',
- 'description' => 'The configuration information when the listener is associated with a QUIC listener.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'QuicListenerId' => [
- 'title' => '需要关联的QUIC监听ID,HTTPS监听时有效,QuicUpgradeEnabled为true时必选',
- 'description' => 'The ID of the QUIC listener. This parameter is returned when **QuicUpgradeEnabled** is set to **true**. Only HTTPS listeners support this parameter.'."\n"
+ 'InsertHeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The header insertion configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The name of the header to be inserted. The name must be 1 to 40 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-). Header names must be unique within this action.'."\n"
."\n"
- .'> You must associate the HTTPS listener and the QUIC listener with the same ALB instance. In addition, make sure that the QUIC listener has never been associated with another listener.'."\n",
- 'type' => 'string',
- 'example' => 'lsn-333',
- ],
- 'QuicUpgradeEnabled' => [
- 'title' => '是否开启quic升级,HTTPS监听时有效',
- 'description' => 'Indicates whether QUIC upgrade is enabled. Valid values:'."\n"
+ .'> The following header names are not allowed (case-insensitive): `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, `authority`, and `x-forwarded-host`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'key'],
+ 'Value' => ['description' => 'The value of the header to be inserted.'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .'- If **ValueType** is set to **SystemDefined**, you can set the value to one of the following:'."\n"
+ ."\n"
+ .' - **ClientSrcPort**: The source port of the client.'."\n"
+ ."\n"
+ .' - **ClientSrcIp**: The source IP address of the client.'."\n"
."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
+ .' - **Protocol**: The request protocol (HTTP or HTTPS).'."\n"
+ ."\n"
+ .' - **SLBId**: The ID of the ALB instance.'."\n"
+ ."\n"
+ .' - **SLBPort**: The listener port of the ALB instance.'."\n"
+ ."\n"
+ .'- If **ValueType** is set to **UserDefined**, you can specify a custom header value. The value must be 1 to 128 characters in length and can contain printable characters with an ASCII value in the range of `ch >= 32 && ch < 127`. You can use asterisks (\\*) and question marks (?) as wildcards. The value cannot contain double quotation marks (`"`), start or end with a space, or end with a backslash (`\\`).'."\n"
+ ."\n"
+ .'- If **ValueType** is set to **ReferenceHeader**, you can reference a request header. The value must be 1 to 128 characters in length and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'UserDefined'],
+ 'ValueType' => ['description' => 'The type of the header value. Valid values:'."\n"
+ ."\n"
+ .'- **UserDefined**: A user-defined header value.'."\n"
+ ."\n"
+ .'- **ReferenceHeader**: A value that is referenced from a request header.'."\n"
+ ."\n"
+ .'- **SystemDefined**: A system-defined header value.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'UserDefined'],
],
+ 'required' => false,
+ 'example' => '',
],
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
- 'RequestTimeout' => [
- 'title' => '请求超时时间',
- 'description' => 'The timeout period of a request. Unit: seconds.'."\n"
- ."\n"
- .'If no responses are received from the backend server within the specified timeout period, ALB returns an `HTTP 504` error code to the client.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '34',
- ],
- 'SecurityPolicyId' => [
- 'title' => '安全策略',
- 'description' => 'The security policy.'."\n"
- ."\n"
- .'> This parameter is available only when you create an HTTPS listener.'."\n",
- 'type' => 'string',
- 'example' => 'tls_cipher_policy_1_1',
- ],
- 'XForwardedForConfig' => [
- 'title' => 'XForward字段相关的配置',
- 'description' => 'The configuration of the XForward headers.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'XForwardedForClientCertClientVerifyAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertClientVerifyEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertClientVerifyEnabled** is set to **true**.'."\n"
+ 'Order' => ['description' => 'The execution order of the action. Valid values: **1** to **50000**. Actions are executed in ascending order of this value. Each action must have a unique order value.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '1'],
+ 'RedirectConfig' => [
+ 'title' => '',
+ 'description' => 'The redirect configuration.'."\n"
+ ."\n"
+ .'> You must specify a non-default value for at least one of the following parameters: **Host**, **Path**, **Port**, **Protocol**, or **Query**.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Host' => ['description' => 'The host to which requests are redirected. Valid values:'."\n"
."\n"
- .'The name is 1 to 40 characters in length, and can contain lowercase letters, hyphens (-), underscores (\\_), and digits.'."\n"
+ .'- **${host}** (default): This value cannot be used with other characters.'."\n"
."\n"
- .'> This parameter is available only when you create an HTTPS listener.'."\n",
- 'type' => 'string',
- 'example' => 'test_client-verify-alias_123456',
- ],
- 'XForwardedForClientCertClientVerifyEnabled' => [
- 'title' => '是否通过X-Forwarded-Clientcert-clientverify 头字段获取对访问负载均衡实例客户端证书的校验结果。HTTPS监听有效。',
- 'description' => 'Indicates whether the `X-Forwarded-Clientcert-clientverify` header is used to retrieve the verification result of the client certificate. Valid values:'."\n"
+ .'- Other values must meet the following requirements:'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .' - The host must be 3 to 128 characters in length and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), equal signs (=), tildes (\\~), underscores (\\_), plus signs (+), backslashes (\\), carets (^), exclamation points (!), dollar signs ($), ampersands (&), vertical bars (|), parentheses (()), square brackets (\\[]), and question marks (?).'."\n"
."\n"
- .'> This parameter is available only when you create an HTTPS listener.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForClientCertFingerprintAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertFingerprintEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertFingerprintEnabled** is set to **true**.'."\n"
+ .' - The host must contain at least one period (.) and cannot start or end with a period (.).'."\n"
."\n"
- .'The name is 1 to 40 characters in length, and can contain lowercase letters, hyphens (-), underscores (\\_), and digits.'."\n"
+ .' - The rightmost domain label can contain only letters and wildcards, and cannot contain digits or hyphens (-). The leftmost `domain label` can be an asterisk (\\*).'."\n"
."\n"
- .'> This parameter is available only when you create an HTTPS listener.'."\n",
- 'type' => 'string',
- 'example' => 'test_finger-print-alias_123456',
- ],
- 'XForwardedForClientCertFingerprintEnabled' => [
- 'title' => '是否通过X-Forwarded-Clientcert-fingerprint 头字段获取访问负载均衡实例客户端证书的指纹取值,HTTPS监听有效。',
- 'description' => 'Indicates whether the `X-Forwarded-Clientcert-fingerprint` header is used to retrieve the fingerprint of the client certificate. Valid values:'."\n"
+ .' - A domain label cannot start or end with a hyphen (-).'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .' - You can use asterisks (\\*) and question marks (?) as wildcards anywhere in a domain label.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '${host}'],
+ 'HttpCode' => ['description' => 'The redirect type. Valid values: **301**, **302**, **303**, **307**, or **308**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '301'],
+ 'Path' => ['description' => 'The path to which requests are redirected. Valid values:'."\n"
."\n"
- .'> This parameter is available only when you create an HTTPS listener.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForClientCertIssuerDNAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertIssuerDNEnabled的值为‘On’的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertIssuerDNEnabled** is set to **true**.'."\n"
+ .'- **${path}** (default): You can reference **${host}**, **${protocol}**, and **${port}**. Each variable can be used only once. These variables can be used together or combined with strings that are in the valid value range.'."\n"
."\n"
- .'The name is 1 to 40 characters in length, and can contain lowercase letters, hyphens (-), underscores (\\_), and digits.'."\n"
+ .'- Other values must meet the following requirements:'."\n"
."\n"
- .'> This parameter is available only when you create an HTTPS listener.'."\n",
- 'type' => 'string',
- 'example' => 'test_issue-dn-alias_123456',
- ],
- 'XForwardedForClientCertIssuerDNEnabled' => [
- 'title' => '是否通过 X-Forwarded-Clientcert-issuerdn 头字段获取访问负载均衡实例客户端证书的发行者信息。HTTPS监听有效。',
- 'description' => 'Indicates whether the `X-Forwarded-Clientcert-issuerdn` header is used to retrieve information about the authority that issues the client certificate. Valid values:'."\n"
+ .' - The path must be 1 to 128 characters in length, case-sensitive, and can contain asterisks (\\*) and question marks (?) as wildcards.'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .' - The path must start with a forward slash (/). It can contain letters, digits, and the following special characters: `$-_.+/&~@:\'*?`. It cannot contain `“%#;!()[]^,”\\"`. It can also contain asterisks (\\*) and question marks (?) as wildcards.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '/test'],
+ 'Port' => ['description' => 'The port to which requests are redirected.'."\n"
."\n"
- .'> This parameter is available only when you create an HTTPS listener.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForClientCertSubjectDNAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertSubjectDNEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertSubjectDNEnabled** is set to **true**.'."\n"
+ .'- **${port}** (default): This value cannot be used with other characters.'."\n"
."\n"
- .'The name is 1 to 40 characters in length, and can contain lowercase letters, hyphens (-), underscores (\\_), and digits.'."\n"
+ .'- Other values: **1** to **63335**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '10'],
+ 'Protocol' => ['description' => 'The protocol to which requests are redirected. Valid values:'."\n"
."\n"
- .'> This parameter is available only when you create an HTTPS listener.'."\n",
- 'type' => 'string',
- 'example' => 'test_subject-dn-alias_123456',
- ],
- 'XForwardedForClientCertSubjectDNEnabled' => [
- 'title' => '是否通过X-Forwarded-Clientcert-subjectdn 头字段获取访问负载均衡实例客户端证书的所有者信息。HTTPS监听有效。',
- 'description' => 'Indicates whether the `X-Forwarded-Clientcert-subjectdn` header is used to retrieve information about the owner of the client certificate. Valid values:'."\n"
+ .'- **${protocol}** (default): This value must be used as-is and cannot be modified or used with other characters.'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .'- **HTTP**'."\n"
."\n"
- .'> This parameter is available only when you create an HTTPS listener.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForClientSrcPortEnabled' => [
- 'title' => '是否通过X-Forwarded-Client-Port 头字段获取访问负载均衡实例客户端的端口。HTTPS监听有效。',
- 'description' => 'Indicates whether the `X-Forwarded-Client-Port` header is used to retrieve the client port. Valid values:'."\n"
+ .'- **HTTPS**'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .'> * HTTPS listeners can redirect requests only over HTTPS.'."\n"
+ .'>'."\n"
+ .'> * HTTP listeners can redirect requests over HTTP or HTTPS.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'HTTP'],
+ 'Query' => ['description' => 'The query string to which requests are redirected.'."\n"
."\n"
- .'> This parameter is available only when you create an HTTP or HTTPS listener.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForEnabled' => [
- 'title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP',
- 'description' => 'Indicates whether the `X-Forwarded-For` header is used to retrieve the client IP address. Valid values:'."\n"
+ .'- **${query}** (default): You can reference **${host}**, **${protocol}**, and **${port}**. Each variable can be used only once. These variables can be used together or combined with strings that are in the valid value range.'."\n"
."\n"
- .'* **true** (default)'."\n"
- .'* **false**'."\n"
+ .'- Other values must meet the following requirements:'."\n"
+ ."\n"
+ .' - The value must be 1 to 128 characters in length.'."\n"
."\n"
- .'> * If this parameter is set to **true**, the default value of the **XForwardedForProcessingMode** parameter is **append**. You can change it to **remove**.'."\n"
- .'> * If this parameter is set to **false**, the `X-Forwarded-For` header in the request is not modified in any way before the request is sent to backend servers.'."\n"
- .'> * This parameter is only available for HTTP and HTTPS listeners.',
- 'type' => 'boolean',
- 'example' => 'true',
+ .' - It can contain printable characters but cannot contain spaces or the following special characters: `#[]{}\\|<>"`. Letters must be lowercase.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '${query}'],
],
- 'XForwardedForProcessingMode' => [
- 'description' => 'Specifies how the `X-Forwarded-For` header is processed. This parameter takes effect only when **XForwardedForEnabled** is set to **true**. Valid values:'."\n"
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'RewriteConfig' => [
+ 'title' => '',
+ 'description' => 'The rewrite configuration.'."\n"
+ ."\n"
+ .'> If a forwarding rule contains a **Rewrite** action, it must also contain a **ForwardGroup** action.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Host' => ['description' => 'The destination host for the internal redirect. Valid values:'."\n"
."\n"
- .'* **append** (default)'."\n"
- .'* **remove**'."\n"
+ .'- **${host}** (default): This value cannot be used with other characters.'."\n"
."\n"
- .'> * If this parameter is set to **append**, ALB appends the IP address of the last hop to the existing `X-Forwarded-For` header in the request before the request is sent to backend servers.'."\n"
- .'> * If this parameter is set to **remove**, ALB removes the `X-Forwarded-For` header in the request before the request is sent to backend servers, no matter whether the request carries the `X-Forwarded-For` header.'."\n"
- .'> * This parameter is only available for HTTP and HTTPS listeners.',
- 'type' => 'string',
- 'example' => 'append',
- ],
- 'XForwardedForProtoEnabled' => [
- 'title' => '是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。',
- 'description' => 'Indicates whether the `X-Forwarded-Proto` header is used to retrieve the listening protocol. Valid values:'."\n"
+ .'- Other values must meet the following requirements:'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .' - The host must be 3 to 128 characters in length and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), equal signs (=), tildes (\\~), underscores (\\_), plus signs (+), backslashes (\\), carets (^), exclamation points (!), dollar signs ($), ampersands (&), vertical bars (|), parentheses (()), square brackets (\\[]), and question marks (?).'."\n"
."\n"
- .'> This parameter is available only when you create an HTTP, HTTPS, or QUIC listener.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForSLBIdEnabled' => [
- 'title' => '是否通过SLB-ID头字段获取负载均衡实例ID。',
- 'description' => 'Indicates whether the `SLB-ID` header is used to retrieve the ID of the CLB instance. Valid values:'."\n"
+ .' - The host must contain at least one period (.) and cannot start or end with a period (.).'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .' - The rightmost domain label can contain only letters and wildcards, and cannot contain digits or hyphens (-). The leftmost `domain label` can be an asterisk (\\*).'."\n"
."\n"
- .'> This parameter is available only when you create an HTTP, HTTPS, or QUIC listener.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForSLBPortEnabled' => [
- 'title' => '是否通过X-Forwarded-Port 头字段获取负载均衡实例的监听端口。HTTPS监听有效。',
- 'description' => 'Indicates whether the `X-Forwarded-Port` header is used to retrieve the listening port of the ALB instance. Valid values:'."\n"
+ .' - A domain label cannot start or end with a hyphen (-). You can use asterisks (\\*) and question marks (?) as wildcards anywhere in a domain label.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'www.example.com'],
+ 'Path' => ['description' => 'The path for the internal redirect. Valid values:'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .'- **${path}** (default): You can reference **${host}**, **${protocol}**, and **${port}**. Each variable can be used only once. These variables can be used together or combined with strings that are in the valid value range.'."\n"
."\n"
- .'> This parameter is available only when you create an HTTP, HTTPS, or QUIC listener.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForClientSourceIpsEnabled' => [
- 'description' => 'Indicates whether the `X-Forwarded-Client-Ip` header is used to retrieve the source port of the ALB instance. Valid values:'."\n"
+ .'- Other values must meet the following requirements:'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .' - The path must be 1 to 128 characters in length, case-sensitive, and can contain asterisks (\\*) and question marks (?) as wildcards.'."\n"
."\n"
- .'> This parameter is available only when you create an HTTP, HTTPS, or QUIC listener.'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
+ .' - The path must start with a forward slash (/). It can contain letters, digits, and the following special characters: `$-_.+/&~@:\'*?`. It cannot contain `“%#;!()[]^,”\\"`. It can also contain asterisks (\\*) and question marks (?) as wildcards.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '/tsdf'],
+ 'Query' => ['description' => 'The query string for the internal redirect.'."\n"
+ ."\n"
+ .'- **${query}** (default): You can reference **${host}**, **${protocol}**, and **${port}**. Each variable can be used only once. These variables can be used together or combined with strings that are in the valid value range.'."\n"
+ ."\n"
+ .'- Other values must meet the following requirements:'."\n"
+ ."\n"
+ .' - The value must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .' - It can contain printable characters but cannot contain spaces or the following special characters: `#[]{}\\|<>"`. Letters must be lowercase.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '${query}'],
],
- 'XForwardedForClientSourceIpsTrusted' => [
- 'description' => 'The trusted proxy IP address.'."\n"
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'Type' => ['description' => 'The type of the action. Valid values:'."\n"
+ ."\n"
+ .'- **ForwardGroup**: Forwards requests to multiple server groups.'."\n"
+ ."\n"
+ .'- **Redirect**: Redirects a request.'."\n"
+ ."\n"
+ .'- **FixedResponse**: Returns a fixed response.'."\n"
+ ."\n"
+ .'- **Rewrite**: Rewrites a request.'."\n"
+ ."\n"
+ .'- **InsertHeader**: Inserts a header.'."\n"
+ ."\n"
+ .'- **RemoveHeader**: Removes a header.'."\n"
+ ."\n"
+ .'- **TrafficLimit**: Throttles traffic.'."\n"
+ ."\n"
+ .'- **TrafficMirror**: Mirrors traffic.'."\n"
+ ."\n"
+ .'- **Cors**: Enables cross-origin resource sharing (CORS).'."\n"
+ ."\n"
+ .'> A forwarding rule must contain one of the following actions: **ForwardGroup**, **Redirect**, or **FixedResponse**. This terminating action must be the last one executed in the rule.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'ForwardGroup'],
+ 'TrafficLimitConfig' => [
+ 'title' => '',
+ 'description' => 'The traffic throttling configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'QPS' => ['description' => 'The number of queries per second (QPS). Valid values: **1** to **1000000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'title' => ''],
+ 'PerIpQps' => ['description' => 'The number of QPS for each source IP address. Valid values: **1** to **1000000**.'."\n"
."\n"
- .'ALB traverses `X-Forwarded-For` backward and selects the first IP address that is not on the trusted IP address list as the real IP address of the client. The IP address is used in source IP address throttling.'."\n",
- 'type' => 'string',
- 'example' => '10.1.1.0/24',
+ .'> If you also configure **QPS**, the value of **PerIpQps** must be smaller than the value of **QPS**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80', 'title' => ''],
],
- 'XForwardedForHostEnabled' => [
- 'description' => 'Specifies whether to use the `X-Forwarded-Host` header to retrieve the client domain name. Valid values:'."\n"
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'TrafficMirrorConfig' => [
+ 'title' => '',
+ 'description' => 'The traffic mirroring configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'TargetType' => ['description' => 'The type of the destination to which traffic is mirrored. Valid values:'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n"
+ .'- **ForwardGroupMirror**: Mirrors traffic to a server group.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'ForwardGroupMirror'],
+ 'MirrorGroupConfig' => [
+ 'title' => '',
+ 'description' => 'The server groups to which traffic is mirrored.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupTuples' => [
+ 'description' => 'The server groups to which traffic is mirrored.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The server groups to which traffic is mirrored.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupId' => ['description' => 'The ID of the server group.', 'type' => 'string', 'required' => false, 'example' => 'sgp-00mkgijak0w4qgz9****', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'RemoveHeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The header removal configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The name of the header to be removed. The name must be 1 to 40 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-). Header names cannot be duplicated in `RemoveHeaderConfig`.'."\n"
."\n"
- .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.',
- 'type' => 'boolean',
- 'example' => 'false',
+ .'- For requests (`Direction` is `Request`): The following header names are not allowed (case-insensitive): `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, `authority`, and `x-forwarded-host`.'."\n"
+ ."\n"
+ .'- For responses (`Direction` is `Response`): The following header names are not allowed (case-insensitive): `connection`, `upgrade`, `content-length`, and `transfer-encoding`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
],
+ 'required' => false,
+ 'example' => '',
],
- ],
- 'Tags' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags.'."\n",
+ 'CorsConfig' => [
+ 'title' => '',
+ 'description' => 'The cross-origin resource sharing (CORS) configuration.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The tag key. The tag key can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.',
- 'type' => 'string',
- 'example' => 'env',
+ 'AllowOrigin' => [
+ 'title' => '',
+ 'description' => 'The list of allowed origins. You can specify a single value of `*`, or one or more specific values.'."\n"
+ ."\n"
+ .'- A specific value must start with `http://` or `https://`, followed by a valid domain or a wildcard domain. (Example: `http://*.test.abc.example.com`)'."\n"
+ ."\n"
+ .'- A value can either omit the port or specify a port in the range of **1** to **65535**.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The allowed origin.', 'type' => 'string', 'required' => false, 'example' => 'http://example.com', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
],
- 'Value' => [
- 'description' => 'The tag value. The tag value can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.',
- 'type' => 'string',
- 'example' => 'product',
+ 'AllowMethods' => [
+ 'title' => '',
+ 'description' => 'The allowed HTTP methods for CORS requests.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The allowed HTTP method for CORS requests. Valid values:'."\n"
+ ."\n"
+ .'- **GET**'."\n"
+ ."\n"
+ .'- **POST**'."\n"
+ ."\n"
+ .'- **PUT**'."\n"
+ ."\n"
+ .'- **DELETE**'."\n"
+ ."\n"
+ .'- **HEAD**'."\n"
+ ."\n"
+ .'- **OPTIONS**'."\n"
+ ."\n"
+ .'- **PATCH**', 'type' => 'string', 'required' => false, 'example' => 'GET', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'AllowHeaders' => [
+ 'title' => '',
+ 'description' => 'The list of allowed headers for CORS.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The allowed header. You can specify a single value of `*` or a specific header name. The name can be up to 32 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-). Underscores (\\_) and hyphens (-) cannot be the first or last character.', 'type' => 'string', 'required' => false, 'example' => 'test_123', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ExposeHeaders' => [
+ 'title' => '',
+ 'description' => 'The list of allowed exposed headers.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The allowed exposed header. You can specify a single value of `*` or a specific header name. The name can be up to 32 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-). Underscores (\\_) and hyphens (-) cannot be the first or last character.', 'type' => 'string', 'required' => false, 'example' => 'test_123', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
],
+ 'AllowCredentials' => ['description' => 'Specifies whether to allow requests to carry credentials. Valid values:'."\n"
+ ."\n"
+ .'- **on**: Allows requests to carry credentials.'."\n"
+ ."\n"
+ .'- **off**: Disables carrying credentials in requests.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'on'],
+ 'MaxAge' => ['description' => 'The maximum time, in seconds, that a preflight request can be cached by the browser.'."\n"
+ ."\n"
+ .'Valid values: **-1** to **172800**.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'required' => false, 'example' => '1000'],
],
+ 'required' => false,
+ 'example' => '',
],
],
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
],
+ 'required' => true,
+ 'maxItems' => 100,
+ 'minItems' => 1,
+ 'example' => '',
],
],
- ],
- 'errorCodes' => [
- 403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
- ],
- [
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- ],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclConfig\\": {\\n \\"AclRelations\\": [\\n {\\n \\"AclId\\": \\"acl-doc****\\",\\n \\"Status\\": \\"Associating\\"\\n }\\n ],\\n \\"AclType\\": \\"White\\"\\n },\\n \\"Certificates\\": [\\n {\\n \\"CertificateId\\": \\"123157*******\\"\\n }\\n ],\\n \\"CaCertificates\\": [\\n {\\n \\"CertificateId\\": \\"139a00*****\\",\\n \\"Status\\": \\"Associated\\",\\n \\"IsDefault\\": true\\n }\\n ],\\n \\"CaEnabled\\": false,\\n \\"DefaultActions\\": [\\n {\\n \\"ForwardGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-i5qt20******\\"\\n }\\n ]\\n },\\n \\"Type\\": \\"ForwardGroup\\"\\n }\\n ],\\n \\"GzipEnabled\\": true,\\n \\"Http2Enabled\\": true,\\n \\"IdleTimeout\\": 2,\\n \\"ListenerDescription\\": \\"HTTP_80\\",\\n \\"ListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTP\\",\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"LoadBalancerId\\": \\"alb-bd6oylbckp6k9x****\\",\\n \\"LogConfig\\": {\\n \\"AccessLogRecordCustomizedHeadersEnabled\\": true,\\n \\"AccessLogTracingConfig\\": {\\n \\"TracingEnabled\\": true,\\n \\"TracingSample\\": 100,\\n \\"TracingType\\": \\"Zipkin\\"\\n }\\n },\\n \\"QuicConfig\\": {\\n \\"QuicListenerId\\": \\"lsn-ek6ad66t****\\",\\n \\"QuicUpgradeEnabled\\": true\\n },\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\",\\n \\"RequestTimeout\\": 34,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_1\\",\\n \\"XForwardedForConfig\\": {\\n \\"XForwardedForClientCertClientVerifyAlias\\": \\"test_client-verify-alias_123456\\",\\n \\"XForwardedForClientCertClientVerifyEnabled\\": true,\\n \\"XForwardedForClientCertFingerprintAlias\\": \\"test_finger-print-alias_123456\\",\\n \\"XForwardedForClientCertFingerprintEnabled\\": true,\\n \\"XForwardedForClientCertIssuerDNAlias\\": \\"test_issue-dn-alias_123456\\",\\n \\"XForwardedForClientCertIssuerDNEnabled\\": true,\\n \\"XForwardedForClientCertSubjectDNAlias\\": \\"test_subject-dn-alias_123456\\",\\n \\"XForwardedForClientCertSubjectDNEnabled\\": true,\\n \\"XForwardedForClientSrcPortEnabled\\": true,\\n \\"XForwardedForEnabled\\": true,\\n \\"XForwardedForProcessingMode\\": \\"append\\",\\n \\"XForwardedForProtoEnabled\\": true,\\n \\"XForwardedForSLBIdEnabled\\": true,\\n \\"XForwardedForSLBPortEnabled\\": true,\\n \\"XForwardedForClientSourceIpsEnabled\\": false,\\n \\"XForwardedForClientSourceIpsTrusted\\": \\"10.1.1.0/24\\",\\n \\"XForwardedForHostEnabled\\": false\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetListenerAttributeResponse>\\n <AclConfig>\\n <AclRelations>\\n <AclId>acl-doc****</AclId>\\n <Status>Associating</Status>\\n </AclRelations>\\n <AclType>White</AclType>\\n </AclConfig>\\n <Certificates>\\n <CertificateId>12315790212_166f8204689_1714763408_70998****</CertificateId>\\n </Certificates>\\n <CaCertificates>\\n <CertificateId>139a00604bd-cn-east-hangzho****</CertificateId>\\n <Status>Associated</Status>\\n <IsDefault>true</IsDefault>\\n </CaCertificates>\\n <CaEnabled>false</CaEnabled>\\n <DefaultActions>\\n <ForwardGroupConfig>\\n <ServerGroupTuples>\\n <ServerGroupId>rsp-cige6j****</ServerGroupId>\\n </ServerGroupTuples>\\n </ForwardGroupConfig>\\n <Type>ForwardGroup</Type>\\n </DefaultActions>\\n <GzipEnabled>true</GzipEnabled>\\n <Http2Enabled>true</Http2Enabled>\\n <IdleTimeout>2</IdleTimeout>\\n <ListenerDescription>HTTP_80</ListenerDescription>\\n <ListenerId>lsr-bp1bpn0kn908w4nbw****</ListenerId>\\n <ListenerPort>80</ListenerPort>\\n <ListenerProtocol>HTTP</ListenerProtocol>\\n <ListenerStatus>Running</ListenerStatus>\\n <LoadBalancerId>alb-bd6oylbckp6k9x****</LoadBalancerId>\\n <LogConfig>\\n <AccessLogRecordCustomizedHeadersEnabled>true</AccessLogRecordCustomizedHeadersEnabled>\\n <AccessLogTracingConfig>\\n <TracingEnabled>true</TracingEnabled>\\n <TracingSample>100</TracingSample>\\n <TracingType>Zipkin</TracingType>\\n </AccessLogTracingConfig>\\n </LogConfig>\\n <QuicConfig>\\n <QuicListenerId>lsn-333</QuicListenerId>\\n <QuicUpgradeEnabled>true</QuicUpgradeEnabled>\\n </QuicConfig>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <RequestTimeout>34</RequestTimeout>\\n <SecurityPolicyId>tls_cipher_policy_1_1</SecurityPolicyId>\\n <XForwardedForConfig>\\n <XForwardedForClientCertClientVerifyAlias>test_client-verify-alias_123456</XForwardedForClientCertClientVerifyAlias>\\n <XForwardedForClientCertClientVerifyEnabled>true</XForwardedForClientCertClientVerifyEnabled>\\n <XForwardedForClientCertFingerprintAlias>test_finger-print-alias_123456</XForwardedForClientCertFingerprintAlias>\\n <XForwardedForClientCertFingerprintEnabled>true</XForwardedForClientCertFingerprintEnabled>\\n <XForwardedForClientCertIssuerDNAlias>test_issue-dn-alias_123456</XForwardedForClientCertIssuerDNAlias>\\n <XForwardedForClientCertIssuerDNEnabled>true</XForwardedForClientCertIssuerDNEnabled>\\n <XForwardedForClientCertSubjectDNAlias>test_subject-dn-alias_123456</XForwardedForClientCertSubjectDNAlias>\\n <XForwardedForClientCertSubjectDNEnabled>true</XForwardedForClientCertSubjectDNEnabled>\\n <XForwardedForClientSrcPortEnabled>true</XForwardedForClientSrcPortEnabled>\\n <XForwardedForEnabled>true</XForwardedForEnabled>\\n <XForwardedForProtoEnabled>true</XForwardedForProtoEnabled>\\n <XForwardedForSLBIdEnabled>true</XForwardedForSLBIdEnabled>\\n <XForwardedForSLBPortEnabled>true</XForwardedForSLBPortEnabled>\\n <XForwardedForClientSourceIpsEnabled>false</XForwardedForClientSourceIpsEnabled>\\n <XForwardedForClientSourceIpsTrusted>10.1.1.0/24</XForwardedForClientSourceIpsTrusted>\\n </XForwardedForConfig>\\n</GetListenerAttributeResponse>","errorExample":""}]',
- 'title' => 'GetListenerAttribute',
- ],
- 'DeleteListener' => [
- 'summary' => 'Deletes a listener.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
- ],
- ],
- 'operationType' => 'write',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
- 'parameters' => [
[
- 'name' => 'ListenerId',
+ 'name' => 'RuleConditions',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '监听id',
- 'description' => 'The ID of the Application Load Balancer (ALB) listener.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'A list of conditions for the forwarding rule.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A condition for the forwarding rule.',
+ 'type' => 'object',
+ 'properties' => [
+ 'CookieConfig' => [
+ 'title' => '',
+ 'description' => 'The cookie configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'A list of cookie values.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A cookie key-value pair.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the cookie.'."\n"
+ ."\n"
+ .'- It must be 1 to 100 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters, asterisks (\\*), and question marks (?). Letters must be lowercase.'."\n"
+ ."\n"
+ .'- It cannot contain spaces or the following special characters: `;#[]{}\\|<>&"`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ 'Value' => ['description' => 'The value of the cookie.'."\n"
+ ."\n"
+ .'- It must be 1 to 100 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters, asterisks (\\*), and question marks (?). Letters must be lowercase.'."\n"
+ ."\n"
+ .'- It cannot contain spaces or the following special characters: `;#[]{}\\|<>&"`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'HeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The header configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the header.'."\n"
+ ."\n"
+ .'- It must be 1 to 40 characters in length.'."\n"
+ ."\n"
+ .'- It can contain letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ ."\n"
+ .'- The `Cookie` and `Host` headers are not supported.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Port'],
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'A list of header values.',
+ 'type' => 'array',
+ 'items' => ['description' => 'An HTTP header value. Header values for the same key must be unique within the condition.'."\n"
+ ."\n"
+ .'- It must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters with an ASCII value in the range of `ch >= 32 && ch < 127`, asterisks (\\*), and question marks (?). It cannot contain double quotation marks (`"`).'."\n"
+ ."\n"
+ .'- It cannot start or end with a space, or end with a backslash (`\\`).', 'type' => 'string', 'required' => false, 'example' => '5006', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'HostConfig' => [
+ 'title' => '',
+ 'description' => 'The host configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'A list of hostnames.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The hostname.'."\n"
+ ."\n"
+ .'- The hostname must be 3 to 128 characters in length and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), equal signs (=), tildes (\\~), underscores (\\_), plus signs (+), backslashes (\\), carets (^), exclamation points (!), dollar signs ($), ampersands (&), vertical bars (|), parentheses (()), square brackets (\\[]), and question marks (?).'."\n"
+ ."\n"
+ .'- The hostname must contain at least one period (.) and cannot start or end with a period (.).'."\n"
+ ."\n"
+ .'- The rightmost domain label can contain only letters and wildcards, and cannot contain digits or hyphens (-). The leftmost `domain label` can be an asterisk (\\*).'."\n"
+ ."\n"
+ .'- A domain label cannot start or end with a hyphen (-). You can use asterisks (\\*) and question marks (?) as wildcards anywhere in a domain label.'."\n"
+ ."\n"
+ .'- For exact matches and wildcards, the first character cannot be a tilde (\\~).'."\n"
+ ."\n"
+ .'- For regular expression matches (case-insensitive), the first character cannot be an asterisk (\\*).', 'type' => 'string', 'required' => false, 'example' => 'www.example.edu', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'MethodConfig' => [
+ 'title' => '',
+ 'description' => 'The request method configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'A list of request methods.',
+ 'type' => 'array',
+ 'items' => ['description' => 'A request method.'."\n"
+ ."\n"
+ .'Valid values: **HEAD**, **GET**, **POST**, **OPTIONS**, **PUT**, **PATCH**, and **DELETE**.', 'type' => 'string', 'required' => false, 'example' => 'PUT', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 10,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'PathConfig' => [
+ 'title' => '',
+ 'description' => 'The path configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'A list of paths.',
+ 'type' => 'array',
+ 'items' => ['description' => 'A path.'."\n"
+ ."\n"
+ .'- The path must be 1 to 128 characters in length, case-sensitive, and can contain asterisks (\\*) and question marks (?) as wildcards.'."\n"
+ ."\n"
+ .'- For non-regular expressions, the path must start with a forward slash (/) and can contain letters, digits, and the following special characters: `$-_.+/&~@:\'*?`. It cannot contain `“%#;!()[]^,”\\"`.'."\n"
+ ."\n"
+ .'- For regular expressions, the path must start with `~` and can contain letters, digits, and the following special characters: `.-_/=?~^*$:()[]+|`.', 'type' => 'string', 'required' => false, 'example' => '/test', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'QueryStringConfig' => [
+ 'title' => '',
+ 'description' => 'The query string configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'A list of query strings.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A query string.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the query string.'."\n"
+ ."\n"
+ .'- It must be 1 to 100 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters, asterisks (\\*), and question marks (?). Letters must be lowercase. It cannot contain spaces or the following special characters: `#[]{}\\|<>&"`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ 'Value' => ['description' => 'The value of the query string.'."\n"
+ ."\n"
+ .'- It must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters, asterisks (\\*), and question marks (?). It cannot contain spaces or the following special characters: `#[]{}\\|<>&"`. Letters must be lowercase.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ResponseStatusCodeConfig' => [
+ 'title' => '',
+ 'description' => 'The response status code configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'A list of response status codes.',
+ 'type' => 'array',
+ 'items' => ['description' => 'A response status code.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ResponseHeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The header condition configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the header.'."\n"
+ ."\n"
+ .'- It must be 1 to 40 characters in length.'."\n"
+ ."\n"
+ .'- It can contain letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ ."\n"
+ .'- The `Cookie` and `Host` headers are not supported.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'A list of header values.',
+ 'type' => 'array',
+ 'items' => ['description' => 'A header value.'."\n"
+ ."\n"
+ .'- It must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters with an ASCII value in the range of `ch >= 32 && ch < 127`, lowercase letters, asterisks (\\*), and question marks (?). It cannot contain double quotation marks (`"`).'."\n"
+ ."\n"
+ .'- It cannot start or end with a space, or end with a backslash (`\\`).', 'type' => 'string', 'required' => false, 'example' => '50006', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'Type' => ['description' => 'The forwarding rule type. Valid values:'."\n"
+ ."\n"
+ .'- **Host**: host.'."\n"
+ ."\n"
+ .'- **Path**: path.'."\n"
+ ."\n"
+ .'- **Header**: An HTTP header.'."\n"
+ ."\n"
+ .'- **QueryString**: The query string.'."\n"
+ ."\n"
+ .'- **Method**: The request method.'."\n"
+ ."\n"
+ .'- **Cookie**: Cookie.'."\n"
+ ."\n"
+ .'- **SourceIp**: The source IP address.'."\n"
+ ."\n"
+ .'- **ResponseHeader**: The response HTTP header.'."\n"
+ ."\n"
+ .'- **ResponseStatusCode**: The response status code.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'Host'],
+ 'SourceIpConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration for matching service traffic based on the source IP. This is required and takes effect when **Type** is set to **SourceIP**.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'A service traffic matching list based on the source IP.',
+ 'type' => 'array',
+ 'items' => ['description' => 'Add one or more IP addresses or IP address ranges.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/32', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
+ 'maxItems' => 100,
+ 'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'RuleName',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['description' => 'The name of the forwarding rule.'."\n"
+ ."\n"
+ .'- The length must be 2 to 128 English or Chinese characters.'."\n"
+ ."\n"
+ .'- The name must start with a letter, a Chinese character, or a number, and can contain numbers, periods (.), underscores (\\_), hyphens (-), and spaces.', 'type' => 'string', 'required' => true, 'example' => 'rule-doc', 'title' => ''],
],
[
- 'name' => 'DryRun',
+ 'name' => 'Tag',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false**: (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
+ 'description' => 'Tag list.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Tag structure.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key can be up to 128 characters in length and cannot start with aliyun or acs: or contain http\\:// or https\\://.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The value cannot exceed 128 characters, start with aliyun or acs:, or contain http\\:// or https\\://.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => false,
- 'example' => 'true',
+ 'title' => '',
+ 'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The operation to delete a listener.'."\n",
+ 'title' => '',
+ 'description' => 'The response body.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540750'],
+ 'RuleId' => ['description' => 'The ID of the forwarding rule.', 'type' => 'string', 'title' => '', 'example' => 'rule-a3x3pg1yohq3lq****'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceInUse.Listener',
- 'errorMessage' => 'The specified resource %s is in use.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.Listener',
- 'errorMessage' => 'The specified resource is being configured, please try again later.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'OperationDenied.GRPCServerGroup', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'Conflict.Priority', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerRulesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.RuleWildcardsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'."\n"],
+ ['errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.RuleActionsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded. Usage: %s/%s.'],
+ ['errorCode' => 'Mismatch.Protocol', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'The %s is mismatched for %s and %s.'],
+ ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'The %s is mismatched for %s and %s.'],
+ ['errorCode' => 'OperationDenied.RewriteMissingForwardGroup', 'errorMessage' => 'The operation is not allowed because of RewriteMissingForwardGroup.', 'description' => 'The operation is not allowed because rewrite is missing the forward group.'],
+ ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified listener is being configured, please try again later.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.MirrorActionSupportHttpGroupOnly', 'errorMessage' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', 'description' => ''],
],
- 403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
- [
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540750\\",\\n \\"RuleId\\": \\"rule-a3x3pg1yohq3lq****\\"\\n}","type":"json"}]',
+ 'title' => 'CreateRule',
+ 'description' => 'When calling this operation to create a forwarding rule, note the following:'."\n"
+ ."\n"
+ .'- When you configure the **Redirect** action, you must set at least one parameter other than **HttpCode** to a non-default value.'."\n"
+ ."\n"
+ .'- If you specify a **Rewrite** action together with other actions in a forwarding rule, you must also specify a **ForwardGroup** action.'."\n"
+ ."\n"
+ .'- The **CreateRule** operation is asynchronous. After you send a request, the system returns a request ID and runs the creation task in the background. The forwarding rule is not created immediately. To query its status, call the [ListRules](~~214379~~) operation:'."\n"
+ ."\n"
+ .' - If a forwarding rule is in the **Provisioning** state, the rule is being created.'."\n"
+ ."\n"
+ .' - If a forwarding rule is in the **Available** state, the rule has been created successfully.'."\n"
+ ."\n"
+ .'- A forwarding rule has the following limits for conditions (**RuleConditions**) and actions (**RuleActions**):'."\n"
+ ."\n"
+ .' - **Conditions**: 5 for a basic Application Load Balancer (ALB) instance, 10 for a standard ALB instance, and 10 for a WAF-enabled ALB instance.'."\n"
+ ."\n"
+ .' - **Actions**: 3 for a basic ALB instance, 5 for a standard ALB instance, and 5 for a WAF-enabled ALB instance.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateRule',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</DeleteListenerResponse>","errorExample":""}]',
- 'title' => 'DeleteListener',
- 'description' => '**DeleteListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [GetListenerAttribute](~~2254865~~) to query the status of the task.'."\n"
- ."\n"
- .'* If the listener is in the **Deleting** state, the listener is being deleted.'."\n"
- .'* If the listener cannot be found, the listener is deleted.'."\n",
],
- 'ListListeners' => [
- 'summary' => 'Queries the listeners in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'CreateRules' => [
+ 'summary' => 'Creates forwarding rules in a batch.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'get',
- 'abilityTreeCode' => '190',
- 'abilityTreeNodes' => [
- 'FEATUREslbM7ALO6',
- 'FEATUREslbK3ZR0L',
- 'FEATUREslbN5IE4S',
- ],
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '170',
+ 'abilityTreeNodes' => ['FEATUREslbBIWWMH', 'FEATUREslbTXOYED', 'FEATUREslbQCCQ6L', 'FEATUREslb4T90LL', 'FEATUREslbIT4IYN', 'FEATUREslbA51OGD', 'FEATUREslbUBPZWI', 'FEATUREslbGVK35E', 'FEATUREslbYG3GCF', 'FEATUREslbRBR9GZ', 'FEATUREslbMWZQWL', 'FEATUREslbJCYSIV', 'FEATUREslbY93SFN', 'FEATUREslbVUMBEO', 'FEATUREslbZ4XFTS', 'FEATUREslb2Q6O49'],
+ 'autoTest' => true,
],
'parameters' => [
[
- 'name' => 'NextToken',
+ 'name' => 'ListenerId',
'in' => 'query',
- 'schema' => [
- 'title' => '用来标记当前开始读取的位置,置空表示从头开始。',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* You do not need to specify this parameter for the first request.'."\n"
- .'* If a value is returned for NextToken, you must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
+ 'schema' => ['description' => 'The ID of the Application Load Balancer (ALB) listener.', 'type' => 'string', 'required' => true, 'example' => 'lsn-l16uo9y******', 'title' => ''],
],
[
- 'name' => 'MaxResults',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '本次读取的最大数据记录数量,此参数为可选参数,取值1-100,用户传入为空时,默认为20。',
- 'description' => 'The maximum number of entries to return. This parameter is optional. 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,
- 'example' => '50',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'Generate a value from your client to make sure that the value is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the request as the **ClientToken**. The **RequestId** of each request is unique.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => '', 'required' => false],
],
[
- 'name' => 'ListenerIds',
+ 'name' => 'DryRun',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '监听ID列表,N最大支持20',
- 'description' => 'The listener IDs. You can specify at most 20 listener IDs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The listener ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
- 'required' => false,
- 'maxItems' => 20,
- 'minItems' => 1,
- ],
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Performs a dry run. The system checks the required parameters, request format, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): Sends a normal request. After the request passes the check, a `2xx` HTTP status code is returned and the forwarding rules are created.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
],
[
- 'name' => 'LoadBalancerIds',
- 'in' => 'query',
+ 'name' => 'Rules',
+ 'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'title' => '实例ID列表,N最大支持20',
- 'description' => 'The ALB instance ID. You can specify at most 20 instance IDs.'."\n",
+ 'title' => '',
+ 'description' => 'The forwarding rules.',
'type' => 'array',
'items' => [
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'lb-bp1b6c719dfa08ex*****',
- ],
- 'required' => false,
- 'maxItems' => 21,
- 'minItems' => 1,
- ],
- ],
- [
- 'name' => 'ListenerProtocol',
- 'in' => 'query',
- 'schema' => [
- 'title' => '监听协议',
- 'description' => 'The listener protocol. Valid values:'."\n"
- ."\n"
- .'* **HTTP**'."\n"
- .'* **HTTPS**'."\n"
- .'* **QUIC**'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP',
- ],
- ],
- [
- 'name' => 'Tag',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags.'."\n",
+ 'description' => 'The forwarding rule.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The tag key. 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' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. 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' => 'product',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The information about the listeners.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Listeners' => [
- 'title' => '监听列表',
- 'description' => 'The listeners.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The listener.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'DefaultActions' => [
- 'title' => '默认动作',
- 'description' => 'The default actions in the forwarding rules.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The action of the default forwarding rule.'."\n",
+ 'Priority' => ['description' => 'The priority of the forwarding rule.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '1'],
+ 'RuleActions' => [
+ 'title' => '',
+ 'description' => 'The actions of the forwarding rule.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The action of the forwarding rule.',
+ 'type' => 'object',
+ 'properties' => [
+ 'FixedResponseConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the action to return a fixed response.',
'type' => 'object',
'properties' => [
- 'ForwardGroupConfig' => [
- 'title' => '转发到服务器组',
- 'description' => 'The configuration of the forwarding rule action. This parameter takes effect only when the action is **ForwardGroup**.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupTuples' => [
- 'title' => '服务器组列表',
- 'description' => 'The server groups to which requests are forwarded.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The server group to which requests are forwarded.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupId' => [
- 'title' => '服务器组ID',
- 'description' => 'The ID of the server group to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'example' => 'rsp-cige6j****',
- ],
- ],
- ],
- ],
- ],
- ],
- 'Type' => [
- 'title' => '类型',
- 'description' => 'The action. **ForwardGroup**: forwards requests to multiple server groups.'."\n",
- 'type' => 'string',
- 'example' => 'ForwardGroup',
- ],
- ],
- ],
- ],
- 'GzipEnabled' => [
- 'title' => '是否开启Gzip压缩',
- 'description' => 'Indicates whether GZIP compression is enabled to compress specific types of files. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
- ],
- 'Http2Enabled' => [
- 'title' => '是否开启HTTP/2特性',
- 'description' => 'Indicates whether HTTP/2 is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
- ],
- 'IdleTimeout' => [
- 'title' => '连接空闲超时时间',
- '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, ALB closes the connection. ALB establishes the connection again when a new connection request is received.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '3',
- ],
- 'ListenerDescription' => [
- 'title' => '监听描述',
- 'description' => 'The name of the listener.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- 'ListenerId' => [
- 'title' => '监听标识',
- 'description' => 'The listener ID.'."\n",
- 'type' => 'string',
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
- 'ListenerPort' => [
- 'title' => '监听端口',
- 'description' => 'The frontend port that is used by the ALB instance. Valid values: **1 to 65535**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '80',
- ],
- 'ListenerProtocol' => [
- 'title' => '监听协议',
- 'description' => 'The listener protocol of the instance. Valid values:'."\n"
- ."\n"
- .'* **HTTP**'."\n"
- .'* **HTTPS**'."\n"
- .'* **QUIC**'."\n",
- 'type' => 'string',
- 'example' => 'HTTP',
- ],
- 'ListenerStatus' => [
- 'title' => '监听状态',
- 'description' => 'The status of the listener. Valid values:'."\n"
- ."\n"
- .'* **Provisioning**: The listener is being created.'."\n"
- .'* **Running**: The listener is running.'."\n"
- .'* **Configuring**: The listener is being configured.'."\n"
- .'* **Stopped**: The listener is disabled.'."\n",
- 'type' => 'string',
- 'example' => 'Running',
- ],
- 'LoadBalancerId' => [
- 'title' => '负载均衡标识',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'example' => 'lb-bp1b6c719dfa08ex*****',
- ],
- 'LogConfig' => [
- 'title' => '监听访问日志相关配置',
- 'description' => 'The logging configurations.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AccessLogRecordCustomizedHeadersEnabled' => [
- 'title' => '访问日志是否开启携带自定义Header',
- 'description' => 'Indicates whether custom headers are carried in the access log. Valid values:'."\n"
+ 'Content' => ['description' => 'The fixed response. The response can be up to 1 KB in size and can contain only ASCII characters.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ 'ContentType' => ['description' => 'The format of the fixed response.'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
+ .'Valid values: **text/plain**, **text/css**, **text/html**, **application/javascript**, and **application/json**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'text/plain'],
+ 'HttpCode' => ['description' => 'The HTTP status code of the response. Valid values are **2xx**, **4xx**, and **5xx**. **x** is a digit.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '200'],
],
- 'AccessLogTracingConfig' => [
- 'title' => '访问日志Xtrace相关的配置',
- 'description' => 'The configurations of xtrace.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'TracingEnabled' => [
- 'title' => 'Xtrace功能状态',
- 'description' => 'Indicates whether xtrace is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter can be set to **true** only when the access log feature of ALB is enabled by setting **AccessLogEnabled** to true.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ForwardGroupConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the action to forward requests to vServer groups.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupTuples' => [
+ 'title' => '',
+ 'description' => 'The destination vServer groups.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The destination vServer group.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupId' => ['description' => 'The vServer group ID.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'sgp-ffm94ovy7lqw******'],
+ 'Weight' => ['description' => 'The weight. A larger value specifies a higher weight. More requests are forwarded to the vServer group with a higher weight. Valid values: **0** to **100**.'."\n"
+ ."\n"
+ .'- If you specify only one destination vServer group, the default value of this parameter is **100**.'."\n"
+ ."\n"
+ .'- If you specify multiple destination vServer groups, you must specify a weight for each vServer group.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '0', 'title' => '', 'required' => false, 'example' => '100'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'TracingSample' => [
- 'title' => 'Xtrace功能状态',
- 'description' => 'The sampling rate of xtrace. Valid values: **1 to 10000**.'."\n"
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ServerGroupStickySession' => [
+ 'title' => '',
+ 'description' => 'Session persistence for vServer groups.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Enabled' => ['description' => 'Specifies whether to enable session persistence. Valid values:'."\n"
."\n"
- .'> This parameter takes effect when **TracingEnabled** is set to **true**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '100',
- ],
- 'TracingType' => [
- 'title' => 'xtrace的类型',
- 'description' => 'The type of xtrace. The value is set to **Zipkin**.'."\n"
+ .'- **true**: enables session persistence.'."\n"
."\n"
- .'> This parameter takes effect when **TracingEnabled** is set to **true**.'."\n",
- 'type' => 'string',
- 'example' => 'Zipkin',
+ .'- **false** (default): disables session persistence.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'Timeout' => ['description' => 'The timeout period. Unit: seconds. Valid values: **1** to **86400**. Default value: **1000**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '30'],
],
+ 'required' => false,
+ 'example' => '',
],
],
+ 'required' => false,
+ 'example' => '',
],
- ],
- 'QuicConfig' => [
- 'title' => 'HTTPS启用QUIC时相关属性',
- 'description' => 'The configurations of the QUIC listener associated with the ALB instance.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'QuicListenerId' => [
- 'title' => '需要关联的QUIC监听ID,HTTPS监听时有效,QuicUpgradeEnabled为true时必选',
- 'description' => 'The ID of the QUIC listener associated with the ALB instance. This parameter is required if the **QuicUpgradeEnabled** parameter is set to **true**. Only HTTPS listeners support this parameter.'."\n"
+ 'InsertHeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the action to insert a header.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the header to be inserted. The key can be 1 to 40 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The header keys in **InsertHeaderConfig** cannot be the same.'."\n"
."\n"
- .'> The existing listener and QUIC listener must be to the same ALB instance, and the QUIC listener has not been associated with an ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'lsr-bp1bpn908w4nbw****',
- ],
- 'QuicUpgradeEnabled' => [
- 'title' => '是否开启quic升级,HTTPS监听时有效',
- 'description' => 'Indicates whether QUIC upgrade is enabled. Valid values:'."\n"
+ .'> The following header keys are not supported (case-insensitive): `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, `authority`, and `x-forwarded-host`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'key'],
+ 'Value' => ['description' => 'The value of the header to be inserted.'."\n"
+ ."\n"
+ .'- **ValueType** is set to **SystemDefined**, you can specify one of the following values:'."\n"
+ ."\n"
+ .' - **ClientSrcPort**: the client port.'."\n"
+ ."\n"
+ .' - **ClientSrcIp**: the client IP address.'."\n"
+ ."\n"
+ .' - **Protocol**: the protocol of the client request (HTTP or HTTPS).'."\n"
+ ."\n"
+ .' - **SLBId**: the ID of the ALB instance.'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .' - **SLBPort**: the listening port of the ALB instance.'."\n"
."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
+ .'- If **ValueType** is set to **UserDefined**, you can specify a custom header value. The value must be 1 to 128 characters in length, and can contain wildcard characters, including asterisks (\\*) and question marks (?). It can also contain printable characters with an ASCII value of `ch >= 32 && ch < 127`. The value cannot start or end with a space. The value cannot end with a `\\`. The value cannot contain `"`.'."\n"
+ ."\n"
+ .'- If **ValueType** is set to **ReferenceHeader**, you can reference a field in the request header. The value must be 1 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'value'],
+ 'ValueType' => ['description' => 'The type of the header value. Valid values:'."\n"
+ ."\n"
+ .'- **UserDefined**: You can specify a custom header value.'."\n"
+ ."\n"
+ .'- **ReferenceHeader**: You can reference a field in the request header.'."\n"
+ ."\n"
+ .'- **SystemDefined**: The value is a system-defined value.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'SystemDefined'],
],
+ 'required' => false,
+ 'example' => '',
],
- ],
- 'RequestTimeout' => [
- 'title' => '请求超时时间',
- 'description' => 'The timeout period of a request. Unit: seconds. Valid values: **1 to 180**.'."\n"
- ."\n"
- .'If no responses are received from the backend server within the specified timeout period, ALB returns an `HTTP 504` error code to the client.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '34',
- ],
- 'SecurityPolicyId' => [
- 'title' => '安全策略',
- 'description' => 'The security policy.'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'string',
- 'example' => 'tls_cipher_policy_1_1',
- ],
- 'XForwardedForConfig' => [
- 'title' => 'XForward字段相关的配置',
- 'description' => 'The configuration of the `XForward` header.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'XForwardedForClientCertClientVerifyAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertClientVerifyEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertClientVerifyEnabled** is set to **true**.'."\n"
+ 'Order' => ['description' => 'The order of the action. Valid values: 1 to **50000**. The actions are performed in ascending order. The value must be unique.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '1'],
+ 'RedirectConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration for the redirection action.'."\n"
+ ."\n"
+ .'> You cannot use default values for all parameters of **RedirectConfig** except **httpCode**.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Host' => ['description' => 'The destination hostname. Valid values:'."\n"
."\n"
- .'The name must be 1 to 40 characters in length, and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ .'- **${host}** (default): You cannot append other characters to this value.'."\n"
."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'string',
- 'example' => 'test_client-verify-alias_123456',
- ],
- 'XForwardedForClientCertClientVerifyEnabled' => [
- 'title' => '是否通过X-Forwarded-Clientcert-clientverify 头字段获取对访问负载均衡实例客户端证书的校验结果。HTTPS监听有效。',
- 'description' => 'Indicates whether the `X-Forwarded-Clientcert-clientverify` header is used to obtain the verification result of the client certificate. Valid values:'."\n"
+ .'- Other values. The value must meet the following requirements:'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .' - The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), wildcard characters (\\*), equal signs (=), tildes (\\~), underscores (\\_), plus signs (+), backslashes (\\), circumflex accents (^), exclamation marks (!), dollar signs ($), ampersands (&), vertical bars (|), parentheses (()), brackets (\\[]), and question marks (?).'."\n"
."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForClientCertFingerprintAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertFingerprintEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertFingerprintEnabled** is set to **true**.'."\n"
+ .' - The hostname must contain at least one period (.). A period (.) cannot be the first or last character.'."\n"
."\n"
- .'The name must be 1 to 40 characters in length, and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ .' - The rightmost domain label can contain only letters and wildcard characters. It cannot contain digits or hyphens (-). The leftmost `domainlable` can be an asterisk (\\*).'."\n"
."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'string',
- 'example' => 'test_finger-print-alias_123456',
- ],
- 'XForwardedForClientCertFingerprintEnabled' => [
- 'title' => '是否通过X-Forwarded-Clientcert-fingerprint 头字段获取访问负载均衡实例客户端证书的指纹取值,HTTPS监听有效。',
- 'description' => 'Indicates whether the `X-Forwarded-Clientcert-fingerprint` header is used to retrieve the fingerprint of the client certificate. Valid values:'."\n"
+ .' - A hyphen (-) cannot be the first or last character of a domain label.'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .' - Wildcard characters, including asterisks (\\*) and question marks (?), can be placed at any position of a domain label.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '${host}'],
+ 'HttpCode' => ['description' => 'The redirection method. Valid values: **301**, **302**, **303**, **307**, and **308**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '301'],
+ 'Path' => ['description' => 'The destination path. Valid values:'."\n"
."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForClientCertIssuerDNAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertIssuerDNEnabled的值为‘On’的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertIssuerDNEnabled** is set to **true**.'."\n"
+ .'- **${path}** (default): You can reference **${host}**, **${protocol}**, and **${port}**. Each variable can be referenced only once. You can use these variables together or combine them with the strings that are specified in the following list.'."\n"
."\n"
- .'The name must be 1 to 40 characters in length, and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ .'- Other values. The value must meet the following requirements:'."\n"
."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'string',
- 'example' => 'test_issue-dn-alias_123456',
- ],
- 'XForwardedForClientCertIssuerDNEnabled' => [
- 'title' => '是否通过 X-Forwarded-Clientcert-issuerdn 头字段获取访问负载均衡实例客户端证书的发行者信息。HTTPS监听有效。',
- 'description' => 'Indicates whether the `X-Forwarded-Clientcert-issuerdn` header is used to retrieve information about the authority that issues the client certificate. Valid values:'."\n"
+ .' - The value must be 1 to 128 characters in length, case-sensitive, and can contain wildcard characters, including asterisks (\\*) and question marks (?).'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .' - The value must start with a forward slash (/). It can contain letters, digits, and the following special characters: `$-_.+/&~@:\'*?`. It cannot contain `“%#;!()[]^,”\\"`. It can contain wildcard characters, including asterisks (\\*) and question marks (?).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '/'],
+ 'Port' => ['description' => 'The destination port.'."\n"
."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForClientCertSubjectDNAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertSubjectDNEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertSubjectDNEnabled** is set to **true**.'."\n"
+ .'- **${port}** (default): You cannot use this value with other characters.'."\n"
."\n"
- .'The name must be 1 to 40 characters in length, and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ .'- Other values: 1 to **63335**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '443'],
+ 'Protocol' => ['description' => 'The destination protocol. Valid values:'."\n"
."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'string',
- 'example' => 'test_subject-dn-alias_123456',
- ],
- 'XForwardedForClientCertSubjectDNEnabled' => [
- 'title' => '是否通过X-Forwarded-Clientcert-subjectdn 头字段获取访问负载均衡实例客户端证书的所有者信息。HTTPS监听有效。',
- 'description' => 'Indicates whether the `X-Forwarded-Clientcert-subjectdn` header is used to retrieve information about the owner of the client certificate. Valid values:'."\n"
+ .'- **${protocol}** (default): You can only use this value. You cannot modify it or append other characters to it.'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .'- **HTTP**'."\n"
."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForClientSrcPortEnabled' => [
- 'title' => '是否通过X-Forwarded-Client-Port 头字段获取访问负载均衡实例客户端的端口。HTTPS监听有效。',
- 'description' => 'Indicates whether the `X-Forwarded-Client-Port` header is used to retrieve the client port. Valid values:'."\n"
+ .'- **HTTPS**'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .'> * HTTPS listeners support redirection to only HTTPS.'."\n"
+ .'>'."\n"
+ .'> * HTTP listeners support redirection to HTTP and HTTPS.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'HTTPS'],
+ 'Query' => ['description' => 'The destination query string.'."\n"
."\n"
- .'> This parameter is returned only for HTTP and HTTPS listeners.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForEnabled' => [
- 'title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP',
- 'description' => 'Specifies whether to use the `X-Forwarded-For` header to retrieve client IP addresses. Valid values:'."\n"
+ .'- **${query}** (default): You can reference **${host}**, **${protocol}**, and **${port}**. Each variable can be referenced only once. You can use these variables together or combine them with the strings that are specified in the following list.'."\n"
+ ."\n"
+ .'- Other values. The value must meet the following requirements:'."\n"
."\n"
- .'* **true** (default)'."\n"
- .'* **false**'."\n"
+ .' - The value must be 1 to 128 characters in length.'."\n"
."\n"
- .'> * If this parameter is set to **true**, the default value of the **XForwardedForProcessingMode** parameter is **append**. You can change it to **remove**.'."\n"
- .'> * If this parameter is set to **false**, the `X-Forwarded-For` header in the request is not modified in any way before the request is sent to backend servers.'."\n"
- .'> * Both HTTP and HTTPS listeners support this parameter.',
- 'type' => 'boolean',
- 'example' => 'true',
+ .' - The value can contain printable characters. It cannot contain spaces or the following special characters: `#[]{}\\|<>"`. If the value contains letters, the letters must be lowercase.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '${query}'],
],
- 'XForwardedForProcessingMode' => [
- 'description' => 'Specifies how the `X-Forwarded-For` header is processed. This parameter takes effect only when **XForwardedForEnabled** is set to **true**. Valid values:'."\n"
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'RewriteConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the rewrite action.'."\n"
+ ."\n"
+ .'> If you configure multiple actions for a forwarding rule, the **RewriteConfig** action must be used with the **ForwardGroup** action type.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Host' => ['description' => 'The destination hostname for the internal redirection. Valid values:'."\n"
."\n"
- .'* **append** (default)'."\n"
- .'* **remove**'."\n"
+ .'- **${host}** (default): You cannot append other characters to this value.'."\n"
."\n"
- .'> * If this parameter is set to **append**, ALB appends the IP address of the last hop to the existing `X-Forwarded-For` header in the request before the request is sent to backend servers.'."\n"
- .'> * If this parameter is set to **remove**, ALB removes the `X-Forwarded-For` header in the request before the request is sent to backend servers, no matter whether the request carries the `X-Forwarded-For` header.'."\n"
- .'> * Both HTTP and HTTPS listeners support this parameter.',
- 'type' => 'string',
- 'example' => 'append',
- ],
- 'XForwardedForProtoEnabled' => [
- 'title' => '是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。',
- 'description' => 'Indicates whether the `X-Forwarded-Proto` header is used to retrieve the listener protocol. Valid values:'."\n"
+ .'- Other values. The value must meet the following requirements:'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .' - The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), wildcard characters (\\*), equal signs (=), tildes (\\~), underscores (\\_), plus signs (+), backslashes (\\), circumflex accents (^), exclamation marks (!), dollar signs ($), ampersands (&), vertical bars (|), parentheses (()), brackets (\\[]), and question marks (?).'."\n"
."\n"
- .'> This parameter is supported by HTTP, HTTPS, and QUIC listeners.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'XForwardedForSLBIdEnabled' => [
- 'title' => '是否通过SLB-ID头字段获取负载均衡实例ID。',
- 'description' => 'Specifies whether to use the `SLB-ID` header to retrieve the ID of the ALB instance. Valid values:'."\n"
+ .' - The hostname must contain at least one period (.). A period (.) cannot be the first or last character.'."\n"
+ ."\n"
+ .' - The rightmost domain label can contain only letters and wildcard characters. It cannot contain digits or hyphens (-). The leftmost `domainlable` can be an asterisk (\\*).'."\n"
+ ."\n"
+ .' - A hyphen (-) cannot be the first or last character of a domain label. Wildcard characters, including asterisks (\\*) and question marks (?), can be placed at any position of a domain label.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'www.rewrite.alb'],
+ 'Path' => ['description' => 'The destination path. Valid values:'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .'- **${path}** (default): You can reference **${host}**, **${protocol}**, and **${port}**. Each variable can be referenced only once. You can use these variables together or combine them with the strings that are specified in the following list.'."\n"
."\n"
- .'> This parameter is supported by HTTP, HTTPS, and QUIC listeners.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
+ .'- Other values. The value must meet the following requirements:'."\n"
+ ."\n"
+ .' - The value must be 1 to 128 characters in length, case-sensitive, and can contain wildcard characters, including asterisks (\\*) and question marks (?).'."\n"
+ ."\n"
+ .' - The value must start with a forward slash (/). It can contain letters, digits, and the following special characters: `$-_.+/&~@:\'*?`. It cannot contain `“%#;!()[]^,”\\"`. It can contain wildcard characters, including asterisks (\\*) and question marks (?).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '/tea'],
+ 'Query' => ['description' => 'The query string for the internal redirection.'."\n"
+ ."\n"
+ .'- **${query}** (default): You can reference **${host}**, **${protocol}**, and **${port}**. Each variable can be referenced only once. You can use these variables together or combine them with the strings that are specified in the following list.'."\n"
+ ."\n"
+ .'- Other values. The value must meet the following requirements:'."\n"
+ ."\n"
+ .' - The value must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .' - The value can contain printable characters. It cannot contain spaces or the following special characters: `#[]{}\\|<>"`. If the value contains letters, the letters must be lowercase.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '${query}'],
],
- 'XForwardedForSLBPortEnabled' => [
- 'title' => '是否通过X-Forwarded-Port 头字段获取负载均衡实例的监听端口。HTTPS监听有效。',
- 'description' => 'Indicates whether the `X-Forwarded-Port` header is used to retrieve the listener port of the ALB instance. Valid values:'."\n"
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'Type' => ['description' => 'The action type. Valid values:'."\n"
+ ."\n"
+ .'- **ForwardGroup**: Forwards requests to multiple vServer groups.'."\n"
+ ."\n"
+ .'- **Redirect**: Redirects requests.'."\n"
+ ."\n"
+ .'- **FixedResponse**: Returns a fixed response.'."\n"
+ ."\n"
+ .'- **Rewrite**: Rewrites requests.'."\n"
+ ."\n"
+ .'- **InsertHeader**: Inserts a header.'."\n"
+ ."\n"
+ .'- **RemoveHeader**: Deletes a header.'."\n"
+ ."\n"
+ .'- **TrafficLimit**: Throttles traffic.'."\n"
+ ."\n"
+ .'- **TrafficMirror**: Mirrors traffic.'."\n"
+ ."\n"
+ .'- **Cors**: Enables cross-origin resource sharing (CORS).'."\n"
+ ."\n"
+ .'> A forwarding rule must contain a **ForwardGroup**, **Redirect**, or **FixedResponse** action. If you want to use these actions with other action types, you must configure these actions to be performed last.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'ForwardGroup'],
+ 'TrafficLimitConfig' => [
+ 'title' => '',
+ 'description' => 'The traffic throttling configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'QPS' => ['description' => 'The number of queries per second (QPS). Valid values: **1** to **1000000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5000', 'title' => ''],
+ 'PerIpQps' => ['description' => 'The QPS of a single IP address. Valid values: 1 to **1000000**.'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .'> If you specify both QPS and **PerIpQps**, the value of **PerIpQps** must be smaller than the value of **QPS**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'title' => ''],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'TrafficMirrorConfig' => [
+ 'title' => '',
+ 'description' => 'The traffic mirroring configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'TargetType' => ['description' => 'The type of the destination to which traffic is mirrored. Valid values:'."\n"
."\n"
- .'> This parameter is supported by HTTP, HTTPS, and QUIC listeners.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
+ .'- **ForwardGroupMirror**: Mirrors traffic to a vServer group.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'ForwardGroupMirror'],
+ 'MirrorGroupConfig' => [
+ 'title' => '',
+ 'description' => 'The vServer group to which traffic is mirrored.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupTuples' => [
+ 'description' => 'The vServer groups to which traffic is mirrored.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The vServer group to which traffic is mirrored.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupId' => ['description' => 'The ID of the vServer group.', 'type' => 'string', 'required' => false, 'example' => 'sgp-u9cmf16iu69******', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
],
- 'XForwardedForClientSourceIpsEnabled' => [
- 'description' => 'Indicates whether the X-Forwarded-For header is used to preserver client IP addresses for the ALB instance. Valid values:'."\n"
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'RemoveHeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration for deleting an HTTP header.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the header to be deleted. The key can be 1 to 40 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The header keys in RemoveHeader cannot be the same.'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
+ .'- If Direction is set to Request, the following header keys are not supported (case-insensitive): `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, `authority`, and `x-forwarded-host`.'."\n"
."\n"
- .'> This parameter is returned only for HTTP and HTTPS listeners.'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
+ .'- If Direction is set to Response, the following header keys are not supported (case-insensitive): `connection`, `upgrade`, `content-length`, and `transfer-encoding`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'key'],
],
- 'XForwardedForClientSourceIpsTrusted' => [
- 'description' => 'The trusted proxy IP address.'."\n"
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'CorsConfig' => [
+ 'title' => '',
+ 'description' => 'The CORS configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'AllowOrigin' => [
+ 'title' => '',
+ 'description' => 'The allowed origins.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The list of allowed origins. You can specify only one asterisk (\\*) or one or more values.'."\n"
+ ."\n"
+ .'- A value must start with `http://` or `https://`, followed by a valid domain name or a level-1 wildcard domain name. Example: `http://*.test.abc.example.com`.'."\n"
+ ."\n"
+ .'- You can specify a port or not. The port number must be in the range of **1** to **65535**.', 'type' => 'string', 'required' => false, 'example' => 'http://www.test.com', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'AllowMethods' => [
+ 'title' => '',
+ 'description' => 'The allowed HTTP methods for cross-origin requests.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The allowed HTTP methods for cross-origin requests. Valid values:'."\n"
+ ."\n"
+ .'- **GET**'."\n"
+ ."\n"
+ .'- **POST**'."\n"
+ ."\n"
+ .'- **PUT**'."\n"
+ ."\n"
+ .'- **DELETE**'."\n"
+ ."\n"
+ .'- **HEAD**'."\n"
+ ."\n"
+ .'- **OPTIONS**'."\n"
+ ."\n"
+ .'- **PATCH**', 'type' => 'string', 'required' => false, 'example' => 'GET', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'AllowHeaders' => [
+ 'title' => '',
+ 'description' => 'The allowed headers for cross-origin requests.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The allowed headers for cross-origin requests. You can specify an asterisk (\\*) or one or more values. Multiple values are separated by commas (,). A value can be 1 to 32 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). Underscores (\\_) and hyphens (-) cannot be the first or last characters.', 'type' => 'string', 'required' => false, 'example' => 'AllowHeader', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ExposeHeaders' => [
+ 'title' => '',
+ 'description' => 'The headers that can be exposed.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The headers that can be exposed. You can specify an asterisk (\\*) or one or more values. Multiple values are separated by commas (,). A value can be 1 to 32 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). Underscores (\\_) and hyphens (-) cannot be the first or last characters.', 'type' => 'string', 'required' => false, 'example' => 'ExposeHeader', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'AllowCredentials' => [
+ 'description' => 'Specifies whether to allow credentials. Valid values:'."\n"
+ ."\n"
+ .'- **on**: yes.'."\n"
+ ."\n"
+ .'- **off**: no.',
+ 'enumValueTitles' => ['off' => 'off', 'on' => 'on'],
+ 'type' => 'string',
+ 'title' => '',
+ 'required' => false,
+ 'example' => 'on',
+ ],
+ 'MaxAge' => ['description' => 'The maximum cache time of preflight requests in the browser. Unit: seconds.'."\n"
."\n"
- .'ALB instances traverse the IP addresses in the `X-Forwarded-For` header from the rightmost IP address to the leftmost IP address. The first IP address that is not on the trusted IP address list is considered the client IP address. Requests from the client IP address are throttled.'."\n",
- 'type' => 'string',
- 'example' => '10.1.1.0/24',
+ .'Valid values: **-1** to **172800**.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'required' => false, 'example' => '600'],
],
- 'XForwardedForHostEnabled' => [
- 'description' => 'Specifies whether to use the `X-Forwarded-Host` header to retrieve client domain names. Valid values:'."\n"
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => true,
+ 'maxItems' => 100,
+ 'minItems' => 1,
+ 'example' => '',
+ ],
+ 'RuleConditions' => [
+ 'title' => '',
+ 'description' => 'The conditions of the forwarding rule.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The condition of the forwarding rule.',
+ 'type' => 'object',
+ 'properties' => [
+ 'CookieConfig' => [
+ 'title' => '',
+ 'description' => 'The cookie-based routing condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The key-value pairs of the cookie.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The key-value pair of the cookie.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the cookie.'."\n"
+ ."\n"
+ .'- The key must be 1 to 100 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters, wildcard characters (\\* and ?), and lowercase letters.'."\n"
+ ."\n"
+ .'- It cannot contain spaces or the following special characters: `;#[]{}\\|<>&"`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'key'],
+ 'Value' => ['description' => 'The value of the cookie.'."\n"
+ ."\n"
+ .'- The value must be 1 to 100 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters, wildcard characters (\\* and ?), and lowercase letters.'."\n"
+ ."\n"
+ .'- It cannot contain spaces or the following special characters: `;#[]{}\\|<>&"`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'value'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'HeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The header-based routing condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the request header.'."\n"
+ ."\n"
+ .'- The key must be 1 to 40 characters in length.'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n"
+ .'- It can contain letters, digits, hyphens (-), and underscores (\\_).'."\n"
."\n"
- .'> HTTP, HTTPS, and QUIC listeners all support this parameter.'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
+ .'- The key cannot be Cookie or Host.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'port'],
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The values of the request header.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The value of the request header. The values of the same header key cannot be the same.'."\n"
+ ."\n"
+ .'- The value must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters with an ASCII value of `ch >= 32 && ch < 127`, asterisks (\\*), and question marks (?). It cannot contain `"`.'."\n"
+ ."\n"
+ .'- The value cannot start or end with a space. The value cannot end with a `\\`.', 'type' => 'string', 'required' => false, 'example' => '5006', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'example' => '',
+ ],
],
+ 'required' => false,
+ 'example' => '',
],
- ],
- 'Tags' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags.'."\n",
+ 'HostConfig' => [
+ 'title' => '',
+ 'description' => 'The host-based routing condition.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The tag key. The tag key can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'example' => 'env',
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The hostnames.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The hostname. Only one hostname can be specified in a condition, and the hostname cannot be the same as that in other conditions.'."\n"
+ ."\n"
+ .'- The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), equal signs (=), tildes (\\~), underscores (\\_), plus signs (+), backslashes (\\), circumflex accents (^), exclamation marks (!), dollar signs ($), ampersands (&), vertical bars (|), parentheses (()), brackets (\\[]), and question marks (?).'."\n"
+ ."\n"
+ .'- The hostname must contain at least one period (.). A period (.) cannot be the first or last character.'."\n"
+ ."\n"
+ .'- The rightmost domain label can contain only letters and wildcard characters. It cannot contain digits or hyphens (-). The leftmost `domainlable` can be an asterisk (\\*).'."\n"
+ ."\n"
+ .'- A hyphen (-) cannot be the first or last character of a domain label. Wildcard characters, including asterisks (\\*) and question marks (?), can be placed at any position of a domain label.'."\n"
+ ."\n"
+ .'- For exact match and wildcard match, the value cannot start with a tilde (\\~).'."\n"
+ ."\n"
+ .'- For regular expression match, the value cannot start with an asterisk (\\*).', 'type' => 'string', 'required' => false, 'example' => 'www.example.com', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'example' => '',
],
- 'Value' => [
- 'description' => 'The tag value. The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'example' => 'product',
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'MethodConfig' => [
+ 'title' => '',
+ 'description' => 'The method-based routing condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The HTTP request methods.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The request method.'."\n"
+ ."\n"
+ .'Valid values: **HEAD**, **GET**, **POST**, **OPTIONS**, **PUT**, **PATCH**, and **DELETE**.', 'type' => 'string', 'required' => false, 'example' => 'PUT', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 10,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'PathConfig' => [
+ 'title' => '',
+ 'description' => 'The path-based routing condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The paths.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The forwarding path. The path must meet the following requirements:'."\n"
+ ."\n"
+ .'- The path must be 1 to 128 characters in length, case-sensitive, and can contain wildcard characters (\\* and ?).'."\n"
+ ."\n"
+ .'- A URL that is not a regular expression must start with a forward slash (/). It can contain letters, digits, and the following special characters: `$-_.+/&~@:\'*?`. It cannot contain `“%#;!()[]^,”\\"`. It can contain wildcard characters (\\* and ?).'."\n"
+ ."\n"
+ .'- A URL that is a regular expression must start with a tilde (\\~). It can contain letters, digits, and the following special characters: `.-_/=?~^*$:()[]+|`.', 'type' => 'string', 'required' => false, 'example' => '/test', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'QueryStringConfig' => [
+ 'title' => '',
+ 'description' => 'The query string-based routing condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The key-value pairs of the query string.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The key-value pair of the query string.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the query string.'."\n"
+ ."\n"
+ .'- The key must be 1 to 100 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters, wildcard characters (\\* and ?), and lowercase letters. It cannot contain spaces or the following special characters: `#[]{}\\|<>&"`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'key'],
+ 'Value' => ['description' => 'The value of the query string.'."\n"
+ ."\n"
+ .'- The value must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .'- It can contain lowercase letters, printable characters, and wildcard characters (\\* and ?). It cannot contain spaces or the following special characters: `#[]{}\\|<>&"`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'value'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'example' => '',
],
],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ResponseHeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the response header.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the response header.'."\n"
+ ."\n"
+ .'- The key must be 1 to 40 characters in length.'."\n"
+ ."\n"
+ .'- It can contain letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ ."\n"
+ .'- The key cannot be Cookie or Host.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'key'],
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The values of the response header.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The value of the response header.'."\n"
+ ."\n"
+ .'- The value must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters with an ASCII value of `ch >= 32 && ch < 127`, lowercase letters, and wildcard characters (\\* and ?). It cannot contain `"`.'."\n"
+ ."\n"
+ .'- The value cannot start or end with a space. The value cannot end with a `\\`.', 'type' => 'string', 'required' => false, 'example' => 'value', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ResponseStatusCodeConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the response status code.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The response status codes.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The response status code.', 'type' => 'string', 'required' => false, 'example' => '200', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the condition. Valid values:'."\n"
+ ."\n"
+ .'- Host: The condition is based on the hostname.'."\n"
+ ."\n"
+ .'- Path: The condition is based on the path.'."\n"
+ ."\n"
+ .'- Header: The condition is based on the request header.'."\n"
+ ."\n"
+ .'- QueryString: The condition is based on the query string.'."\n"
+ ."\n"
+ .'- Method: The condition is based on the request method.'."\n"
+ ."\n"
+ .'- Cookie: The condition is based on the cookie.'."\n"
+ ."\n"
+ .'- SourceIp: The condition is based on the source IP address.'."\n"
+ ."\n"
+ .'- ResponseHeader: The condition is based on the response header.'."\n"
+ ."\n"
+ .'- ResponseStatusCode: The condition is based on the response status code.',
+ 'enumValueTitles' => ['Cookie' => 'Cookie', 'Path' => 'Path', 'ResponseHeader' => 'ResponseHeader', 'SourceIp' => 'SourceIp', 'Header' => 'Header', 'ResponseStatusCode' => 'ResponseStatusCode', 'QueryString' => 'QueryString', 'Host' => 'Host', 'Method' => 'Method'],
+ 'type' => 'string',
+ 'required' => true,
+ 'title' => '',
+ 'example' => 'SourceIp',
+ ],
+ 'SourceIpConfig' => [
+ 'title' => '',
+ 'description' => 'The source IP address-based routing condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The source IP addresses or CIDR blocks.',
+ 'type' => 'array',
+ 'items' => ['description' => 'Add one or more IP addresses or CIDR blocks.'."\n"
+ ."\n"
+ .'You can add up to five source IP addresses to a forwarding rule.', 'type' => 'string', 'required' => false, 'example' => '192.168.XX.XX/32', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
],
],
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
],
+ 'required' => true,
+ 'maxItems' => 100,
+ 'minItems' => 1,
+ 'example' => '',
+ ],
+ 'RuleName' => ['description' => 'The name of the forwarding rule.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'rule-443-64'],
+ 'Direction' => [
+ 'description' => 'The direction of the forwarding rule.',
+ 'enumValueTitles' => ['Response' => 'Response', 'Request' => 'Request'],
+ 'type' => 'string',
+ 'title' => '',
+ 'required' => false,
+ 'example' => 'Request',
+ ],
+ 'Tag' => [
+ 'description' => 'The tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length and cannot start with aliyun or acs:. It cannot contain http\\:// or https\\://.', 'type' => 'string', 'required' => false, 'example' => 'test_tag_key', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length and cannot start with aliyun or acs:. It cannot contain http\\:// or https\\://.', 'type' => 'string', 'required' => false, 'example' => 'test_tag_value', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
],
- 'MaxResults' => [
- 'title' => '本次请求所返回的最大记录条数。',
- 'description' => 'The maximum number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '50',
- ],
- 'NextToken' => [
- 'title' => '用来表示当前调用返回读取到的位置,空代表数据已经读取完毕。',
- 'description' => 'The position where the query stopped. If this parameter is not returned, all data is queried.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
- 'TotalCount' => [
- 'title' => '本次请求条件下的数据总量。',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1000',
- ],
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
],
- ],
- ],
- ],
- 'errorCodes' => [
- 403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
- ],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Listeners\\": [\\n {\\n \\"DefaultActions\\": [\\n {\\n \\"ForwardGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-i5qt20******\\"\\n }\\n ]\\n },\\n \\"Type\\": \\"ForwardGroup\\"\\n }\\n ],\\n \\"GzipEnabled\\": false,\\n \\"Http2Enabled\\": false,\\n \\"IdleTimeout\\": 3,\\n \\"ListenerDescription\\": \\"HTTP_80\\",\\n \\"ListenerId\\": \\"lsn-o4u34y73wq7b******\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTP\\",\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"LoadBalancerId\\": \\"alb-bd6oylbckp6k9x****\\",\\n \\"LogConfig\\": {\\n \\"AccessLogRecordCustomizedHeadersEnabled\\": true,\\n \\"AccessLogTracingConfig\\": {\\n \\"TracingEnabled\\": true,\\n \\"TracingSample\\": 100,\\n \\"TracingType\\": \\"Zipkin\\"\\n }\\n },\\n \\"QuicConfig\\": {\\n \\"QuicListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"QuicUpgradeEnabled\\": true\\n },\\n \\"RequestTimeout\\": 34,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_1\\",\\n \\"XForwardedForConfig\\": {\\n \\"XForwardedForClientCertClientVerifyAlias\\": \\"test_client-verify-alias_123456\\",\\n \\"XForwardedForClientCertClientVerifyEnabled\\": true,\\n \\"XForwardedForClientCertFingerprintAlias\\": \\"test_finger-print-alias_123456\\",\\n \\"XForwardedForClientCertFingerprintEnabled\\": true,\\n \\"XForwardedForClientCertIssuerDNAlias\\": \\"test_issue-dn-alias_123456\\",\\n \\"XForwardedForClientCertIssuerDNEnabled\\": true,\\n \\"XForwardedForClientCertSubjectDNAlias\\": \\"test_subject-dn-alias_123456\\",\\n \\"XForwardedForClientCertSubjectDNEnabled\\": true,\\n \\"XForwardedForClientSrcPortEnabled\\": true,\\n \\"XForwardedForEnabled\\": true,\\n \\"XForwardedForProcessingMode\\": \\"append\\",\\n \\"XForwardedForProtoEnabled\\": true,\\n \\"XForwardedForSLBIdEnabled\\": true,\\n \\"XForwardedForSLBPortEnabled\\": true,\\n \\"XForwardedForClientSourceIpsEnabled\\": false,\\n \\"XForwardedForClientSourceIpsTrusted\\": \\"10.1.1.0/24\\",\\n \\"XForwardedForHostEnabled\\": false\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"<ListListenersResponse>\\n <Listeners>\\n <DefaultActions>\\n <ForwardGroupConfig>\\n <ServerGroupTuples>\\n <ServerGroupId>rsp-cige6j****</ServerGroupId>\\n </ServerGroupTuples>\\n </ForwardGroupConfig>\\n <Type>ForwardGroup</Type>\\n </DefaultActions>\\n <GzipEnabled>false</GzipEnabled>\\n <Http2Enabled>false</Http2Enabled>\\n <IdleTimeout>3</IdleTimeout>\\n <ListenerDescription>HTTP_80</ListenerDescription>\\n <ListenerId>lsr-bp1bpn0kn908w4nbw****</ListenerId>\\n <ListenerPort>80</ListenerPort>\\n <ListenerProtocol>HTTP</ListenerProtocol>\\n <ListenerStatus>Running</ListenerStatus>\\n <LoadBalancerId>alb-bd6oylbckp6k9x****</LoadBalancerId>\\n <LogConfig>\\n <AccessLogRecordCustomizedHeadersEnabled>true</AccessLogRecordCustomizedHeadersEnabled>\\n <AccessLogTracingConfig>\\n <TracingEnabled>true</TracingEnabled>\\n <TracingSample>100</TracingSample>\\n <TracingType>Zipkin</TracingType>\\n </AccessLogTracingConfig>\\n </LogConfig>\\n <QuicConfig>\\n <QuicListenerId>lsr-bp1bpn908w4nbw****</QuicListenerId>\\n <QuicUpgradeEnabled>true</QuicUpgradeEnabled>\\n </QuicConfig>\\n <RequestTimeout>34</RequestTimeout>\\n <SecurityPolicyId>tls_cipher_policy_1_1</SecurityPolicyId>\\n <XForwardedForConfig>\\n <XForwardedForClientCertClientVerifyAlias>test_client-verify-alias_123456</XForwardedForClientCertClientVerifyAlias>\\n <XForwardedForClientCertClientVerifyEnabled>true</XForwardedForClientCertClientVerifyEnabled>\\n <XForwardedForClientCertFingerprintAlias>test_finger-print-alias_123456</XForwardedForClientCertFingerprintAlias>\\n <XForwardedForClientCertFingerprintEnabled>true</XForwardedForClientCertFingerprintEnabled>\\n <XForwardedForClientCertIssuerDNAlias>test_issue-dn-alias_123456</XForwardedForClientCertIssuerDNAlias>\\n <XForwardedForClientCertIssuerDNEnabled>true</XForwardedForClientCertIssuerDNEnabled>\\n <XForwardedForClientCertSubjectDNAlias>test_subject-dn-alias_123456</XForwardedForClientCertSubjectDNAlias>\\n <XForwardedForClientCertSubjectDNEnabled>true</XForwardedForClientCertSubjectDNEnabled>\\n <XForwardedForClientSrcPortEnabled>true</XForwardedForClientSrcPortEnabled>\\n <XForwardedForEnabled>true</XForwardedForEnabled>\\n <XForwardedForProtoEnabled>true</XForwardedForProtoEnabled>\\n <XForwardedForSLBIdEnabled>true</XForwardedForSLBIdEnabled>\\n <XForwardedForSLBPortEnabled>true</XForwardedForSLBPortEnabled>\\n <XForwardedForClientSourceIpsEnabled>false</XForwardedForClientSourceIpsEnabled>\\n <XForwardedForClientSourceIpsTrusted>10.1.1.0/24</XForwardedForClientSourceIpsTrusted>\\n </XForwardedForConfig>\\n </Listeners>\\n <MaxResults>50</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <TotalCount>1000</TotalCount>\\n</ListListenersResponse>","errorExample":""}]',
- 'title' => 'ListListeners',
- ],
- 'StartListener' => [
- 'summary' => 'Enables a listener.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
- ],
- ],
- 'operationType' => 'write',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
- 'parameters' => [
- [
- 'name' => 'ListenerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '监听id',
- 'description' => 'The ID of the Application Load Balancer (ALB) listener.'."\n",
- 'type' => 'string',
'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
- ],
- [
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
- ],
- [
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the **DryRunOperation** error code is returned.'."\n"
- .'* **false**: (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
+ 'maxItems' => 100,
+ 'minItems' => 1,
+ 'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The operation to enable a listener.'."\n",
+ 'title' => '',
+ 'description' => 'Creates multiple forwarding rules.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'],
+ 'RuleIds' => [
+ 'title' => '',
+ 'description' => 'The forwarding rules.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The forwarding rule.',
+ 'type' => 'object',
+ 'properties' => [
+ 'RuleId' => ['description' => 'The forwarding rule ID.', 'type' => 'string', 'title' => '', 'example' => 'rule-a3x3pg1yohq3lq****'],
+ 'Priority' => ['description' => 'The priority of the forwarding rule. Valid values: 1 to **10000**. A smaller value indicates a higher priority.'."\n"
+ ."\n"
+ .'> The priorities of the forwarding rules created for the same listener must be unique.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '10'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.Listener',
- 'errorMessage' => 'The specified resource of %s is being configured, please try again later.',
- ],
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'OperationDenied.GRPCServerGroup', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'Conflict.Priority', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerRulesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.RuleWildcardsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'."\n"],
+ ['errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.RuleActionsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded. Usage: %s/%s.'],
+ ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'The %s is mismatched for %s and %s.'],
+ ['errorCode' => 'Mismatch.Protocol', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'The %s is mismatched for %s and %s.'],
+ ['errorCode' => 'OperationDenied.RewriteMissingForwardGroup', 'errorMessage' => 'The operation is not allowed because of RewriteMissingForwardGroup.', 'description' => 'The operation is not allowed because rewrite is missing the forward group.'],
+ ['errorCode' => 'OperationDenied.MirrorActionSupportHttpGroupOnly', 'errorMessage' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\"\\n}","errorExample":""},{"type":"xml","example":"<StartListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</StartListenerResponse>","errorExample":""}]',
- 'title' => 'StartListener',
- 'description' => '**StartListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [GetListenerAttribute](~~2254865~~) to query the status of the task.'."\n"
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Alb::2020-06-16::ListAsynJobs', 'callbackInterval' => 1000, 'maxCallbackTimes' => 60],
+ 'title' => 'CreateRules',
+ 'description' => 'Take note of the following when you call this operation to create forwarding rules:'."\n"
."\n"
- .'* If a listener is in the **Configuring** state, the listener is being enabled.'."\n"
- .'* If a listener is in the **Running** state, the listener is enabled.'."\n",
- ],
- 'StopListener' => [
- 'summary' => 'Disables a listener.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ .'- When you configure the **Redirect** action, you must specify values for all parameters except for the **HttpCode** parameter.'."\n"
+ ."\n"
+ .'- If you configure multiple actions for a forwarding rule, the **Rewrite** action must be configured with the **ForwardGroup** action type.'."\n"
+ ."\n"
+ .'- **CreateRules** is an asynchronous operation. After a request is sent, the system returns a request ID and creates the forwarding rules in the background. You can call the [](t2324530.xdita#)operation to query the creation status of the forwarding rules:'."\n"
+ ."\n"
+ .' - If the forwarding rules are in the **Provisioning** status, they are being created.'."\n"
+ ."\n"
+ .' - If the forwarding rules are in the **Available** status, they are created.'."\n"
+ ."\n"
+ .'- A forwarding rule supports the following maximum number of conditions (**RuleConditions**) and actions (**RuleActions**):'."\n"
+ ."\n"
+ .' - Conditions: 5 for Basic Edition, 10 for Standard Edition, and 10 for WAF-enabled Edition.'."\n"
+ ."\n"
+ .' - Actions: 3 for Basic Edition, 5 for Standard Edition, and 5 for WAF-enabled Edition.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateRules',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"RuleIds\\": [\\n {\\n \\"RuleId\\": \\"rule-a3x3pg1yohq3lq****\\",\\n \\"Priority\\": 10\\n }\\n ]\\n}","type":"json"}]',
+ ],
+ 'CreateSecurityPolicy' => [
+ 'summary' => 'Creates a custom security policy in a specified region.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -5992,47 +3892,164 @@
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '172',
+ 'abilityTreeNodes' => ['FEATUREslbAYSA83'],
+ 'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
- 'name' => 'ListenerId',
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the RequestId as the ClientToken. The RequestId of each API request may be different.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'DryRun',
'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run. The system checks the required parameters, the request format, and business limits. If the request fails the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): sends a normal request. After the request passes the check, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'TLSVersions',
+ 'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '监听id',
- 'description' => 'The ID of the Application Load Balancer (ALB) listener.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The TLS protocol versions that are supported.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The TLS protocol version. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.', 'type' => 'string', 'required' => true, 'example' => 'TLSv1.0', 'title' => ''],
'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
+ 'example' => '',
],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'ResourceGroupId',
'in' => 'query',
+ 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'example' => 'rg-atstuj3rtop****', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'SecurityPolicyName',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The name of the security policy.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters in length, and can contain letters, digits, Chinese characters, periods (.), underscores (\\_), hyphens (-), and spaces. The name must start with a letter, a Chinese character, or a digit.', 'type' => 'string', 'required' => true, 'example' => 'test-secrity', 'title' => ''],
+ ],
+ [
+ 'name' => 'Ciphers',
+ 'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ 'title' => '',
+ 'description' => 'The supported cipher suites.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The supported cipher suites, which are determined by the TLS versions that you specify in the **TLSVersions** parameter.'."\n"
."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ .'A cipher suite is valid if it is supported by at least one of the specified TLS versions.'."\n"
."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
+ .'> If you specify TLSv1.3, the cipher suites that you specify must be supported by TLSv1.3.'."\n"
+ ."\n"
+ .'- Cipher suites supported by TLSv1.0 and TLSv1.1:'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES128-SHA'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES256-SHA'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES128-SHA'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES256-SHA'."\n"
+ ."\n"
+ .' - AES128-SHA'."\n"
+ ."\n"
+ .' - AES256-SHA'."\n"
+ ."\n"
+ .' - DES-CBC3-SHA'."\n"
+ ."\n"
+ .'- Cipher suites supported by TLSv1.2:'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES128-SHA'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES256-SHA'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES128-SHA'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES256-SHA'."\n"
+ ."\n"
+ .' - AES128-SHA'."\n"
+ ."\n"
+ .' - AES256-SHA'."\n"
+ ."\n"
+ .' - DES-CBC3-SHA'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES128-GCM-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES256-GCM-SHA384'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES128-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES256-SHA384'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES128-GCM-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES256-GCM-SHA384'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES128-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES256-SHA384'."\n"
+ ."\n"
+ .' - AES128-GCM-SHA256'."\n"
+ ."\n"
+ .' - AES256-GCM-SHA384'."\n"
+ ."\n"
+ .' - AES128-SHA256'."\n"
+ ."\n"
+ .' - AES256-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-RSA-CHACHA20-POLY1305'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-CHACHA20-POLY1305'."\n"
+ ."\n"
+ .'- Cipher suites supported by TLSv1.3:'."\n"
+ ."\n"
+ .' - TLS\\_AES\\_128\\_GCM\\_SHA256'."\n"
+ ."\n"
+ .' - TLS\\_AES\\_256\\_GCM\\_SHA384'."\n"
+ ."\n"
+ .' - TLS\\_CHACHA20\\_POLY1305\\_SHA256'."\n"
+ ."\n"
+ .' - TLS\\_AES\\_128\\_CCM\\_SHA256'."\n"
+ ."\n"
+ .' - TLS\\_AES\\_128\\_CCM\\_8\\_SHA256', 'type' => 'string', 'required' => true, 'example' => ' ECDHE-ECDSA-AES128-SHA', 'title' => ''],
+ 'required' => true,
+ 'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'Tag',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
+ 'description' => 'The tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A tag.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key. The key can be up to 128 characters long, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The value can be up to 128 characters long, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => false,
- 'example' => 'true',
+ 'title' => '',
+ 'example' => '',
],
],
],
@@ -6040,68 +4057,42 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The operation to disable a listener.'."\n",
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'],
+ 'SecurityPolicyId' => ['description' => 'The ID of the security policy.', 'type' => 'string', 'example' => 'sp-9cdjz6o8ha70******', 'title' => ''],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.Listener',
- 'errorMessage' => 'The specified resource of %s is being configured, please try again later.',
- ],
+ ['errorCode' => 'QuotaExceeded.SecurityPoliciesNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded. Usage: %s/%s.'],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\",\\n \\"SecurityPolicyId\\": \\"sp-9cdjz6o8ha70******\\"\\n}","type":"json"}]',
+ 'title' => 'CreateSecurityPolicy',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateSecurityPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/*'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"<StopListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</StopListenerResponse>","errorExample":""}]',
- 'title' => 'StopListener',
- 'description' => '**StopListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetListenerAttribute](~~2254865~~) operation to query the status of the task:'."\n"
- ."\n"
- .'* If a listener is in the **Configuring** state, the listener is being disabled.'."\n"
- .'* If a listener is in the **Stopped** state, the listener is disabled.'."\n",
],
- 'UpdateListenerAttribute' => [
- 'summary' => 'Updates the attributes of a listener, such as the name and the default action.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'CreateServerGroup' => [
+ 'summary' => 'Create a server group in the specified region.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -6110,645 +4101,432 @@
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
- 'abilityTreeCode' => '187',
- 'abilityTreeNodes' => [
- 'FEATUREslbM7ALO6',
- 'FEATUREslbK3ZR0L',
- 'FEATUREslbN5IE4S',
- ],
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '163',
+ 'abilityTreeNodes' => ['FEATUREslbULKWF1'],
],
'parameters' => [
[
- 'name' => 'ListenerId',
+ 'name' => 'ServerGroupName',
'in' => 'query',
- 'schema' => [
- 'title' => '监听标识',
- 'description' => 'The ID of the Application Load Balancer (ALB) instance.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
+ 'schema' => ['description' => 'The name of the server group. The name must be 2 to 128 characters in length, start with a letter, digit, or Chinese character, and can contain digits, periods (.), underscores (\\_), hyphens (-), and spaces.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'ServerGroupType',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['description' => 'The type of the server group. Valid values:'."\n"
+ ."\n"
+ .'- **Instance** (default): an instance-type server group. You can add **ECS** instances, **elastic network interfaces**, and **elastic container instances** to this type of server group.'."\n"
+ ."\n"
+ .'- **Ip**: an IP-type server group. You can add IP addresses as backend servers to this type of server group.'."\n"
+ ."\n"
+ .'- **Fc**: a function-type server group. You can add functions of Function Compute as backend servers to this type of server group.', 'type' => 'string', 'example' => 'Instance', 'title' => '', 'required' => false],
],
[
- 'name' => 'DryRun',
+ 'name' => 'VpcId',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => '', 'description' => 'The ID of the VPC where the server group is created. You can add only servers within this VPC to the server group.'."\n"
+ ."\n"
+ .'> This parameter is valid only when **ServerGroupType** is set to **Instance** or **Ip**.', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp15zdkdt37pq72zv****'],
],
[
- 'name' => 'ListenerDescription',
+ 'name' => 'Scheduler',
'in' => 'query',
- 'schema' => [
- 'title' => '监听描述',
- 'description' => 'The name of the listener.'."\n"
- ."\n"
- .'The name must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP_80',
- ],
+ 'schema' => ['description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'- **Wrr** (default): weighted round robin. Backend servers with higher weights receive more requests.'."\n"
+ ."\n"
+ .'- **Wlc**: weighted least connections. Requests are distributed based on the weight and the number of connections for each backend server. If two backend servers have the same weight, the one with fewer connections receives more requests.'."\n"
+ ."\n"
+ .'- **Sch**: consistent hashing. Routes requests with the same hash factor to the same backend server. By default, if the **UchConfig** parameter is not configured, the source IP address is used as the hash factor. If the **UchConfig** parameter is configured, a specified URL parameter is used as the hash factor.'."\n"
+ ."\n"
+ .'> This parameter is valid only when **ServerGroupType** is set to **Instance** or **Ip**.', 'type' => 'string', 'example' => 'Wrr', 'title' => '', 'required' => false],
],
[
- 'name' => 'RequestTimeout',
+ 'name' => 'Protocol',
'in' => 'query',
- 'schema' => [
- 'title' => '请求超时时间',
- 'description' => 'The timeout period of a request. Unit: seconds. Valid values: **1 to 180**.'."\n"
- ."\n"
- .'If no response is received from the backend server within the specified timeout period, ALB returns an `HTTP 504` error code to the client.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'minimum' => '1',
- 'example' => '3',
- ],
+ 'schema' => ['description' => 'The backend protocol. Valid values:'."\n"
+ ."\n"
+ .'- **HTTP** (default): The server group can be associated with HTTPS, HTTP, and QUIC listeners.'."\n"
+ ."\n"
+ .'- **HTTPS**: The server group can be associated with HTTPS listeners.'."\n"
+ ."\n"
+ .'- **gRPC**: The server group can be associated with HTTPS and QUIC listeners.'."\n"
+ ."\n"
+ .'> You do not need to configure this parameter if **ServerGroupType** is set to **Fc**.', 'type' => 'string', 'example' => 'HTTP', 'title' => '', 'required' => false],
],
[
- 'name' => 'IdleTimeout',
+ 'name' => 'ResourceGroupId',
'in' => 'query',
- 'schema' => [
- 'title' => '连接空闲超时时间',
- 'description' => 'The timeout period for idle connections. Unit: seconds. Valid values: **1 to 60**'."\n"
- ."\n"
- .'If no requests are received within the specified timeout period, ALB closes the current connection. When another request is received, ALB establishes a new connection.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'minimum' => '1',
- 'example' => '15',
- ],
+ 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'example' => 'rg-atstuj3rsop****', 'title' => '', 'required' => false],
],
[
- 'name' => 'GzipEnabled',
+ 'name' => 'HealthCheckConfig',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '是否开启Gzip压缩',
- 'description' => 'Specifies whether to enable GZIP compression for specific types of files. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
+ 'title' => '',
+ 'description' => 'The health check settings.',
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckConnectPort' => ['description' => 'The port on the backend server that is used for health checks.'."\n"
+ ."\n"
+ .'Valid values: **0** to **65535**.'."\n"
+ ."\n"
+ .'Default value: **0**. A value of 0 indicates that the backend server\'s traffic port is used for health checks.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '65535', 'minimum' => '0', 'example' => '80', 'default' => '0', 'title' => '', 'required' => false],
+ 'HealthCheckEnabled' => ['description' => 'Specifies whether to enable the health check feature. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables health checks.'."\n"
+ ."\n"
+ .'- **false**: Disables health checks.'."\n"
+ ."\n"
+ .'> If **ServerGroupType** is set to **Instance** or **Ip**, health checks are enabled by default. If **ServerGroupType** is set to **Fc**, health checks are disabled by default.', 'type' => 'boolean', 'required' => true, 'example' => 'true', 'title' => ''],
+ 'HealthCheckHost' => ['description' => 'The domain name that is used for health checks.'."\n"
+ ."\n"
+ .'- **Use the private IP address of the backend server** (default): The private IP address of a backend server is used as the host name for health checks.'."\n"
+ ."\n"
+ .'- **Specify a domain name**: Enter a specific domain name.'."\n"
+ ."\n"
+ .' - The domain name must be 1 to 80 characters in length.'."\n"
+ ."\n"
+ .' - It can contain lowercase letters, digits, hyphens (-), and periods (.).'."\n"
+ ."\n"
+ .' - It must contain at least one period (.). A period cannot be the first or last character.'."\n"
+ ."\n"
+ .' - The rightmost domain label can contain only letters and cannot contain digits or hyphens (-).'."\n"
+ ."\n"
+ .' - The domain name cannot start or end with a hyphen (-).'."\n"
+ ."\n"
+ .'> This parameter is valid only when **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'example' => 'www.example.com', 'title' => '', 'required' => false],
+ 'HealthCheckCodes' => [
+ 'title' => '',
+ 'description' => 'The HTTP status codes that indicate a successful health check.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The HTTP status code for a successful health check.'."\n"
+ ."\n"
+ .'- If **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, you can specify one or more of the following values: **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**. Separate multiple values with commas (,).'."\n"
+ ."\n"
+ .'- If **HealthCheckProtocol** is set to **gRPC**, the valid status codes are from **0** to **99**. Default value: **0**. You can specify up to 20 value ranges. Separate multiple ranges with commas (,).'."\n"
+ ."\n"
+ .'> This parameter is valid only when **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'http_2xx'],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'HealthCheckHttpVersion' => ['description' => 'The HTTP version that is used for health checks. Valid values: **HTTP1.0** and **HTTP1.1**. Default value: **HTTP1.1**.'."\n"
+ ."\n"
+ .'> This parameter is valid only when **HealthCheckProtocol** is set to **HTTP** or **HTTPS**.', 'type' => 'string', 'example' => 'HTTP1.1', 'default' => 'HTTP1.1', 'title' => '', 'required' => false],
+ 'HealthCheckInterval' => ['description' => 'The interval between health checks, in seconds.'."\n"
+ ."\n"
+ .'Valid values: **1** to **50**.'."\n"
+ ."\n"
+ .'Default value: **2**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '50', 'minimum' => '1', 'example' => '2', 'default' => '2', 'title' => '', 'required' => false],
+ 'HealthCheckMethod' => ['description' => 'The HTTP method that is used for health checks. Valid values:'."\n"
+ ."\n"
+ .'- **GET**: If the response body exceeds 8 KB, the response is truncated. This does not affect the health check result.'."\n"
+ ."\n"
+ .'- **POST**: The default method for gRPC health checks.'."\n"
+ ."\n"
+ .'- **HEAD** (default): The default method for HTTP and HTTPS health checks.'."\n"
+ ."\n"
+ .'> This parameter is valid only when **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'example' => 'HEAD', 'title' => '', 'required' => false],
+ 'HealthCheckPath' => ['description' => 'The path for health checks.'."\n"
+ ."\n"
+ .'The path must be 1 to 80 characters in length. It must start with a forward slash (/) and can contain letters, digits, and the following special characters: `-/.%?#&=` and `_;~!()*[]@$^:\',+`.'."\n"
+ ."\n"
+ .'> This parameter is valid only when **HealthCheckProtocol** is set to **HTTP** or **HTTPS**.', 'type' => 'string', 'example' => '/test/index.html', 'title' => '', 'required' => false],
+ 'HealthCheckProtocol' => ['description' => 'The protocol that is used for health checks. Valid values:'."\n"
+ ."\n"
+ .'- **HTTP**: Sends HEAD or GET requests to simulate a browser request to check whether the backend server is healthy.'."\n"
+ ."\n"
+ .'- **HTTPS**: Sends HEAD or GET requests to simulate a browser request to check whether the backend server is healthy. HTTPS provides better security because the data is encrypted.'."\n"
+ ."\n"
+ .'- **TCP**: Checks if the server port is reachable by sending SYN packets.'."\n"
+ ."\n"
+ .'- **gRPC**: Sends POST or GET requests to check whether the backend server is healthy.', 'type' => 'string', 'example' => 'HTTP', 'default' => 'HTTP', 'title' => '', 'required' => false],
+ 'HealthCheckTimeout' => ['description' => 'The timeout for a health check response, in seconds. If a backend server does not respond within this time, the health check fails.'."\n"
+ ."\n"
+ .'Valid values: **1** to **300**.'."\n"
+ ."\n"
+ .'Default value: **5**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '300', 'minimum' => '1', 'example' => '5', 'default' => '5', 'title' => '', 'required' => false],
+ 'HealthyThreshold' => ['description' => 'The number of consecutive successful health checks that an **unhealthy** backend server must pass to be considered **healthy**.'."\n"
+ ."\n"
+ .'Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'Default value: **3**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '10', 'minimum' => '2', 'example' => '3', 'default' => '3', 'title' => '', 'required' => false],
+ 'UnhealthyThreshold' => ['description' => 'The number of consecutive failed health checks that a **healthy** backend server must have to be considered **unhealthy**.'."\n"
+ ."\n"
+ .'Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'Default value: **3**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '10', 'minimum' => '2', 'example' => '3', 'default' => '3', 'title' => '', 'required' => false],
+ ],
+ 'required' => true,
+ 'example' => 'rg-123',
],
],
[
- 'name' => 'Http2Enabled',
+ 'name' => 'StickySessionConfig',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '是否开启HTTP/2特性',
- 'description' => 'Specifies whether to enable HTTP/2. Valid values:'."\n"
+ 'title' => '',
+ 'description' => 'The sticky session settings.'."\n"
."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter is available only when you create an HTTPS listener.'."\n",
- 'type' => 'boolean',
+ .'> This parameter is valid only when **ServerGroupType** is set to **Instance** or **Ip**.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Cookie' => ['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 letters and digits. It cannot contain commas (,), semicolons (;), or spaces. It cannot start with a dollar sign ($).'."\n"
+ ."\n"
+ .'> This parameter is required if **StickySessionEnabled** is set to **true** and **StickySessionType** is set to **server**.', 'type' => 'string', 'example' => 'B490B6EBF6F3CD402E515D22BCDA****', 'title' => '', 'required' => false],
+ 'CookieTimeout' => ['description' => 'The timeout period of the cookie. Unit: seconds.'."\n"
+ ."\n"
+ .'Valid values: **1** to **86400**.'."\n"
+ ."\n"
+ .'Default value: **1000**.'."\n"
+ ."\n"
+ .'> This parameter is required if **StickySessionEnabled** is set to **true** and **StickySessionType** is set to **Insert**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '86400', 'minimum' => '1', 'example' => '1000', 'default' => '1000', 'title' => '', 'required' => false],
+ 'StickySessionEnabled' => ['description' => 'Specifies whether to enable sticky sessions. Valid values:'."\n"
+ ."\n"
+ .'- **true**: enables sticky sessions.'."\n"
+ ."\n"
+ .'- **false** (default): disables sticky sessions.'."\n"
+ ."\n"
+ .'> This parameter is valid only when **ServerGroupType** is set to **Instance** or **Ip**.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
+ 'StickySessionType' => ['description' => 'The method that is used to manage cookies. Valid values:'."\n"
+ ."\n"
+ .'- **Insert** (default): Inserts a cookie. The load balancer inserts a cookie (SERVERID) into the HTTP or HTTPS response for the first request. Subsequent requests from the same client that carry this cookie are routed to the same backend server.'."\n"
+ ."\n"
+ .'- **Server**: Uses a custom cookie generated by the backend server. The load balancer relies on this cookie to route subsequent requests from the same client to the same backend server.'."\n"
+ ."\n"
+ .'> This parameter is required if **StickySessionEnabled** is set to **true**.', 'type' => 'string', 'example' => 'Insert', 'default' => 'Insert', 'title' => '', 'required' => false],
+ ],
'required' => false,
- 'example' => 'true',
+ 'example' => '',
],
],
[
- 'name' => 'SecurityPolicyId',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '安全策略',
- 'description' => 'The security policy ID. System security policies and custom security policies are supported.'."\n"
- ."\n"
- .'> This parameter is available only when you create an HTTPS listener.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'tls_cipher_policy_1_0',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotency of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the request as the **ClientToken**. The **RequestId** of each request may be different.', 'type' => 'string', 'example' => '5A2CAF0E-5718-45B5-9D4D-70B******', 'title' => '', 'required' => false],
],
[
- 'name' => 'CaEnabled',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '是否开启双向认证',
- 'description' => 'Specifies whether to enable mutual authentication. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Performs a dry run. The system validates the request for issues such as missing required parameters, incorrect syntax, and service limits, but does not create the server group. If the request is invalid, an error message is returned. If the request is valid, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): sends a normal request. If the request passes the check, an HTTP 2xx status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
],
[
- 'name' => 'XForwardedForConfig',
+ 'name' => 'Ipv6Enabled',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to enable IPv6.', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
+ ],
+ [
+ 'name' => 'UpstreamKeepaliveEnabled',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to enable upstream keep-alive.'."\n"
+ ."\n"
+ .'- **true**: enables upstream keep-alive.'."\n"
+ ."\n"
+ .'- **false** (default): disables upstream keep-alive.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ ],
+ [
+ 'name' => 'ServiceName',
+ 'in' => 'query',
+ 'schema' => ['description' => 'This parameter is available only in ALB Ingress scenarios. It specifies the name of the Kubernetes `Service` that is associated with the server group.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ ],
+ [
+ 'name' => 'UchConfig',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => 'XForward字段相关的配置',
- 'description' => 'The configurations of the X-Forwarded-For header.'."\n",
+ 'title' => '',
+ 'description' => 'The settings for URL-based consistent hashing.',
'type' => 'object',
'properties' => [
- 'XForwardedForClientCertClientVerifyAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertClientVerifyEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. The header takes effect only when you set **XForwardedForClientCertClientVerifyEnabled **to **true**.'."\n"
- ."\n"
- .'The name must be 1 to 40 characters in length. It can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
- ."\n"
- .'> This parameter is only available for HTTPS listeners.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_client-verify-alias_123456',
- ],
- 'XForwardedForClientCertClientVerifyEnabled' => [
- 'title' => '是否通过X-Forwarded-Clientcert-clientverify 头字段获取对访问负载均衡实例客户端证书的校验结果。HTTPS监听有效。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Clientcert-clientverify` header to retrieve the verification result of the client certificate. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter is only available for HTTPS listeners.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForClientCertFingerprintAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertFingerprintEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. The header takes effect only when you set **XForwardedForClientCertFingerprintEnabled** to **true**.'."\n"
- ."\n"
- .'The name must be 1 to 40 characters in length. It can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
- ."\n"
- .'> This parameter is only available for HTTPS listeners.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_finger-print-alias_123456',
- ],
- 'XForwardedForClientCertFingerprintEnabled' => [
- 'title' => '是否通过X-Forwarded-Clientcert-fingerprint 头字段获取访问负载均衡实例客户端证书的指纹取值,HTTPS监听有效。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Clientcert-fingerprint` header to retrieve the fingerprint of the client certificate. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter is only available for HTTPS listeners.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForClientCertIssuerDNAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertIssuerDNEnabled的值为‘On’的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. The header takes effect only when you set **XForwardedForClientCertIssuerDNEnabled** to **true**.'."\n"
- ."\n"
- .'The name must be 1 to 40 characters in length. It can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
- ."\n"
- .'> This parameter is only available for HTTPS listeners.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_issue-dn-alias_123456',
- ],
- 'XForwardedForClientCertIssuerDNEnabled' => [
- 'title' => '是否通过 X-Forwarded-Clientcert-issuerdn 头字段获取访问负载均衡实例客户端证书的发行者信息。HTTPS监听有效。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Clientcert-issuerdn` header to retrieve information about the authority that issues the client certificate. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter is only available for HTTPS listeners.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForClientCertSubjectDNAlias' => [
- 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertSubjectDNEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效',
- 'description' => 'The name of the custom header. This parameter is valid only if the **XForwardedForClientCertSubjectDNEnabled** parameter is set to **true**.'."\n"
- ."\n"
- .'The name must be 1 to 40 characters in length. It can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
- ."\n"
- .'> This parameter is only available for HTTPS listeners.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_subject-dn-alias_123456',
- ],
- 'XForwardedForClientCertSubjectDNEnabled' => [
- 'title' => '是否通过X-Forwarded-Clientcert-subjectdn 头字段获取访问负载均衡实例客户端证书的所有者信息。HTTPS监听有效。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Clientcert-subjectdn` header to retrieve information about the owner of the client certificate. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter is only available for HTTPS listeners.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForClientSrcPortEnabled' => [
- 'title' => '是否通过X-Forwarded-Client-Port 头字段获取访问负载均衡实例客户端的端口。HTTPS监听有效。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Client-srcport` header to retrieve the client port. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter is only available for HTTP and HTTPS listeners.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForEnabled' => [
- 'title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP',
- 'description' => 'Specifies whether to use the `X-Forwarded-For` header to retrieve the client IP address. Valid values:'."\n"
- ."\n"
- .'* **true** (default)'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> * If this parameter is set to **true**, the default value of the **XForwardedForProcessingMode** parameter is **append**. You can change it to **remove**.'."\n"
- .'> * If this parameter is set to **false**, the `X-Forwarded-For` header in the request is not modified in any way before the request is sent to backend servers.'."\n"
- .'> * This parameter is only available for HTTP and HTTPS listeners.',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- 'XForwardedForProcessingMode' => [
- 'description' => 'Specifies how the `X-Forwarded-For` header is processed. This parameter takes effect only when **XForwardedForEnabled** is set to **true**. Valid values:'."\n"
- ."\n"
- .'* **append** (default)'."\n"
- .'* **remove**'."\n"
- ."\n"
- .'> * If this parameter is set to **append**, ALB appends the IP address of the last hop to the existing `X-Forwarded-For` header in the request before the request is sent to backend servers.'."\n"
- .'> * If this parameter is set to **remove**, ALB removes the `X-Forwarded-For` header in the request before the request is sent to backend servers, no matter whether the request carries the `X-Forwarded-For` header.'."\n"
- .'> * This parameter is only available for HTTP and HTTPS listeners.',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'append',
- ],
- 'XForwardedForProtoEnabled' => [
- 'title' => '是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Proto` header to retrieve the listener protocol. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForSLBIdEnabled' => [
- 'title' => '是否通过SLB-ID头字段获取负载均衡实例ID。',
- 'description' => 'Specifies whether to use the `SLB-ID` header to retrieve the ID of the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForSLBPortEnabled' => [
- 'title' => '是否通过X-Forwarded-Port 头字段获取负载均衡实例的监听端口。HTTPS监听有效。',
- 'description' => 'Specifies whether to use the `X-Forwarded-Port` header to retrieve the listener port of the ALB instance. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForClientSourceIpsEnabled' => [
- 'description' => 'Specifies whether to use the X-Forwarded-For header to preserve client IP addresses. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter is only available for HTTP and HTTPS listeners.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'XForwardedForClientSourceIpsTrusted' => [
- 'description' => 'The trusted proxy IP address.'."\n"
- ."\n"
- .'ALB instances traverse the IP addresses in the `X-Forwarded-For` header from the rightmost IP address to the leftmost IP address. The first IP address that is not on the trusted IP address list is considered the client IP address. Requests from the client IP address are throttled.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '10.1.1.0/24',
- ],
- 'XForwardedForHostEnabled' => [
- 'description' => 'Specifies whether to use the `X-Forwarded-Host` header to retrieve the client domain name. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n"
- ."\n"
- .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'Type' => ['description' => 'The type of the parameter. Set the value to **QueryString**.', 'type' => 'string', 'required' => true, 'example' => 'QueryString', 'title' => ''],
+ 'Value' => ['description' => 'The key of the query string parameter that is used for consistent hashing.', 'type' => 'string', 'required' => true, 'example' => 'abc', 'title' => ''],
],
'required' => false,
+ 'example' => '',
],
],
[
- 'name' => 'QuicConfig',
+ 'name' => 'ConnectionDrainConfig',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => 'HTTPS启用QUIC时相关属性',
- 'description' => 'The configuration information when the listener is associated with a QUIC listener.'."\n",
+ 'description' => 'The settings for connection draining.'."\n"
+ ."\n"
+ .'If you enable connection draining, the load balancer allows existing connections to be processed for a specified period of time after a backend server is removed or becomes unhealthy.'."\n"
+ ."\n"
+ .'> - Basic ALB instances do not support connection draining. This feature is supported only by standard and WAF-enabled ALB instances.'."\n"
+ .'>'."\n"
+ .'> - Connection draining is supported for instance-type and IP-type server groups, but not for function-type server groups.',
'type' => 'object',
'properties' => [
- 'QuicListenerId' => [
- 'title' => '需要关联的QUIC监听ID,HTTPS监听时有效,QuicUpgradeEnabled为true时必选',
- 'description' => 'The QUIC listener ID. This parameter is required if **QuicUpgradeEnabled** is set to **true**. Only HTTPS listeners support this parameter.'."\n"
- ."\n"
- .'> You must add the HTTPS listener and the QUIC listener to the same ALB instance. In addition, make sure that the QUIC listener has never been associated with another listener.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'lsn-333',
- ],
- 'QuicUpgradeEnabled' => [
- 'title' => '是否开启quic升级,HTTPS监听时有效',
- 'description' => 'Specifies whether to enable QUIC upgrade. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> Only HTTPS listeners support this parameter.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'ConnectionDrainEnabled' => ['description' => 'Specifies whether to enable connection draining.'."\n"
+ ."\n"
+ .'- **true**: enables connection draining.'."\n"
+ ."\n"
+ .'- **false** (default): disables connection draining.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
+ 'ConnectionDrainTimeout' => ['description' => 'The timeout period for connection draining, in seconds.'."\n"
+ ."\n"
+ .'Valid values: **0** to **900**.'."\n"
+ ."\n"
+ .'Default value: **300**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '300', 'title' => ''],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
],
[
- 'name' => 'Certificates',
+ 'name' => 'SlowStartConfig',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '监听默认服务器证书列表,N当前取值范围为1',
- 'description' => 'The certificates. You can add at most 20 certificates.'."\n"
+ 'description' => 'The slow start settings.'."\n"
."\n"
- .'> Only server certificates are supported.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The certificate.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'CertificateId' => [
- 'title' => '正式标识',
- 'description' => 'The certificate ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '12315790212_166f8204689_1714763408_70998****',
- ],
- ],
- 'required' => false,
+ .'If you enable slow start, requests are gradually and linearly routed to a newly added backend server over a specified period of time.'."\n"
+ ."\n"
+ .'> - Basic ALB instances do not support slow start. This feature is supported only by standard and WAF-enabled ALB instances.'."\n"
+ .'>'."\n"
+ .'> - Slow start is supported for instance-type and IP-type server groups, but not for function-type server groups.'."\n"
+ .'>'."\n"
+ .'> - Slow start can be enabled only if the scheduling algorithm is set to **Wrr** (weighted round robin).',
+ 'type' => 'object',
+ 'properties' => [
+ 'SlowStartEnabled' => ['description' => 'Specifies whether to enable slow start.'."\n"
+ ."\n"
+ .'- **true**: enables slow start.'."\n"
+ ."\n"
+ .'- **false** (default): disables slow start.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
+ 'SlowStartDuration' => ['description' => 'The duration of the slow start period, in seconds.'."\n"
+ ."\n"
+ .'Valid values: **30** to **900**.'."\n"
+ ."\n"
+ .'Default value: **30**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30', 'title' => ''],
],
'required' => false,
- 'maxItems' => 2,
- 'minItems' => 1,
+ 'title' => '',
+ 'example' => '',
],
],
[
- 'name' => 'CaCertificates',
+ 'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '监听默认CA证书列表,N当前取值范围为1',
- 'description' => 'The CA certificate. You can specify only one CA certificate.'."\n",
+ 'description' => 'The tags.',
'type' => 'array',
'items' => [
- 'description' => 'The CA certificate.'."\n",
+ 'description' => 'A tag.',
'type' => 'object',
'properties' => [
- 'CertificateId' => [
- 'title' => '正式标识',
- 'description' => 'The ID of the CA certificate.'."\n"
- ."\n"
- .'> This parameter is required if **CaEnabled** is set to **true**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '123359******',
- ],
+ 'Key' => ['description' => 'The tag key. The key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https`.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
'required' => false,
- 'maxItems' => 1,
- 'minItems' => 1,
+ 'title' => '',
+ 'example' => '',
],
],
[
- 'name' => 'DefaultActions',
+ 'name' => 'CrossZoneEnabled',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '监听默认动作',
- 'description' => 'The actions of the default forwarding rule.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The action of the default forwarding rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ForwardGroupConfig' => [
- 'title' => '转发组',
- 'description' => 'The forwarding action. This parameter takes effect only when you set **Type** to **ForwardGroup**. You can specify at most 20 actions.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupTuples' => [
- 'title' => '服务器组列表',
- 'description' => 'The server groups to which requests are forwarded.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The server group to which requests are forwarded.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupId' => [
- 'title' => '服务器组ID',
- 'description' => 'The ID of the server group to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'rsp-cige6j5e7p****',
- ],
- ],
- 'required' => false,
- ],
- 'required' => true,
- ],
- ],
- 'required' => false,
- ],
- 'Type' => [
- 'title' => '动作类型',
- 'description' => 'The action type. You can specify only one type.'."\n"
- ."\n"
- .'Set the value to **ForwardGroup**, which specifies that requests are forwarded to multiple server groups.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'ForwardGroup',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
+ 'schema' => ['description' => 'Specifies whether to enable cross-zone load balancing for the server group. Valid values:'."\n"
+ ."\n"
+ .'- **true** (default): Enables cross-zone load balancing.'."\n"
+ ."\n"
+ .'- **false**: Disables cross-zone load balancing.'."\n"
+ ."\n"
+ .'> * Basic ALB instances cannot be associated with server groups for which cross-zone load balancing is disabled. This feature is supported only by standard and WAF-enabled ALB instances.'."\n"
+ .'>'."\n"
+ .'> * You can disable cross-zone load balancing for instance-type and IP-type server groups, but not for function-type server groups.'."\n"
+ .'>'."\n"
+ .'> * You cannot enable sticky sessions if you disable cross-zone load balancing.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
+ ],
+ [
+ 'name' => 'IpVersionAffinityMode',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The IP version affinity mode of the server group.', 'type' => 'string', 'example' => 'Affinity', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'title' => '',
+ 'description' => 'The data returned.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'JobId' => ['description' => 'The asynchronous task ID.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF******'],
+ 'ServerGroupId' => ['description' => 'The server group ID.', 'type' => 'string', 'example' => 'sgp-8ilqs4axp6******', 'title' => ''],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.CrossLoadBalancerQUICListener',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'ResourceAlreadyAssociated.Listener',
- 'errorMessage' => 'The specified resource %s is already associated.',
- ],
- [
- 'errorCode' => 'OperationDenied.GRPCServerGroup',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'ResourceAlreadyAssociated.Certificate',
- 'errorMessage' => 'The specified resource %s is already associated.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.SecurityPolicyAttachedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'OperationDenied.ServerGroupProtocolNotSupport',
- 'errorMessage' => 'The operation is not allowed because of ServerGroupProtocolNotSupport.',
- ],
- [
- 'errorCode' => 'UnsupportedFeature.FullTraceHttps',
- 'errorMessage' => 'The feature of FullTraceHttps is not supported for current instance.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.Listener',
- 'errorMessage' => 'The specified resource of %s is being configured, please try again later.',
- ],
- [
- 'errorCode' => 'Mismatch.VpcId',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'InvalidParameter',
- 'errorMessage' => 'Invalid parameter, please check the parameter input.',
- ],
+ ['errorCode' => 'QuotaExceeded.ServerGroupsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['errorCode' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The %s and %s are mismatched.'],
+ ['errorCode' => 'Mismatch.ServerGroupSchedulerAndSlowStartEnable', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The %s and %s are mismatched.'],
+ ['errorCode' => 'QuotaExceeded.SlowStartDuration', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['errorCode' => 'UnsupportedFeature.SlowStart', 'errorMessage' => 'The feature of %s is not supported.', 'description' => ''],
+ ['errorCode' => 'Mismatch.LoadBalancerEditionAndConnectionDrain', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The %s and %s are mismatched.'],
+ ['errorCode' => 'QuotaExceeded.ConnectionDrainTimeout', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['errorCode' => 'UnsupportedFeature.ConnectionDrain', 'errorMessage' => 'The feature of %s is not supported.', 'description' => 'The feature of %s is not supported.'],
+ ['errorCode' => 'NotExist.ResourceGroup', 'errorMessage' => 'ResourceGroup does not exist.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.VpcNotSupportIpv6', 'errorMessage' => 'The operation is not allowed because of VpcNotSupportIpv6.', 'description' => 'This operation is not allowed because the IPv6 function is not enabled for the current VPC.'],
+ ['errorCode' => 'UnsupportedFeature.FcServerGroup', 'errorMessage' => 'Server groups of type FC are not supported.', 'description' => 'Server groups of type FC are not supported'],
],
- 403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Vpc', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
- [
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.SecurityPolicy',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Certificate',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\",\\n \\"ServerGroupId\\": \\"sgp-8ilqs4axp6******\\"\\n}","type":"json"}]',
+ 'title' => 'CreateServerGroup',
+ 'description' => 'The **CreateServerGroup** API is asynchronous. After you send a request, the system returns a request ID but the server group is still being created in the background. You can call the [ListServerGroups](~~213627~~) operation to query the status of the server group.'."\n"
+ ."\n"
+ .'- If the server group is in the **Creating** state, it is being created.'."\n"
+ ."\n"
+ .'- If the server group is in the **Available** state, it is created.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'alb:ServerGroupProtocol', 'validationType' => 'always'],
+ ],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/*'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateListenerAttributeResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</UpdateListenerAttributeResponse>","errorExample":""}]',
- 'title' => 'UpdateListenerAttribute',
- 'description' => '**UpdateListenerAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetListenerAttribute](~~2254865~~) operation to query the status of the task.'."\n"
- ."\n"
- .'* If a listener is in the **Configuring** state, the configuration of the listener is being modified.'."\n"
- .'* If a listener is in the **Running** state, the configuration of the listener is modified.'."\n",
],
- 'UpdateListenerLogConfig' => [
- 'summary' => 'Updates the log configuration of a listener, such as the access log configuration.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'DeleteAScripts' => [
+ 'summary' => 'Deletes AScript rules.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -6756,110 +4534,39 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
- 'name' => 'ListenerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '监听标识',
- 'description' => 'The ID of the Application Load Balancer (ALB) listener.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
- ],
- [
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.', 'type' => 'string', 'example' => 'f516e84e-fc0c-4c2d-a461-6cd77******', 'title' => '', 'required' => false],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false**: (default): performs a dry run and performs the actual request. If the request passes the dry run, a **2xx HTTP** status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false**(default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
],
[
- 'name' => 'AccessLogRecordCustomizedHeadersEnabled',
+ 'name' => 'AScriptIds',
'in' => 'query',
+ 'style' => 'repeatList',
'schema' => [
- 'title' => '是否开启携带自定义Header',
- 'description' => 'Specifies whether to record custom headers in the access log. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n"
+ 'title' => '',
+ 'description' => 'The AScript rule IDs.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The AScript rule ID.'."\n"
."\n"
- .'> You can set this parameter to **true** only if the access log feature is enabled by specifying **AccessLogEnabled**.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- ],
- [
- 'name' => 'AccessLogTracingConfig',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '访问日志xtrace字段相关的配置',
- 'description' => 'The configuration information about the Xtrace feature.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'TracingEnabled' => [
- 'title' => 'Xtrace功能状态',
- 'description' => 'Specifies whether to enable the Xtrace feature. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n"
- ."\n"
- .'> You can set this parameter to **true** only if the access log feature is enabled by specifying **AccessLogEnabled**.'."\n",
- 'type' => 'boolean',
- 'required' => true,
- 'example' => 'true',
- ],
- 'TracingSample' => [
- 'title' => 'xtrace的采样率',
- 'description' => 'The sampling rate of the Xtrace feature.'."\n"
- ."\n"
- .'Valid values: **1 to 10000**.'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **TracingEnabled** to **true**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '100',
- ],
- 'TracingType' => [
- 'title' => 'xtrace的类型',
- 'description' => 'The type of Xtrace. Set the value to **Zipkin**.'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **TracingEnabled** to **true**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Zipkin',
- ],
- ],
- 'required' => false,
+ .'You can delete up to four AScript rules at a time.', 'type' => 'string', 'required' => true, 'example' => 'as-59hl7uu******', 'title' => ''],
+ 'required' => true,
+ 'maxItems' => 10,
+ 'minItems' => 1,
+ 'example' => '',
],
],
],
@@ -6867,462 +4574,134 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The operation to update the configuration of a listener.'."\n",
+ 'description' => 'The AScript rules that are deleted.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'JobId' => ['description' => 'The asynchronous task ID.', 'type' => 'string', 'title' => '', 'example' => '03cf3fe1-ab37-479b-92a6-b481d762****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '1B7B7695-3596-50C8-B739-030C******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
- 'errorMessage' => 'The business status of %s [%s]  is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.AccessLogDisabled',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.Listener',
- 'errorMessage' => 'The specified resource of %s is being configured, please try again later.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.AScript', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.CrossListenerAScripts', 'errorMessage' => 'The operation is not allowed because of %s', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateListenerLogConfigResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</UpdateListenerLogConfigResponse>","errorExample":""}]',
- 'title' => 'UpdateListenerLogConfig',
- 'description' => '**UpdateListenerLogConfig** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [GetListenerAttribute](~~2254865~~) to query the status of the task:'."\n"
+ 'title' => 'DeleteAScripts',
+ 'description' => '**DeleteAScripts** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAScripts](~~472574~~) operation to query the status of the task:'."\n"
."\n"
- .'* If a listener is in the **Configuring** state, the log configuration of the listener is being modified.'."\n"
- .'* If a listener is in the **Running** state, the log configuration of the listener is modified.'."\n"
+ .'- If an AScript rule is in the **Deleting** state, the AScript rule is being deleted.'."\n"
."\n"
- .'> You can update the log configuration of a listener only after you enable the access log feature.'."\n",
- ],
- 'GetListenerHealthStatus' => [
- 'summary' => 'Queries the health check status of a listener and its forwarding rules.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ .'- If an AScript rule cannot be found, the AScript rule is deleted.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteAScripts',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"03cf3fe1-ab37-479b-92a6-b481d762****\\",\\n \\"RequestId\\": \\"1B7B7695-3596-50C8-B739-030C******\\"\\n}","type":"json"}]',
+ ],
+ 'DeleteAcl' => [
+ 'summary' => 'Deletes an access control list (ACL).',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
+ 'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
- 'name' => 'ListenerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '监听Id',
- 'description' => 'The listener ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
- ],
- [
- 'name' => 'IncludeRule',
+ 'name' => 'AclId',
'in' => 'query',
- 'schema' => [
- 'title' => '是否包含转发规则健康检查结果',
- 'description' => 'Specifies whether to return the health check results of forwarding rules. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'The ID of the ACL.', 'type' => 'string', 'required' => true, 'example' => 'acl-hp34s2h0xx1ht4nwo****', 'title' => ''],
],
[
- 'name' => 'NextToken',
+ 'name' => 'ClientToken',
'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 next queries are to be sent, ignore this parameter.'."\n"
- .'* If a next query is to be sent, set the value to the value of **NextToken** that is returned from the last call.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******'],
],
[
- 'name' => 'MaxResults',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries to return on each page. Valid values: **1** to **30**. Default value: **20**.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'required' => false,
- 'example' => '20',
- ],
+ 'schema' => ['title' => 'DryRun', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The health check status of the listener and its forwarding rules.'."\n",
+ 'description' => 'The operation to delete an ACL.',
'type' => 'object',
'properties' => [
- 'ListenerHealthStatus' => [
- 'title' => '监听健康检查结果',
- 'description' => 'The health check status of the server groups associated with the listener.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The health check status of the server group associated with the listener.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ListenerId' => [
- 'title' => '监听Id',
- 'description' => 'The listener ID.'."\n",
- 'type' => 'string',
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
- 'ListenerPort' => [
- 'title' => '监听的端口号',
- 'description' => 'The listener port.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '80',
- ],
- 'ListenerProtocol' => [
- 'title' => '监听的协议',
- 'description' => 'The listener protocol.'."\n",
- 'type' => 'string',
- 'example' => 'http',
- ],
- 'ServerGroupInfos' => [
- 'title' => '服务器组健康检查结果',
- 'description' => 'The information about the server group.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information about the server group.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'HealthCheckEnabled' => [
- 'title' => '健康检查开启/关闭',
- 'description' => 'Indicates whether health checks are enabled. If **on** is returned, it indicates that health checks are enabled.'."\n",
- 'type' => 'string',
- 'example' => 'on',
- ],
- 'NonNormalServers' => [
- 'title' => '处于非正常状态的后端服务器',
- 'description' => 'A list of unhealthy backend servers.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'A list of unhealthy backend servers.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Port' => [
- 'title' => '后端服务器端口',
- 'description' => 'The backend port.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '90',
- ],
- 'Reason' => [
- 'title' => 'status为非正常状态时的详细异常原因',
- 'description' => 'The cause for the unhealthy state of the backend servers.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ActualResponse' => [
- 'title' => '后端实际的返回码信息',
- 'description' => 'The HTTP status code returned from the server, for example, **302**.'."\n"
- ."\n"
- .'> A value is returned only if `ReasonCode` is set to **RESPONSE_MISMATCH**.'."\n",
- 'type' => 'string',
- 'example' => '302',
- ],
- 'ExpectedResponse' => [
- 'title' => '用户预期的后端返回码信息',
- 'description' => 'The HTTP status code returned after backend servers pass health checks.'."\n"
- ."\n"
- .'Valid values: **HTTP\\_2xx**, **HTTP\\_3xx**, **HTTP\\_4xx**, and **HTTP\\_5xx**. Multiple status codes are separated by commas (,).'."\n"
- ."\n"
- .'> This value is returned only if **ReasonCode** is set to **RESPONSE_MISMATCH**.'."\n",
- 'type' => 'string',
- 'example' => 'HTTP_2xx',
- ],
- 'ReasonCode' => [
- 'title' => '失败reasonCode',
- 'description' => 'The reason why the value of **Status** is Unhealthy. Only HTTP and HTTPS listeners support this parameter.'."\n"
- ."\n"
- .'* **CONNECT_TIMEOUT**: ALB failed to connect to the backend server within the specified period of time.'."\n"
- .'* **CONNECT_FAILED**: ALB failed to connect to the backend server.'."\n"
- .'* **RECV_RESPONSE_FAILED**: ALB failed to receive a response from the backend server.'."\n"
- .'* **RECV_RESPONSE_TIMEOUT**: ALB failed to receive a response from the backend server within the specified period of time.'."\n"
- .'* **SEND_REQUEST_FAILED**: ALB failed to send a request to the backend server.'."\n"
- .'* **SEND_REQUEST_TIMEOUT**: ALB failed to send a request to the backend server within the specified period of time.'."\n"
- .'* **RESPONSE_FORMAT_ERROR**: The format of the response from the backend server is invalid.'."\n"
- .'* **RESPONSE_MISMATCH**: The HTTP status code returned from the backend server is not the expected one.'."\n",
- 'type' => 'string',
- 'example' => 'RESPONSE_MISMATCH',
- ],
- ],
- ],
- 'ServerId' => [
- 'title' => '后端服务器id',
- 'description' => 'The ID of the backend server.'."\n",
- 'type' => 'string',
- 'example' => 'rg-bp1bfa08ex*****',
- ],
- 'ServerIp' => [
- 'title' => '后端服务器Ip',
- 'description' => 'The IP address of the backend server.'."\n",
- 'type' => 'string',
- 'example' => '192.168.8.10',
- ],
- 'Status' => [
- 'title' => '健康检查状态',
- 'description' => 'The status of the health check. Valid values: Valid values:'."\n"
- ."\n"
- .'* **Initial**: indicates that health checks are configured for the NLB instance, but no data was found.'."\n"
- .'* **Unhealthy**: indicates that the backend server consecutively fails health checks.'."\n"
- .'* **Unused**: indicates that the weight of the backend server is 0.'."\n"
- .'* **Unavailable**: indicates that health checks are disabled.'."\n",
- 'type' => 'string',
- 'example' => 'Initial',
- ],
- ],
- ],
- ],
- 'ServerGroupId' => [
- 'title' => '服务器组ID',
- 'description' => 'The ID of the server group that is associated with the listener.'."\n",
- 'type' => 'string',
- 'example' => 'vsp-bp1qjwo61pqz3ahltv****',
- ],
- 'ActionType' => [
- 'title' => '服务器组使用类型',
- 'description' => 'The action specified for the server group. Valid values:'."\n"
- ."\n"
- .'* **ForwardGroup**: distributes requests to server groups.'."\n"
- .'* **TrafficMirror**: mirrors requests to server groups.'."\n",
- 'type' => 'string',
- 'example' => 'TrafficMirror',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- 'RequestId' => [
- 'title' => '请求Id',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
- 'RuleHealthStatus' => [
- 'title' => '转发规则健康检查结果',
- 'description' => 'The health check status of the forwarding rules.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The health check status of the forwarding rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'RuleId' => [
- 'title' => '转发规则ID',
- 'description' => 'The ID of the forwarding rule.'."\n",
- 'type' => 'string',
- 'example' => 'rule-hp34s2h0xx1ht4nwo****',
- ],
- 'ServerGroupInfos' => [
- 'title' => '服务器组健康检查结果',
- 'description' => 'The server groups.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The configurations of the server groups.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'HealthCheckEnabled' => [
- 'title' => '健康检查开启/关闭',
- 'description' => 'Indicates whether health checks are enabled. If **on** is returned, it indicates that health checks are enabled.'."\n",
- 'type' => 'string',
- 'example' => 'on',
- ],
- 'NonNormalServers' => [
- 'title' => '处于非正常状态的后端服务器',
- 'description' => 'A list of unhealthy backend servers.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'A list of unhealthy backend servers.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Port' => [
- 'title' => '后端服务器端口',
- 'description' => 'The backend port.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '90',
- ],
- 'Reason' => [
- 'title' => 'status为非正常状态时的详细异常原因',
- 'description' => 'The cause for the unhealthy state of the backend servers.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ActualResponse' => [
- 'title' => '后端实际的返回码信息',
- 'description' => 'The HTTP status code returned from the server, for example, **302**.'."\n"
- ."\n"
- .'> A value is returned only if **ReasonCode** is set to **RESPONSE_MISMATCH**.'."\n",
- 'type' => 'string',
- 'example' => '302',
- ],
- 'ExpectedResponse' => [
- 'title' => '用户预期的后端返回码信息',
- 'description' => 'The HTTP status code returned after backend servers pass health checks.'."\n"
- ."\n"
- .'Valid values: **HTTP\\_2xx**, **HTTP\\_3xx**, **HTTP\\_4xx**, and **HTTP\\_5xx**. Multiple status codes are separated by commas (,).'."\n"
- ."\n"
- .'> A value is returned only if **ReasonCode** is set to **RESPONSE_MISMATCH**.'."\n",
- 'type' => 'string',
- 'example' => 'HTTP_2xx',
- ],
- 'ReasonCode' => [
- 'title' => '失败reasonCode',
- 'description' => 'The reason why the value of **Status** is Unhealthy. Only forwarding rules for HTTP and HTTPS listeners support this parameter.'."\n"
- ."\n"
- .'* **CONNECT_TIMEOUT**: ALB failed to connect to the backend server within the specified period of time.'."\n"
- .'* **CONNECT_FAILED**: ALB failed to connect to the backend server.'."\n"
- .'* **RECV_RESPONSE_FAILED**: ALB failed to receive a response from the backend server.'."\n"
- .'* **RECV_RESPONSE_TIMEOUT**: ALB failed to receive a response from the backend server within the specified period of time.'."\n"
- .'* **SEND_REQUEST_FAILED**: ALB failed to send a request to the backend server.'."\n"
- .'* **SEND_REQUEST_TIMEOUT**: ALB failed to send a request to the backend server within the specified period of time.'."\n"
- .'* **RESPONSE_FORMAT_ERROR**: The format of the response from the backend server is invalid.'."\n"
- .'* **RESPONSE_MISMATCH**: The HTTP status code returned from the backend server is not the expected one.'."\n",
- 'type' => 'string',
- 'example' => 'RESPONSE_MISMATCH',
- ],
- ],
- ],
- 'ServerId' => [
- 'title' => '后端服务器Id',
- 'description' => 'The ID of the backend server.'."\n",
- 'type' => 'string',
- 'example' => 'rg-bp1bfa08ex****',
- ],
- 'ServerIp' => [
- 'title' => '后端服务器ID',
- 'description' => 'The IP address of the server group.'."\n",
- 'type' => 'string',
- 'example' => '192.168.2.11',
- ],
- 'Status' => [
- 'title' => '健康检查状态',
- 'description' => 'The status of the health check. Valid values: Valid values:'."\n"
- ."\n"
- .'* **Initial**: indicates that health checks are configured for the NLB instance, but no data was found.'."\n"
- .'* **Unhealthy**: indicates that the backend server consecutively fails health checks.'."\n"
- .'* **Unused**: indicates that the weight of the backend server is 0.'."\n"
- .'* **Unavailable**: indicates that health checks are disabled.'."\n",
- 'type' => 'string',
- 'example' => 'Initial',
- ],
- ],
- ],
- ],
- 'ServerGroupId' => [
- 'title' => '服务器组ID',
- 'description' => 'The ID of the server group that is associated with the listener.'."\n",
- 'type' => 'string',
- 'example' => 'vsp-bp1qjwo61pqz3ahlt****',
- ],
- 'ActionType' => [
- 'title' => '服务器组使用类型',
- 'description' => 'The action specified for the server group.'."\n",
- 'type' => 'string',
- 'example' => 'TrafficMirror',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- 'NextToken' => [
- 'title' => '下一页标识',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If **NextToken** was returned in the previous query, specify the value to obtain the next set of results.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
+ 'JobId' => ['description' => 'The asynchronous task ID.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'ResourceInUse.Acl', 'errorMessage' => 'The specified resource %s is in use.', 'description' => 'The specified resource %s is in use.'],
+ ['errorCode' => 'IncorrectStatus.Acl', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ],
403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
],
[
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'title' => 'DeleteAcl',
+ 'description' => '**DeleteAcl** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAcls](~~213617~~) operation to query the status of the task.'."\n"
+ ."\n"
+ .'- If the ACL is in the **Deleting** state, the ACL is being deleted.'."\n"
+ ."\n"
+ .'- If the ACL cannot be found, the ACL is deleted.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteAcl',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"ListenerHealthStatus\\": [\\n {\\n \\"ListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"http\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HealthCheckEnabled\\": \\"on\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Port\\": 90,\\n \\"Reason\\": {\\n \\"ActualResponse\\": \\"302\\",\\n \\"ExpectedResponse\\": \\"HTTP_2xx\\",\\n \\"ReasonCode\\": \\"RESPONSE_MISMATCH\\"\\n },\\n \\"ServerId\\": \\"i-uf62h8v******\\",\\n \\"ServerIp\\": \\"192.168.8.10\\",\\n \\"Status\\": \\"Initial\\"\\n }\\n ],\\n \\"ServerGroupId\\": \\"sgp-8ilqs4axp6******\\",\\n \\"ActionType\\": \\"TrafficMirror\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876F******\\",\\n \\"RuleHealthStatus\\": [\\n {\\n \\"RuleId\\": \\"rule-hp34s2h0xx1ht4nwo****\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HealthCheckEnabled\\": \\"on\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Port\\": 90,\\n \\"Reason\\": {\\n \\"ActualResponse\\": \\"302\\",\\n \\"ExpectedResponse\\": \\"HTTP_2xx\\",\\n \\"ReasonCode\\": \\"RESPONSE_MISMATCH\\"\\n },\\n \\"ServerId\\": \\"i-uf62h8v******\\",\\n \\"ServerIp\\": \\"192.168.2.11\\",\\n \\"Status\\": \\"Initial\\"\\n }\\n ],\\n \\"ServerGroupId\\": \\"sgp-8ilqs4axp6******\\",\\n \\"ActionType\\": \\"TrafficMirror\\"\\n }\\n ]\\n }\\n ],\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\"\\n}","errorExample":""},{"type":"xml","example":"<GetListenerHealthStatusResponse>\\n <ListenerHealthStatus>\\n <ListenerId>lsr-bp1bpn0kn908w4nbw****</ListenerId>\\n <ListenerPort>80</ListenerPort>\\n <ListenerProtocol>http</ListenerProtocol>\\n <ServerGroupInfos>\\n <HealthCheckEnabled>on</HealthCheckEnabled>\\n <NonNormalServers>\\n <Port>90</Port>\\n <Reason>\\n <ActualResponse>302</ActualResponse>\\n <ExpectedResponse>HTTP_2xx</ExpectedResponse>\\n <ReasonCode>RESPONSE_MISMATCH</ReasonCode>\\n </Reason>\\n <ServerId>rg-bp1bfa08ex*****</ServerId>\\n <ServerIp>192.168.8.10</ServerIp>\\n <Status>Initial</Status>\\n </NonNormalServers>\\n <ServerGroupId>vsp-bp1qjwo61pqz3ahltv****</ServerGroupId>\\n <ActionType>TrafficMirror</ActionType>\\n </ServerGroupInfos>\\n </ListenerHealthStatus>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <RuleHealthStatus>\\n <RuleId>rule-hp34s2h0xx1ht4nwo****</RuleId>\\n <ServerGroupInfos>\\n <HealthCheckEnabled>on</HealthCheckEnabled>\\n <NonNormalServers>\\n <Port>90</Port>\\n <Reason>\\n <ActualResponse>302</ActualResponse>\\n <ExpectedResponse>HTTP_2xx</ExpectedResponse>\\n <ReasonCode>RESPONSE_MISMATCH</ReasonCode>\\n </Reason>\\n <ServerId>rg-bp1bfa08ex****</ServerId>\\n <ServerIp>192.168.2.11</ServerIp>\\n <Status>Initial</Status>\\n </NonNormalServers>\\n <ServerGroupId>vsp-bp1qjwo61pqz3ahlt****</ServerGroupId>\\n <ActionType>TrafficMirror</ActionType>\\n </ServerGroupInfos>\\n </RuleHealthStatus>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n</GetListenerHealthStatusResponse>","errorExample":""}]',
- 'title' => 'GetListenerHealthStatus',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\"\\n}","type":"json"}]',
],
- 'AddServersToServerGroup' => [
- 'summary' => 'Adds backend servers to a server group.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'DeleteHealthCheckTemplates' => [
+ 'summary' => 'Deletes health check templates.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -7330,298 +4709,162 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeNodes' => [
- 'FEATUREslbULKWF1',
- ],
- ],
+ 'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
- 'name' => 'ServerGroupId',
+ 'name' => 'HealthCheckTemplateIds',
'in' => 'query',
- 'schema' => [
- 'title' => '后端服务器Id',
- 'description' => 'The server group ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'sgp-atstuj3rtop****',
- ],
- ],
- [
- 'name' => 'Servers',
- 'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'title' => '后端服务器列表',
- 'description' => 'The backend servers. You can specify at most 200 servers in each call.'."\n",
+ 'title' => '',
+ 'description' => 'The IDs of health check templates. You can specify at most 10 IDs.',
'type' => 'array',
- 'items' => [
- 'description' => 'The configurations of the backend server.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Description' => [
- 'title' => '描述信息',
- 'description' => 'The description of the backend server. The description must be 2 to 256 characters in length and cannot start with http:// or https://.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Port' => [
- 'title' => '后端端口号',
- 'description' => 'The port that is used by the backend server. Valid values: **1** to **65535**. You can specify at most 200 servers in each call.'."\n"
- ."\n"
- .'> This parameter is required if you set **ServerType** to **Ecs**, **Eni**, **Eci**, or **Ip**. You do not need to set this parameter if **ServerType** is set to **Fc**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'docRequired' => false,
- 'example' => '80',
- ],
- 'ServerId' => [
- 'title' => '后端服务器id',
- 'description' => 'The ID of the server group. You can specify at most 200 servers in each call.'."\n"
- ."\n"
- .'* If the server group is of the **Instance** type, set ServerId to the ID of a resource of the **Ecs**, **Eni**, or **Eci** type.'."\n"
- .'* If the server group is of the **Ip** type, set this parameter to IP addresses.'."\n"
- .'* If the server group is of the **Fc** type, set ServerId to an Alibaba Cloud Resource Name (ARN).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'ecs-bp67acfmxazb4p****',
- ],
- 'ServerIp' => [
- 'title' => '后端服务器ip',
- 'description' => 'The IP address of the backend server. You can specify at most 200 servers in each call.'."\n"
- ."\n"
- .'> You do not need to set this parameter if you set **ServerType** to **Fc**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.1.1',
- ],
- 'ServerType' => [
- 'title' => '后端服务器类型',
- 'description' => 'The type of the backend server. You can specify at most 200 servers in each call. Default values:'."\n"
- ."\n"
- .'* **Ecs**: Elastic Compute Service (ECS) instance'."\n"
- .'* **Eni**: elastic network interface (ENI)'."\n"
- .'* **Eci**: elastic container instance'."\n"
- .'* **Ip**: IP address'."\n"
- .'* **Fc**: Function Compute'."\n",
- 'type' => 'string',
- 'required' => true,
- 'docRequired' => true,
- 'example' => 'Ecs',
- ],
- 'Weight' => [
- 'title' => '后端服务器权重',
- 'description' => 'The weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If the value is set to **0**, no requests are forwarded to the server. You can specify at most 200 servers in each call.'."\n"
- ."\n"
- .'> You do not need to set this parameter if you set **ServerType** to **Fc**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '100',
- ],
- 'RemoteIpEnabled' => [
- 'title' => '是否是远端ip',
- 'description' => 'Specifies whether to enable the remote IP feature. You can specify at most 200 servers in each call. Default values:'."\n"
- ."\n"
- .'* **true**: enables the feature.'."\n"
- .'* **false**: disables the feature.'."\n"
- ."\n"
- .'> This parameter takes effect only when **ServerType** is set to **Ip**.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- ],
- 'required' => false,
- 'title' => '后端服务器',
- ],
+ 'items' => ['description' => 'Delete specified health check templates.', 'type' => 'string', 'required' => false, 'example' => 'hct-bp1qjwo61pqz3ahltv****', 'title' => ''],
'required' => true,
- 'maxItems' => 200,
+ 'example' => 'acl-123',
+ 'maxItems' => 10,
'minItems' => 1,
],
],
[
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等Token',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must ensure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******'],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => 'dryRun',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: prechecks the request, but does not add a backend server to a server group. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => 'dryRun', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a **2xx HTTP** status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The health check templates deleted.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The ID of the asynchronous job.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.ServerGroup',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'Conflict.BackendServer',
- 'errorMessage' => 'There is already %s having the same configuration with %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.VpcVportNotFound',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.Eni',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceInUse.IP',
- 'errorMessage' => 'The specified resource %s is in use.',
- ],
- [
- 'errorCode' => 'OperationDenied.NoAvailableVSwitch',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.VgwVipNotFound',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.CloudBox',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'Mismatch.Type',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'Mismatch.VpcId',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring',
- 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.',
- ],
- [
- 'errorCode' => 'DuplicatedParam.BackendServer',
- 'errorMessage' => 'The param of %s is duplicated.',
- ],
- [
- 'errorCode' => 'OperationDenied.EciNotSupportJobType',
- 'errorMessage' => 'The operation is not allowed because of eci not support job type.',
- ],
- [
- 'errorCode' => 'IllegalParam.ServerIp',
- 'errorMessage' => 'The param of ServerIp is illegal.',
- ],
- [
- 'errorCode' => 'Mismatch.ServerType',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
+ ['errorCode' => 'IncorrectStatus.HealthCheckTemplate', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
+ ],
+ ],
+ 'title' => 'DeleteHealthCheckTemplates',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteHealthCheckTemplates',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#HealthCheckTemplatesId}'],
+ ],
],
- [
- 'errorCode' => 'ServiceUnavailable',
- 'errorMessage' => 'The request has failed due to a temporary failure of the server.',
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","type":"json"}]',
+ ],
+ 'DeleteListener' => [
+ 'summary' => 'Deletes a listener.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'delete'],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerId',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The ID of the Application Load Balancer (ALB) listener.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******'],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false**: (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The operation to delete a listener.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => ['title' => '', 'description' => 'The asynchronous task ID.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'],
+ ],
+ 'example' => '',
],
],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'ResourceInUse.Listener', 'errorMessage' => 'The specified resource %s is in use.', 'description' => 'The specified resource %s is in use.'],
+ ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource is being configured, please try again later.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ],
403 => [
- [
- 'errorCode' => 'Forbidden.ServerGroup',
- 'errorMessage' => 'Authentication has failed for ServerGroup.',
- ],
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
],
[
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Ecs',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Eci',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Eni',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified resource of %s is not found.'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","errorExample":""},{"type":"xml","example":"<AddServersToServerGroupResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</AddServersToServerGroupResponse>","errorExample":""}]',
- 'title' => 'AddServersToServerGroup',
- 'description' => '**AddServersToServerGroup** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background.'."\n"
- ."\n"
- .'1. You can call the [ListServerGroups](~~213627~~) operation to query the status of a server group.'."\n"
- ."\n"
- .'* If a server group is in the **Configuring** state, it indicates that the server group is being modified.'."\n"
- .'* If a server group is in the **Available** state, it indicates that the server group is running.'."\n"
- ."\n"
- .'2. You can call the [ListServerGroupServers](~~213628~~) operation to query the status of a backend server.'."\n"
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</DeleteListenerResponse>","errorExample":""}]',
+ 'title' => 'DeleteListener',
+ 'description' => '**DeleteListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [GetListenerAttribute](~~2254865~~) to query the status of the task.'."\n"
."\n"
- .'* If a backend server is in the **Adding** state, it indicates that the backend server is being added to a server group.'."\n"
- .'* If a backend server is in the **Available** state, it indicates that the server is running.',
- ],
- 'CreateServerGroup' => [
- 'summary' => 'Creates a server group in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ .'* If the listener is in the **Deleting** state, the listener is being deleted.'."\n"
+ .'* If the listener cannot be found, the listener is deleted.'."\n",
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
],
+ ],
+ 'DeleteLoadBalancer' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -7630,558 +4873,316 @@
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'create',
+ 'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '163',
- 'abilityTreeNodes' => [
- 'FEATUREslbULKWF1',
- ],
+ 'abilityTreeNodes' => ['FEATUREslbM7ALO6'],
],
'parameters' => [
[
- 'name' => 'ServerGroupName',
+ 'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => '服务器组名称',
- 'description' => 'The name of the server group. 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,
- 'example' => 'sg-atstuj3rtoptyui****',
- ],
+ 'schema' => ['description' => 'The ID of the Application Load Balancer instance.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'alb-o9ulmq5hgn68jk****'],
],
[
- 'name' => 'ServerGroupType',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '服务器组类型',
- 'description' => 'The type of server group. Valid values:'."\n"
- ."\n"
- .'* **Instance** (default): allows you to add servers by specifying **Ecs**, **Eni**, or **Eci**.'."\n"
- .'* **Ip**: allows you to add servers by specifying IP addresses.'."\n"
- .'* **Fc**: allows you to add servers by specifying functions of Function Compute.',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Instance',
- ],
+ 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can generate a token by using your client. The token must be unique across requests and contain only ASCII characters.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => '', 'required' => false],
],
[
- 'name' => 'VpcId',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => 'VpcId',
- 'description' => 'The ID of the virtual private cloud (VPC). You can add only servers that are deployed in the specified VPC to the server group.'."\n"
- ."\n"
- .'> This parameter takes effect when the **ServerGroupType** parameter is set to **Instance** or **Ip**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'vpc-bp15zckdt37pq72zv****',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Performs a dry run to check the request\'s validity without deleting the Application Load Balancer instance. The system checks the required parameters, request format, and service limits. If the request fails the dry run, an error is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): sends a normal request. After the request passes the check, an `HTTP 2xx` status code is returned and the instance is deleted.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
[
- 'name' => 'Scheduler',
+ 'name' => 'RetainResourceType',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '调度策略',
- 'description' => 'The scheduling algorithm. Valid values:'."\n"
- ."\n"
- .'* **Wrr** (default): The weighted round-robin algorithm is used. Backend servers that have higher weights receive more requests than those that have lower weights.'."\n"
- .'* **Wlc**: The weighted least connections algorithm is used. Requests are distributed based on the weights and the number of connections to backend servers. If two backend servers have the same weight, the backend server that has fewer connections is expected to receive more requests.'."\n"
- .'* **Sch**: The consistent hashing algorithm is used. Requests from the same source IP address are distributed to the same backend server.'."\n"
- ."\n"
- .'> This parameter takes effect when the **ServerGroupType** parameter is set to **Instance** or **Ip**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Wrr',
+ 'type' => 'array',
+ 'items' => ['type' => 'string', 'example' => 'eip', 'description' => '', 'title' => ''],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
],
],
- [
- 'name' => 'Protocol',
- 'in' => 'query',
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '后端协议类型',
- 'description' => 'The backend protocol. Valid values:'."\n"
- ."\n"
- .'* **HTTP**: allows you to associate an HTTPS, HTTP, or QUIC listener with the server group. This is the default value.'."\n"
- .'* **HTTPS**: allows you to associate HTTPS listeners with backend servers.'."\n"
- .'* **gRPC**: allows you to associate an HTTPS or QUIC listener with the server group.'."\n"
- ."\n"
- .'> You do not need to specify a backend protocol if you set **ServerGroupType** to **Fc**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP',
+ 'title' => 'Schema of Response',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => ['description' => 'The asynchronous task ID.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'],
+ ],
+ 'example' => '',
],
],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'OperationDenied.DeletionProtectionEnabled', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ],
+ 403 => [
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication has failed for LoadBalancer.', 'description' => ''],
+ ],
[
- 'name' => 'ResourceGroupId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '资源组id',
- 'description' => 'The ID of the resource group.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-atstuj3rtop****',
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'title' => 'DeleteLoadBalancer',
+ 'summary' => 'Deletes the specified load balancer instance.',
+ 'description' => '**DeleteLoadBalancer** is an asynchronous operation. After you send a request, the system returns a request ID, but the instance is not deleted immediately. The system deletes the instance in the background. You can call [GetLoadBalancerAttribute](~~214362~~) to check the deletion status of the Application Load Balancer instance:'."\n"
+ ."\n"
+ .'- If the Application Load Balancer instance is in the **Deleting** state, the instance is being deleted.'."\n"
+ ."\n"
+ .'- If the Application Load Balancer instance cannot be found, the instance has been deleted.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteLoadBalancer',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]',
+ ],
+ 'DeleteRule' => [
+ 'summary' => 'Deletes a forwarding rule.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'HealthCheckConfig',
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'delete'],
+ 'parameters' => [
+ [
+ 'name' => 'ClientToken',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '健康检查配置',
- 'description' => 'The configuration of the health check feature.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'HealthCheckConnectPort' => [
- 'title' => '健康检查端口',
- 'description' => 'The backend port that is used for health checks.'."\n"
- ."\n"
- .'Valid values: **0** to **65535**'."\n"
- ."\n"
- .'The default value is **0**, which specifies that the port of a backend server is used for health checks.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '65535',
- 'minimum' => '0',
- 'example' => '80',
- 'default' => '0',
- ],
- 'HealthCheckEnabled' => [
- 'title' => '是否启用健康检查',
- 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> If the **ServerGroupType** parameter is set to **Instance** or **Ip**, the health check feature is enabled by default. If the **ServerGroupType** parameter is set to **Fc**, the health check feature is disabled by default.'."\n",
- 'type' => 'boolean',
- 'required' => true,
- 'example' => 'true',
- ],
- 'HealthCheckHost' => [
- 'title' => '健康检查域名',
- 'description' => 'The domain name that is used for health checks.'."\n"
- ."\n"
- .'* **Backend Server Internal IP** (default): Use the internal IP address of backend servers as the health check domain name.'."\n"
- ."\n"
- .'* **Custom Domain Name**: Enter a domain name.'."\n"
- ."\n"
- .' * The domain name must be 1 to 80 characters in length.'."\n"
- .' * The domain name can contain lowercase letters, digits, hyphens (-), and periods (.).'."\n"
- .' * The domain name must contain at least one period (.) but cannot start or end with a period (.).'."\n"
- .' * The rightmost domain label of the domain name can contain only letters, and cannot contain digits or hyphens (-).'."\n"
- .' * The domain name cannot start or end with a hyphen (-).'."\n"
- ."\n"
- .'> This parameter takes effect only if **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'www.example.com',
- ],
- 'HealthCheckCodes' => [
- 'title' => '健康检查正常的状态码',
- 'description' => 'The HTTP status code that indicates healthy backend servers.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The HTTP status code that indicates healthy backend servers.'."\n"
- ."\n"
- .'* When **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, you can set **HealthCheckCodes** to **http\\_2xx** (default value), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**. Separate multiple HTTP status codes with commas (,).'."\n"
- .'* If **HealthCheckProtocol** is set to **gRPC**, the valid values for **HealthCheckCodes** are from **0 to 99**. The default value is **0**. Value ranges are supported. You can specify at most 20 value ranges. Separate multiple value ranges with commas (,).'."\n"
- ."\n"
- .'> This parameter takes effect only if **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'http_2xx',
- 'title' => '健康检查正常的状态码',
- ],
- 'required' => false,
- ],
- 'HealthCheckHttpVersion' => [
- 'title' => '健康检查HTTP协议版本',
- 'description' => 'The version of the HTTP protocol. Valid values: **HTTP1.0** and **HTTP1.1**. Default value: HTTP1.1.'."\n"
- ."\n"
- .'> This parameter takes effect only if **HealthCheckProtocol** is set to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP1.1',
- 'default' => 'HTTP1.1',
- ],
- 'HealthCheckInterval' => [
- 'title' => '健康检查间隔',
- 'description' => 'The interval at which health checks are performed. Unit: seconds'."\n"
- ."\n"
- .'Valid values: **1** to **50**'."\n"
- ."\n"
- .'Default value: **2**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '50',
- 'minimum' => '1',
- 'example' => '2',
- 'default' => '2',
- ],
- 'HealthCheckMethod' => [
- 'title' => '健康检查方法',
- 'description' => 'The HTTP method that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **GET**: If the length of a response exceeds 8 KB, the response is truncated. However, the health check result is not affected.'."\n"
- .'* **POST**: By default, gRPC health checks use the POST method.'."\n"
- .'* **HEAD** (default): By default, HTTP and HTTPS use the HEAD method.'."\n"
- ."\n"
- .'> This parameter takes effect only if **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HEAD',
- ],
- 'HealthCheckPath' => [
- 'title' => '健康检查Path',
- '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 special characters: `- / . % ? # & =`. It can also contain the following extended characters: `_ ; ~ ! ( ) * [ ] @ $ ^ : \' , +`. The URL must start with a forward slash (/).'."\n"
- ."\n"
- .'> This parameter takes effect only if **HealthCheckProtocol** is set to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test/index.html',
- ],
- 'HealthCheckProtocol' => [
- 'title' => '健康检查协议类型',
- 'description' => 'The protocol that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **HTTP**: HTTP health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers.'."\n"
- .'* **HTTPS**: HTTPS health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers. HTTPS provides higher security than HTTP because HTTPS supports data encryption.'."\n"
- .'* **TCP**: TCP health checks send TCP SYN packets to a backend server to probe the availability of backend servers.'."\n"
- .'* **gRPC**: gRPC health checks send POST or GET requests to a backend server to check whether the backend server is healthy.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP',
- 'default' => 'HTTP',
- ],
- 'HealthCheckTimeout' => [
- 'title' => '健康检查超时时间',
- 'description' => 'The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the backend server is declared unhealthy. 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' => '5',
- 'default' => '5',
- ],
- 'HealthyThreshold' => [
- 'title' => '健康检查成功判定阈值',
- '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"
- ."\n"
- .'Default value: **3**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '10',
- 'minimum' => '2',
- 'example' => '3',
- 'default' => '3',
- ],
- 'UnhealthyThreshold' => [
- 'title' => '健康检查不成功判定阈值',
- '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"
- ."\n"
- .'Default value: **3**'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '10',
- 'minimum' => '2',
- 'example' => '3',
- 'default' => '3',
- ],
- ],
- 'required' => true,
- ],
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'],
],
[
- 'name' => 'StickySessionConfig',
+ 'name' => 'DryRun',
'in' => 'query',
- 'style' => 'flat',
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: sends the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false**: performs a dry run and sends the request. If the request passes the dry run, the `HTTP_2xx` status code is returned and the operation is performed. This is the default value.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'],
+ ],
+ [
+ 'name' => 'RuleId',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The ID of the forwarding rule.'."\n", 'type' => 'string', 'required' => true, 'example' => 'rule-doc****'],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '会话保持配置',
- 'description' => 'The configuration of session persistence.'."\n"
- ."\n"
- .'> This parameter takes effect when the **ServerGroupType** parameter is set to **Instance** or **Ip**.'."\n",
+ 'title' => 'Schema of Response',
+ 'description' => 'Deletes a forwarding rule.'."\n",
'type' => 'object',
'properties' => [
- 'Cookie' => [
- 'title' => '服务器上配置的Cookie',
- '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 takes effect only when **StickySessionEnabled** is set to **true** and **StickySessionType** is set to **server**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'B490B5EBF6F3CD402E515D22BCDA****',
- ],
- 'CookieTimeout' => [
- 'title' => '服务器上配置的Cookie',
- 'description' => 'The maximum amount of time to wait before the session cookie expires. Unit: seconds'."\n"
- ."\n"
- .'Valid values: **1** to **86400**'."\n"
- ."\n"
- .'Default value: **1000**'."\n"
- ."\n"
- .'> This parameter takes effect only when **StickySessionEnabled** is set to **true** and **StickySessionType** is set to **Insert**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '86400',
- 'minimum' => '1',
- 'example' => '1000',
- 'default' => '1000',
- ],
- 'StickySessionEnabled' => [
- 'title' => '是否启用会话保持',
- 'description' => 'Specifies whether to enable session persistence. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> This parameter takes effect when the **ServerGroupType** parameter is set to **Instance** or **Ip**.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'StickySessionType' => [
- 'title' => '会话保持类型',
- 'description' => 'The method that is used to handle cookies. Valid values:'."\n"
- ."\n"
- .'* **Insert** (default value): inserts a cookie. The first time a client accesses ALB, ALB inserts the SERVERID cookie into the HTTP or HTTPS response packet. Subsequent requests from the client that carry this cookie are forwarded to the same backend server as the first request.'."\n"
- .'* **Server**: rewrites a cookie. ALB 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 takes effect when the **StickySessionEnabled** parameter is set to **true**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Insert',
- 'default' => 'Insert',
- ],
+ 'JobId' => ['title' => '', 'description' => 'The asynchronous task ID.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'],
],
- 'required' => false,
+ 'example' => '',
],
],
- [
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.Rule', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified listener is being configured, please try again later.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Rule', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteRuleResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</DeleteRuleResponse>","errorExample":""}]',
+ 'title' => 'DeleteRule',
+ 'description' => '**DeleteRule** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListRules](~~214379~~) operation to query the status of a forwarding rule:'."\n"
+ ."\n"
+ .'* If the forwarding rule is in the **Deleting** state, the forwarding rule is being deleted.'."\n"
+ .'* If the forwarding rule cannot be found, the forwarding rule is deleted.'."\n",
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteRule',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'acs:ResourceTag', 'validationType' => 'always'],
+ ],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
+ ],
+ ],
+ 'DeleteRules' => [
+ 'summary' => 'Deletes one or more forwarding rules from a listener at a time.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'AK' => [],
],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '185',
+ 'abilityTreeNodes' => ['FEATUREslbBIWWMH', 'FEATUREslbTXOYED', 'FEATUREslbQCCQ6L', 'FEATUREslb4T90LL', 'FEATUREslbIT4IYN', 'FEATUREslbA51OGD', 'FEATUREslbUBPZWI', 'FEATUREslbGVK35E', 'FEATUREslbYG3GCF', 'FEATUREslbRBR9GZ', 'FEATUREslbMWZQWL', 'FEATUREslbJCYSIV', 'FEATUREslbY93SFN', 'FEATUREslbVUMBEO', 'FEATUREslbZ4XFTS', 'FEATUREslb2Q6O49'],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
[
- 'name' => 'Ipv6Enabled',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '是否开启Ipv6',
- 'description' => 'Specifies whether to enable Ipv6.',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'],
],
[
- 'name' => 'UpstreamKeepaliveEnabled',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '是否开启后端长链接',
- 'description' => 'Specifies whether to enable persistent TCP connections.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: checks the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
- 'name' => 'ServiceName',
+ 'name' => 'RuleIds',
'in' => 'query',
+ 'style' => 'repeatList',
'schema' => [
- 'title' => '服务器名称',
- 'description' => 'This parameter is available only if the ALB Ingress controller is used. In this case, set this parameter to the name of the `Kubernetes Service` that is associated with the server group.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
+ 'title' => '',
+ 'description' => 'The forwarding rules. You can specify at most 100 forwarding rules in each call.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of the forwarding rule.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rule-a3x3pg1yohq3lq****', 'title' => ''],
+ 'required' => true,
+ 'maxItems' => 100,
+ 'minItems' => 1,
+ 'example' => '',
],
],
- [
- 'name' => 'UchConfig',
- 'in' => 'query',
- 'style' => 'flat',
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => 'url一致性hash参数配置',
- 'description' => 'The configuration of consistent hashing based on URLs.'."\n",
+ 'title' => 'Schema of Response',
+ 'description' => 'Deletes one or more forwarding rules at a time.'."\n",
'type' => 'object',
'properties' => [
- 'Type' => [
- 'title' => '参数类型',
- 'description' => 'The type of the parameter.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'QueryString',
- ],
- 'Value' => [
- 'title' => '一致性hash参数值',
- 'description' => 'The parameter value for consistent hashing.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'abc',
- ],
+ 'JobId' => ['title' => '', 'description' => 'The asynchronous task ID.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '7BED4F62-3E6E-5E4F-8C53-2D8CCE77F2ED'],
],
- 'required' => false,
+ 'example' => '',
],
],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.Rule', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.CrossLoadBalancerRules', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ],
+ 403 => [
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
+ ],
[
- 'name' => 'ConnectionDrainConfig',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The configurations of connection draining.'."\n"
- ."\n"
- .'After connection draining is enabled, ALB maintains data transmission for a period of time after the backend server is removed or declared unhealthy.'."\n"
- ."\n\n"
- .'>* Basic ALB instances do not support connection draining. Standard and WAF-enabled ALB instances support connection draining.'."\n"
- .'>* Server groups of the instance and IP types support connection draining. Server groups of the Function Compute type do not support connection draining.',
- 'type' => 'object',
- 'properties' => [
- 'ConnectionDrainEnabled' => [
- 'description' => 'Specifies whether to enable connection draining. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'ConnectionDrainTimeout' => [
- 'description' => 'The timeout period of connection draining.'."\n"
- ."\n"
- .'Valid values: **0** to **900**.'."\n"
- ."\n"
- .'Default value: **300**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '300',
- ],
+ ['errorCode' => 'ResourceNotFound.Rule', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Alb::2020-06-16::ListAsynJobs', 'callbackInterval' => 1000, 'maxCallbackTimes' => 60],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"7BED4F62-3E6E-5E4F-8C53-2D8CCE77F2ED\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteRulesResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>7BED4F62-3E6E-5E4F-8C53-2D8CCE77F2ED</RequestId>\\n</DeleteRulesResponse>","errorExample":""}]',
+ 'title' => 'DeleteRules',
+ 'description' => '**DeleteRules** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListRules](~~214379~~) operation to query the status of forwarding rules.'."\n"
+ ."\n"
+ .'* If the forwarding rules are in the **Deleting** state, the forwarding rules are being deleted.'."\n"
+ .'* If the forwarding rules cannot be found, the forwarding rules are deleted.'."\n",
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteRules',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
- 'required' => false,
],
],
+ ],
+ ],
+ 'DeleteSecurityPolicy' => [
+ 'summary' => 'Deletes a custom security policy.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'SlowStartConfig',
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'delete'],
+ 'parameters' => [
+ [
+ 'name' => 'ClientToken',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The configurations of slow starts.'."\n"
- .'After slow starts are enabled, SLB prefetches data to newly added backend servers. Requests distributed to the backend servers gradually increase.'."\n"
- ."\n"
- .'> - Basic SLB instances do not support slow starts. Standard and WAF-enabled SLB instances support slow starts. '."\n"
- .'>* Server groups of the server and IP types support slow starts. Server groups of the Function Compute type do not support slow starts.'."\n"
- .'>* Slow start is supported only by the weighted round-robin scheduling algorithm.',
- 'type' => 'object',
- 'properties' => [
- 'SlowStartEnabled' => [
- 'description' => 'Specifies whether to enable slow starts. Valid values:'."\n"
- ."\n"
- .'- true'."\n"
- ."\n"
- .'- false(default)',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'SlowStartDuration' => [
- 'description' => 'The duration of a slow start.'."\n"
- .'Valid values: 30 to 900.'."\n"
- .'Default value: 30.',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '30',
- ],
- ],
- 'required' => false,
- ],
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'],
],
[
- 'name' => 'Tag',
+ 'name' => 'DryRun',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tag.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => '',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key. 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' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. 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' => 'product',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
[
- 'name' => 'CrossZoneEnabled',
+ 'name' => 'SecurityPolicyId',
'in' => 'query',
- 'schema' => [
- 'description' => 'Specifies whether to enable cross-zone load balancing. Valid values:'."\n"
- ."\n"
- .'* **true** (default)'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> * Basic ALB instances do not support server groups that have cross-zone load balancing disabled. Only Standard and WAF-enabled ALB instances support server groups that have cross-zone load balancing.'."\n"
- .'> * Cross-zone load balancing can be disabled for server groups of the server and IP type, but not for server groups of the Function Compute type.'."\n"
- .'> * When cross-zone load balancing is disabled, session persistence cannot be enabled.',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['title' => '', 'description' => 'The security policy ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'sp-n0kn923****'],
],
],
'responses' => [
@@ -8191,99 +5192,45 @@
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The ID of the asynchronous job.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
- 'ServerGroupId' => [
- 'title' => '服务器组id',
- 'description' => 'The ID of the server group.'."\n",
- 'type' => 'string',
- 'example' => 'sg-atstuj3rtoptyui****',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'QuotaExceeded.ServerGroupsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable',
- 'errorMessage' => 'The %s and %s are mismatched.',
- ],
- [
- 'errorCode' => 'Mismatch.ServerGroupSchedulerAndSlowStartEnable',
- 'errorMessage' => 'The %s and %s are mismatched.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.SlowStartDuration',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'UnsupportedFeature.SlowStart',
- 'errorMessage' => 'The feature of %s is not supported.',
- ],
- [
- 'errorCode' => 'Mismatch.LoadBalancerEditionAndConnectionDrain',
- 'errorMessage' => 'The %s and %s are mismatched.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.ConnectionDrainTimeout',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'UnsupportedFeature.ConnectionDrain',
- 'errorMessage' => 'The feature of %s is not supported.',
- ],
- [
- 'errorCode' => 'NotExist.ResourceGroup',
- 'errorMessage' => 'ResourceGroup does not exist.',
- ],
- [
- 'errorCode' => 'OperationDenied.VpcNotSupportIpv6',
- 'errorMessage' => 'The operation is not allowed because of VpcNotSupportIpv6.',
- ],
- [
- 'errorCode' => 'UnsupportedFeature.FcServerGroup',
- 'errorMessage' => 'Server groups of type FC are not supported.',
- ],
+ ['errorCode' => 'IncorrectStatus.SecurityPolicy', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
+ ['errorCode' => 'ResourceInUse.SecurityPolicy', 'errorMessage' => 'The specified resource %s is in use.', 'description' => ''],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Vpc',
- 'errorMessage' => 'The specified resource %s is not found.',
+ 403 => [
+ ['errorCode' => 'Forbidden.SecurityPolicy', 'errorMessage' => 'Authentication has failed for SecurityPolicy.', 'description' => ''],
+ ],
+ [
+ ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteSecurityPolicyResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</DeleteSecurityPolicyResponse>","errorExample":""}]',
+ 'title' => 'DeleteSecurityPolicy',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteSecurityPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\",\\n \\"ServerGroupId\\": \\"sgp-8ilqs4axp6******\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateServerGroupResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <ServerGroupId>sg-atstuj3rtoptyui****</ServerGroupId>\\n</CreateServerGroupResponse>","errorExample":""}]',
- 'title' => 'CreateServerGroup',
- 'description' => '**CreateServerGroup** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [ListServerGroups](~~213627~~) to query the status of a server group.'."\n"
- ."\n"
- .'* If a server group is in the **Creating** state, it indicates that the server group is being created.'."\n"
- .'* If a server group is in the **Available** state, it indicates that the server group is created.'."\n",
],
'DeleteServerGroup' => [
'summary' => 'Deletes a server group.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -8291,50 +5238,30 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
+ 'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
- 'schema' => [
- 'title' => '幂等参数',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'],
],
[
'name' => 'ServerGroupId',
'in' => 'query',
- 'schema' => [
- 'title' => '服务器组id',
- 'description' => 'The ID of the server group.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'sgp-cige6j****',
- ],
+ 'schema' => ['title' => '', 'description' => 'The ID of the server group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'sgp-cige6j****'],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '是否DryRun',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
],
'responses' => [
@@ -8344,48 +5271,24 @@
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => 'job',
- 'description' => 'The ID of the asynchronous job.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'JobId' => ['title' => 'job', 'description' => 'The ID of the asynchronous job.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.ServerGroup',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceInUse.ServerGroup',
- 'errorMessage' => 'The specified resource %s is in use.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring',
- 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.',
- ],
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
+ ['errorCode' => 'ResourceInUse.ServerGroup', 'errorMessage' => 'The specified resource %s is in use.', 'description' => 'The specified resource %s is in use.'],
+ ['errorCode' => 'ResourceInConfiguring', 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', 'description' => ''],
],
403 => [
- [
- 'errorCode' => 'Forbidden.ServerGroup',
- 'errorMessage' => 'Authentication has failed for ServerGroup.',
- ],
+ ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication has failed for ServerGroup.', 'description' => ''],
],
[
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteServerGroupResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</DeleteServerGroupResponse>","errorExample":""}]',
@@ -8394,578 +5297,411 @@
."\n"
.'* If a server group is in the **Deleting** state, it indicates that the server group is being deleted.'."\n"
.'* If a specified server group cannot be found, it indicates that the server group has been deleted.'."\n",
- ],
- 'UpdateServerGroupAttribute' => [
- 'summary' => 'Modifies the configurations of a server group, such as health checks, session persistence, the server group name, the routing algorithm, and the protocol.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ],
+ ],
+ ],
],
+ ],
+ 'DescribeCapacityReservation' => [
+ 'summary' => 'Queries the details of a Load Balancer Capacity Unit (LCU) reservation.',
+ 'path' => '',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
+ 'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '165',
- 'abilityTreeNodes' => [
- 'FEATUREslbULKWF1',
- 'FEATUREslbVRSQEA',
- ],
+ 'abilityTreeNodes' => ['FEATUREslbEUW2CG'],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ServerGroupName',
+ 'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => 'Acl名称',
- 'description' => 'The server group name.'."\n"
- ."\n"
- .'The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
+ 'schema' => ['description' => 'The ID of the Application Load Balancer (ALB) instance.', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'."\n", 'title' => ''],
],
- [
- 'name' => 'Scheduler',
- 'in' => 'query',
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '调度策略',
- 'description' => 'The scheduling algorithm. Valid values:'."\n"
- ."\n"
- .'* **Wrr**: the weighted round robin algorithm. Backend servers that have higher weights receive more requests than those that have lower weights.'."\n"
- .'* **Wlc**: the weighted least connections algorithm. Requests are distributed based on the weights and the number of connections to backend servers. If two backend servers have the same weight, the backend server that has fewer connections is expected to receive more requests.'."\n"
- .'* **Sch**: the consistent hashing algorithm. Requests from the same source IP address are distributed to the same backend server.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Wrr',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', 'title' => ''],
+ 'CapacityReservationState' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'AvailabilityZone' => ['description' => 'The zone.', 'type' => 'string', 'example' => 'cn-hangzhou-k', 'title' => ''],
+ 'EffectiveCapacityUnits' => ['description' => 'The number of effective reserved LCUs per hour.', 'type' => 'number', 'format' => 'double', 'example' => '50.0', 'title' => ''],
+ 'Status' => [
+ 'description' => 'The status of the LCU reservation.',
+ 'enumValueTitles' => ['Rebalancing' => 'The LCU reservation is being rebalanced across zones.', 'Failed' => 'The LCU reservation failed.', 'Pending' => 'The LCU reservation is in progress.', 'Provisioned' => 'The LCU reservation is complete.'],
+ 'type' => 'string',
+ 'example' => 'Provisioned',
+ 'title' => '',
+ ],
+ 'Reason' => ['description' => 'The cause for the failure. This parameter is returned when the reservation status is Failed.', 'type' => 'string', 'example' => 'INSUFFICIENT_CAPACITY', 'title' => ''],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'title' => '',
+ 'description' => 'The LCU reservation state.',
+ 'example' => '',
+ ],
+ 'DecreaseRequestsRemaining' => ['description' => 'The number of remaining attempts to decrease or cancel the LCU reservation.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
+ 'LastModifiedTime' => ['description' => 'The time when the LCU reservation was last modified. The time is in the yyyy-MM-dd HH:mm:ss format.', 'type' => 'string', 'example' => '2025-08-22 05:06:58', 'title' => ''],
+ 'MinimumLoadBalancerCapacity' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CapacityUnits' => ['description' => 'The number of LCUs.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
+ ],
+ 'title' => '',
+ 'description' => 'The minimum LCUs to reserve for an ALB instance.',
+ 'example' => '',
+ ],
+ ],
+ 'title' => '',
+ 'description' => 'The response elements.',
+ 'example' => '',
],
],
- [
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ ],
+ 'errorCodes' => [
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified resource of %s is not found.'],
],
+ ],
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => 'DescribeCapacityReservation',
+ 'changeSet' => [],
+ 'ramActions' => [],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"CapacityReservationState\\": [\\n {\\n \\"AvailabilityZone\\": \\"cn-hangzhou-k\\",\\n \\"EffectiveCapacityUnits\\": 50,\\n \\"Status\\": \\"Provisioned\\",\\n \\"Reason\\": \\"INSUFFICIENT_CAPACITY\\"\\n }\\n ],\\n \\"DecreaseRequestsRemaining\\": 2,\\n \\"LastModifiedTime\\": \\"2025-08-22 05:06:58\\",\\n \\"MinimumLoadBalancerCapacity\\": {\\n \\"CapacityUnits\\": 100\\n }\\n}","type":"json"}]',
+ ],
+ 'DescribeRegions' => [
+ 'summary' => 'Queries available regions.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: checks the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx` HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'AK' => [],
],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '203',
+ 'abilityTreeNodes' => ['FEATUREslbRXTOWD'],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
[
- 'name' => 'HealthCheckConfig',
+ 'name' => 'AcceptLanguage',
'in' => 'query',
- 'style' => 'flat',
+ 'schema' => ['title' => '', 'description' => 'The supported language. Valid values:'."\n"
+ ."\n"
+ .'* **zh-CN** (default): Chinese'."\n"
+ .'* **en-US**: English'."\n"
+ .'* **ja**: Japanese'."\n", 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'default' => 'zh-CN'],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '健康检查配置',
- 'description' => 'The configuration of health checks.'."\n",
+ 'title' => 'Schema of Response',
+ 'description' => '',
'type' => 'object',
'properties' => [
- 'HealthCheckConnectPort' => [
- 'title' => '健康检查端口',
- 'description' => 'The backend port that is used for health checks.'."\n"
- ."\n"
- .'Valid values: **0** to **65535**.'."\n"
- ."\n"
- .'If you set the value to **0**, the backend port is used for health checks.'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **HealthCheckEnabled** to **true**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '65535',
- 'minimum' => '0',
- 'example' => '80',
- ],
- 'HealthCheckEnabled' => [
- 'title' => '是否启用健康检查',
- 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- 'HealthCheckHost' => [
- 'title' => '健康检查域名',
- 'description' => 'The domain name that is used for health checks.'."\n"
- ."\n"
- .'* **Backend Server Internal IP** (default): Use the internal IP address of backend servers as the health check domain name.'."\n"
- ."\n"
- .'* **Custom Domain Name**: Enter a domain name.'."\n"
- ."\n"
- .' * The domain name must be 1 to 80 characters in length.'."\n"
- .' * The domain name can contain lowercase letters, digits, hyphens (-), and periods (.).'."\n"
- .' * The domain name must contain at least one period (.) but cannot start or end with a period (.).'."\n"
- .' * The rightmost domain label of the domain name can contain only letters, and cannot contain digits or hyphens (-).'."\n"
- .' * The domain name cannot start or end with a hyphen (-).'."\n"
- ."\n"
- .'> This parameter takes effect only if **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'example.com',
- ],
- 'HealthCheckCodes' => [
- 'title' => '健康检查正常的状态码',
- 'description' => 'The HTTP status codes that indicate healthy backend servers.'."\n",
+ 'Regions' => [
+ 'title' => '',
+ 'description' => 'The regions.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The HTTP status codes that indicate healthy backend servers.'."\n"
- ."\n"
- .'* When **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, you can set **HealthCheckCodes** to **http\\_2xx** (default value), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**. Separate multiple HTTP status codes with commas (,).'."\n"
- .'* When **HealthCheckProtocol** is set to **gRPC**, the valid values for **HealthCheckCodes** are from **0 to 99**. The default value is **0**. Value ranges are supported. You can specify at most 20 value ranges. Separate multiple value ranges with commas (,).'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **HealthCheckEnabled** to **true** and **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '200',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'LocalName' => ['title' => '', 'description' => 'The name of the region.'."\n", 'type' => 'string', 'example' => 'China (Hangzhou)'],
+ 'RegionEndpoint' => ['title' => 'endpoint', 'description' => 'The endpoint of region service.'."\n", 'type' => 'string', 'example' => 'alb.cn-hangzhou.aliyuncs.com'],
+ 'RegionId' => ['title' => 'RegionId', 'description' => 'The ID of the region.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou'],
+ ],
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
- ],
- 'HealthCheckHttpVersion' => [
- 'title' => '健康检查HTTP协议版本',
- 'description' => 'The HTTP version that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **HTTP1.0**'."\n"
- .'* **HTTP1.1**'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **HealthCheckEnabled** to true and **HealthCheckProtocol** to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP1.1',
- ],
- 'HealthCheckInterval' => [
- 'title' => '健康检查间隔',
- 'description' => 'The interval at which health checks are performed. Unit: seconds.'."\n"
- ."\n"
- .'Valid values: **1** to **50**.'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **HealthCheckEnabled** to **true**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '50',
- 'minimum' => '1',
- 'example' => '5',
- ],
- 'HealthCheckMethod' => [
- 'title' => '健康检查方法',
- 'description' => 'The HTTP method that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **GET**: If the length of a response exceeds 8 KB, the response is truncated. However, the health check result is not affected.'."\n"
- .'* **POST**: gRPC health checks use the POST method by default.'."\n"
- .'* **HEAD**: HTTP and HTTPS health checks use the HEAD method by default.'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **HealthCheckEnabled** to true and **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HEAD',
- ],
- 'HealthCheckPath' => [
- 'title' => '健康检查Path',
- '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 special characters: `- / . % ? # & =`. It can also contain the following extended characters: `_ ; ~ ! ( ) * [ ] @ $ ^ : \' , +`. The URL must start with a forward slash (`/`).'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **HealthCheckEnabled** to **true** and **HealthCheckProtocol** to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test/index.html',
- ],
- 'HealthCheckProtocol' => [
- 'title' => '健康检查协议类型',
- 'description' => 'The protocol that you want to use for health checks. Valid values:'."\n"
- ."\n"
- .'* **HTTP**: HTTP health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers.'."\n"
- .'* **HTTPS**: HTTPS health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers. HTTPS supports encryption and provides higher security than HTTP.'."\n"
- .'* **TCP**: TCP health checks send TCP SYN packets to a backend server to probe the availability of backend servers.'."\n"
- .'* **gRPC**: gRPC health checks send POST or GET requests to a backend server to check whether the backend server is healthy.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP',
- ],
- 'HealthCheckTimeout' => [
- 'title' => '健康检查超时时间',
- '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 you set **HealthCheckEnabled** to **true**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '300',
- 'minimum' => '1',
- 'example' => '3',
- ],
- 'HealthyThreshold' => [
- 'title' => '健康检查成功判定阈值',
- 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it can be 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',
- 'required' => false,
- 'maximum' => '10',
- 'minimum' => '2',
- 'example' => '4',
- ],
- 'UnhealthyThreshold' => [
- 'title' => '健康检查不成功判定阈值',
- 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it can be 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',
- 'required' => false,
- 'maximum' => '10',
- 'minimum' => '2',
- 'example' => '4',
+ 'example' => '',
],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'],
],
- 'required' => false,
+ 'example' => '',
],
],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"China (Hangzhou)\\",\\n \\"RegionEndpoint\\": \\"alb.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ],\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\"\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
+ 'title' => 'DescribeRegions',
+ 'changeSet' => [],
+ 'ramActions' => [],
+ ],
+ 'DescribeZones' => [
+ 'summary' => 'Queries zones in a region.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'StickySessionConfig',
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '204',
+ 'abilityTreeNodes' => ['FEATUREslbRXTOWD'],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AcceptLanguage',
'in' => 'query',
- 'style' => 'flat',
+ 'schema' => ['description' => 'The supported language. Valid values:'."\n"
+ ."\n"
+ .'- **zh-CN** (default): Chinese'."\n"
+ ."\n"
+ .'- **en-US**: English'."\n"
+ ."\n"
+ .'- **ja**: Japanese', 'type' => 'string', 'example' => 'zh-CN', 'default' => 'zh-CN', 'required' => false, 'title' => ''],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '会话保持配置',
- 'description' => 'The configuration of session persistence.'."\n",
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'Cookie' => [
- 'title' => '服务器上配置的Cookie',
- 'description' => 'The cookie to be 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 takes effect when the **StickySessionEnabled** parameter is set to **true** and the **StickySessionType** parameter is set to **Server**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'B490B5EBF6F3CD402E515D22BCDA1598',
- ],
- 'CookieTimeout' => [
- 'title' => '服务器上配置的Cookie',
- 'description' => 'The timeout period of a cookie. Unit: seconds.'."\n"
- ."\n"
- .'Valid values: **1** to **86400**.'."\n"
- ."\n"
- .'> This parameter takes effect when the **StickySessionEnabled** parameter is set to **true** and the **StickySessionType** parameter is set to **Insert**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '86400',
- 'minimum' => '1',
- 'example' => '1000',
- ],
- 'StickySessionEnabled' => [
- 'title' => '是否启用会话保持',
- 'description' => 'Specifies whether to enable session persistence. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'StickySessionType' => [
- 'title' => '会话保持类型',
- 'description' => 'The method that is used to handle a cookie. Valid values:'."\n"
- ."\n"
- .'* **Insert**: inserts a cookie.'."\n"
- ."\n"
- .'ALB 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 forwards this request to the recorded backend server.'."\n"
- ."\n"
- .'* **Server**: rewrites a cookie.'."\n"
- ."\n"
- .'When ALB detects a user-defined cookie, it overwrites the original cookie with the user-defined cookie. Subsequent requests to ALB carry this user-defined cookie, and ALB determines the destination servers of the requests based on the cookies.'."\n"
- ."\n"
- .'> This parameter takes effect when the **StickySessionEnabled** parameter is set to **true** for the server group.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Insert',
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'],
+ 'Zones' => [
+ 'title' => '',
+ 'description' => 'The zones.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The zone.',
+ 'type' => 'object',
+ 'properties' => [
+ 'LocalName' => ['description' => 'The name of the zone.', 'type' => 'string', 'example' => 'Hangzhou Zone G', 'title' => ''],
+ 'ZoneId' => ['description' => 'The zone ID.', 'type' => 'string', 'example' => 'cn-hangzhou-g', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPdzTKM4svjIT4VQig7tTMKqiHlxKt2p5Zuz45p+Lxdq',
],
],
- 'required' => false,
+ 'example' => '',
],
],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\",\\n \\"Zones\\": [\\n {\\n \\"LocalName\\": \\"Hangzhou Zone G\\",\\n \\"ZoneId\\": \\"cn-hangzhou-g\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeZones',
+ 'changeSet' => [],
+ 'ramActions' => [],
+ 'translator' => 'manual',
+ ],
+ 'DetachCommonBandwidthPackageFromLoadBalancer' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'ServerGroupId',
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'update'],
+ 'parameters' => [
+ [
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '服务器组Id',
- 'description' => 'The server group ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'sgp-atstuj3rtop****',
- ],
+ 'allowEmptyValue' => false,
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266******'],
],
[
- 'name' => 'UpstreamKeepaliveEnabled',
+ 'name' => 'RegionId',
'in' => 'query',
- 'schema' => [
- 'title' => '是否开启后端长链接',
- 'description' => 'Specifies whether to enable persistent TCP connections.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'The region ID of the ALB instance.'."\n"
+ ."\n"
+ .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'cn-hangzhou'],
],
[
- 'name' => 'ServiceName',
+ 'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => '服务器名称',
- 'description' => 'This parameter is available only if the ALB Ingress controller is used. In this case, set this parameter to the name of the `Kubernetes Service` that is associated with the server group.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test2',
- ],
+ 'schema' => ['description' => 'The ALB instance ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'alb-d676fho813rmu3****'],
],
[
- 'name' => 'UchConfig',
+ 'name' => 'BandwidthPackageId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => 'url一致性hash参数配置',
- 'description' => 'The configurations of consistent hashing based on URLs.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Type' => [
- 'title' => '参数类型',
- 'description' => 'The type of the parameter. Only query strings are supported.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'QueryString',
- ],
- 'Value' => [
- 'title' => '一致性hash参数值',
- 'description' => 'The value of the parameter used for consistent hashing.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'abc',
- ],
- ],
- 'required' => false,
- ],
+ 'schema' => ['description' => 'The EIP bandwidth plan ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'cbwp-bp1pzf0ym72pu3y76****'],
],
[
- 'name' => 'ConnectionDrainConfig',
+ 'name' => 'DryRun',
'in' => 'query',
- 'style' => 'flat',
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'description' => 'The configurations of connection draining.'."\n"
- ."\n"
- .'After connection draining is enabled, SLB remains data transmission for a period of time after a backend server is removed or declared unhealthy.'."\n"
- ."\n"
- .'> * Basic SLB instances do not support connection draining. Standard and WAF-enabled SLB instances support connection draining.'."\n"
- .'> * Server groups of the server and IP types support connection draining. Server groups of the Function Compute type do not support connection draining.',
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'ConnectionDrainEnabled' => [
- 'description' => 'Specifies whether to enable connection draining. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'ConnectionDrainTimeout' => [
- 'description' => 'The timeout period of connection draining.'."\n"
- ."\n"
- .'Valid values: **0** to **900**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '300',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '2EF39708-974B-5E74-AFF5-344******'],
+ 'JobId' => ['description' => 'The asynchronous task ID.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
],
- 'required' => false,
+ 'example' => '',
],
],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectBusinessStatus.CommonBandwidthPackage', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.CommonBandwidthPackage', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ],
+ 403 => [
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
+ ],
[
- 'name' => 'SlowStartConfig',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '慢启动配置',
- 'description' => 'The configurations of slow starts.'."\n"
- ."\n"
- .'After slow starts are enabled, ALB prefetches data to newly added backend servers. Requests distributed to the backend servers gradually increase.'."\n"
- ."\n"
- .'> * Basic ALB instances do not support slow starts. Standard and WAF-enabled ALB instances support slow starts.'."\n"
- .'>* Server groups of the instance and IP types support slow starts. Server groups of the Function Compute type do not support slow starts.'."\n"
- .'>* Slow start is supported only by the weighted round-robin scheduling algorithm.',
- 'type' => 'object',
- 'properties' => [
- 'SlowStartEnabled' => [
- 'title' => '是否开启慢启动'."\n",
- 'description' => 'Indicates whether slow starts are enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'SlowStartDuration' => [
- 'title' => '慢启动时间',
- 'description' => 'The duration of a slow start.',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '30',
- ],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'title' => 'DetachCommonBandwidthPackageFromLoadBalancer',
+ 'summary' => 'Disassociates an Internet Shared Bandwidth instance from an Application Load Balancer (ALB) instance.',
+ 'description' => '**DetachCommonBandwidthPackageFromLoadBalancer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetLoadBalancerAttribute](~~214359~~) operation to query the status of the task.'."\n"
+ ."\n"
+ .'- If an ALB instance is in the **Configuring** state, the EIP bandwidth plan is being disassociated from the ALB instance.'."\n"
+ ."\n"
+ .'- If an ALB instance is in the **Active** state, the EIP bandwidth plan is disassociated from the ALB instance.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:DetachCommonBandwidthPackageFromLoadBalancer',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
],
- 'required' => false,
],
],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2EF39708-974B-5E74-AFF5-344******\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","type":"json"}]',
+ ],
+ 'DisableDeletionProtection' => [
+ 'summary' => 'Disables deletion protection for an Application Load Balancer (ALB) instance.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'CrossZoneEnabled',
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'update'],
+ 'parameters' => [
+ [
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'description' => 'Indicates whether cross-zone load balancing is enabled for the server group. Valid values:'."\n"
- ."\n"
- .'* **true** (default)'."\n"
- .'* **false**'."\n"
- ."\n"
- .'> * Basic ALB instances do not support server groups that have cross-zone load balancing disabled. Only Standard and WAF-enabled ALB instances support server groups that have cross-zone load balancing.'."\n"
- .'>* Cross-zone load balancing can be disabled for server groups of the server and IP type, but not for server groups of the Function Compute type.'."\n"
- .'>* When cross-zone load balancing is disabled, session persistence cannot be enabled.',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false**: (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The ALB instance ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The operation to disable deletion protection feature for an ALB instance.'."\n",
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The ID of the asynchronous job.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.ServerGroup',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'Mismatch.LoadBalancerEditionAndConnectionDrain',
- 'errorMessage' => 'The %s and %s are mismatched.',
- ],
- [
- 'errorCode' => 'Mismatch.ServerGroupSchedulerAndSlowStartEnable',
- 'errorMessage' => 'The %s and %s are mismatched.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.ConnectionDrainTimeout',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'UnsupportedFeature.ConnectionDrain',
- 'errorMessage' => 'The feature of %s is not supported.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.SlowStartDuration',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'UnsupportedFeature.SlowStart',
- 'errorMessage' => 'The feature of %s is not supported.',
- ],
- [
- 'errorCode' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable',
- 'errorMessage' => 'The %s and %s are mismatched.',
- ],
- [
- 'errorCode' => 'OperationDenied.UpstreamKeepaliveDisabled',
- 'errorMessage' => 'The operation is not allowed because of UpstreamKeepaliveDisabled.',
- ],
- [
- 'errorCode' => 'OperationDenied.UpstreamKeepaliveEnabled',
- 'errorMessage' => 'The operation is not allowed because of UpstreamKeepaliveEnabled.',
- ],
- [
- 'errorCode' => 'CloseUpstreamKeepaliveNotSupport',
- 'errorMessage' => 'The param of UpstreamKeepalive is not Support.',
- ],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
+ 403 => [
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
+ ],
+ [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableDeletionProtectionResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</DisableDeletionProtectionResponse>","errorExample":""}]',
+ 'title' => 'DisableDeletionProtection',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:DisableDeletionProtection',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3*****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateServerGroupAttributeResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</UpdateServerGroupAttributeResponse>","errorExample":""}]',
- 'title' => 'UpdateServerGroupAttribute',
- 'description' => '## Description'."\n"
- ."\n"
- .'**UpdateServerGroupAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListServerGroups](~~213627~~) operation to query the status of a server group:'."\n"
- ."\n"
- .'* If a server group is in the **Configuring** state, the configuration of the server group is being modified.'."\n"
- .'* If a server group is in the **Available** state, the configuration of the server group is modified.'."\n",
],
- 'UpdateServerGroupServersAttribute' => [
- 'summary' => 'Modifies the configurations, such as the backend server weight and description, of a server group.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'DisableLoadBalancerAccessLog' => [
+ 'summary' => 'Disables the access log feature for a Application Load Balancer (ALB) instance.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -8973,1085 +5709,458 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeNodes' => [
- 'FEATUREslbULKWF1',
- ],
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'ServerGroupId',
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
+ ."\n"
+ .'* If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'],
+ ],
+ [
+ 'name' => 'DryRun',
'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The SLB instance ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'alb-bp1b6c719dfa08ex*****'],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '后端服务器Id',
- 'description' => 'The server group ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'sgp-atstuj3rtop****',
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF******'],
+ ],
+ 'example' => '',
],
],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'OperationDenied.AccessLogDisabled', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'ResourceInConfiguring.LoadBalancer', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => 'The specified resource of %s is being configured, please try again later.'],
+ ],
+ 403 => [
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
+ ],
[
- 'name' => 'Servers',
- 'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '后端服务器列表',
- 'description' => 'The server groups. You can specify at most 40 server groups in each call.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The configurations of the server group.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Description' => [
- 'title' => '后端服务器描述',
- 'description' => 'The description of the backend server. The description must be 2 to 256 characters in length, and cannot start with http:// or https://.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Port' => [
- 'title' => '后端端口号',
- 'description' => 'The port that is used by the backend server. Valid values: **1** to **65535**.'."\n"
- ."\n"
- .'> You do not need to set this parameter if **ServerType** is set to **Fc**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'docRequired' => false,
- 'example' => '80',
- ],
- 'ServerId' => [
- 'title' => '后端服务器id',
- 'description' => 'The ID of the backend server.'."\n"
- ."\n"
- .'* Specify the ID of an Elastic Compute Service (ECS) instance, an elastic network interface (ENI), or an elastic container instance if you set **ServerType** to **Ecs**, **Eni**, or **Eci**.'."\n"
- .'* Specify an IP address if you set **ServerType** to **Ip**.'."\n"
- .'* Specify the Alibaba Cloud Resource Name (ARN) of a Function Compute function if you set **ServerType** to **Fc**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'i-bp1f9kdprbgy9uiu****',
- ],
- 'ServerIp' => [
- 'title' => '后端服务器ip',
- 'description' => 'The IP address of the backend server.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.1.1',
- ],
- 'ServerType' => [
- 'title' => '后端服务器类型',
- 'description' => 'The type of the backend server. Valid values:'."\n"
- ."\n"
- .'* **Ecs**: ECS instance'."\n"
- .'* **Eni**: ENI'."\n"
- .'* **Eci**: elastic container instance'."\n"
- .'* **Ip**: IP address'."\n"
- .'* **Fc**: Function Compute'."\n",
- 'type' => 'string',
- 'required' => true,
- 'docRequired' => false,
- 'example' => 'Ecs',
- ],
- 'Weight' => [
- 'title' => '后端服务器权重',
- 'description' => 'The weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If the value is set to **0**, no requests are forwarded to the server. You can specify up to 40 servers in each call.'."\n"
- ."\n"
- .'> You do not need to set this parameter if **ServerType** is set to **Fc**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '100',
- ],
- ],
- 'required' => false,
- 'title' => '后端服务器',
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified resource of %s is not found.'],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableLoadBalancerAccessLogResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</DisableLoadBalancerAccessLogResponse>","errorExample":""}]',
+ 'title' => 'DisableLoadBalancerAccessLog',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:DisableLoadBalancerAccessLog',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
- 'required' => true,
- 'maxItems' => 200,
- 'minItems' => 1,
],
],
+ ],
+ ],
+ 'DisableLoadBalancerIpv6Internet' => [
+ 'summary' => 'Changes the type of the IPv6 address that is used by a dual-stack Application Load Balancer (ALB) instance from public to private.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'update'],
+ 'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等Token',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'allowEmptyValue' => false,
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => 'dryRun',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ALB instance ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'alb-chugtlrj1iusjh****'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The ID of the asynchronous job.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '7D866E37-1123-5160-AFF1-BDAF5EB86A8A'],
+ 'JobId' => ['description' => 'The asynchronous task ID.', 'type' => 'string', 'title' => '', 'example' => 'd12871a6-ebb2-41f3-8d74-d9f452bb****'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.ServerGroup',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring',
- 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.',
- ],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.NonDualStackInstance', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.Ipv6IntranetInstance', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
],
403 => [
- [
- 'errorCode' => 'Forbidden.ServerGroup',
- 'errorMessage' => 'Authentication has failed for ServerGroup.',
- ],
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
],
[
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.BackendServer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3*****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateServerGroupServersAttributeResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</UpdateServerGroupServersAttributeResponse>","errorExample":""}]',
- 'title' => 'UpdateServerGroupServersAttribute',
- 'description' => '**UpdateServerGroupServersAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background.'."\n"
+ 'title' => 'DisableLoadBalancerIpv6Internet',
+ 'description' => '### Prerequisites'."\n"
."\n"
- .'1. You can call the [ListServerGroups](~~213627~~) operation to query the status of a server group.'."\n"
+ .'An ALB instance is created and IPv4/IPv6 dual stack is enabled for the instance. You can call the [CreateLoadBalancer](~~214358~~) operation and set **AddressIpVersion** to **DualStack** to create a dual-stack ALB instance.'."\n"
."\n"
- .' * If a server group is in the **Configuring** state, it indicates that the server group is being modified.'."\n"
- .' * If a server group is in the **Available** state, it indicates that the server group is running.'."\n"
+ .'> If you set **AddressIpVersion** to **DualStack**:'."\n"
."\n"
- .'2. You can call the [ListServerGroupServers](~~213628~~) operation to query the status of a backend server.'."\n"
+ .'- If you set **AddressType** to **Internet**, the ALB instance uses a public IPv4 IP address and a private IPv6 address.'."\n"
."\n"
- .' * If a backend server is in the **Configuring** state, it indicates that the backend server is being modified.'."\n"
- .' * If a backend server is in the **Available** state, it indicates that the backend server is running.'."\n",
- ],
- 'ListServerGroups' => [
- 'summary' => 'Queries server groups.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ .'- If you set **AddressType** to **Intranet**, the ALB instance uses a private IPv4 IP address and a private IPv6 address.'."\n"
+ ."\n"
+ .'### Description'."\n"
+ ."\n"
+ .'- After the DisableLoadBalancerIpv6Internet operation is called, the value of **Ipv6AddressType** is changed to **Intranet** and the type of the IPv6 address of the ALB instance is changed from public to private. If you upgrade the instance or the instance scales elastic network interfaces (ENIs) along with workloads, private IPv6 addresses are automatically enabled for the instance and the new ENIs. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the value of **Ipv6AddressType**.'."\n"
+ ."\n"
+ .'- **DisableLoadBalancerIpv6Internet** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the status of the task.'."\n"
+ ."\n"
+ .' - If the ALB instance is in the **Configuring** state, the network type of the IPv6 address that is used by the ALB instance is being changed.'."\n"
+ ."\n"
+ .' - If the ALB instance is in the **Active** state, the network type of the IPv6 address that is used by the ALB instance is changed.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:DisableLoadBalancerIpv6Internet',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7D866E37-1123-5160-AFF1-BDAF5EB86A8A\\",\\n \\"JobId\\": \\"d12871a6-ebb2-41f3-8d74-d9f452bb****\\"\\n}","type":"json"}]',
+ ],
+ 'DissociateAclsFromListener' => [
+ 'summary' => 'Disassociates access control lists (ACLs) from a listener.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeCode' => '166',
- 'abilityTreeNodes' => [
- 'FEATUREslbULKWF1',
- 'FEATUREslbVRSQEA',
- ],
- ],
+ 'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
- 'name' => 'ServerGroupIds',
+ 'name' => 'AclIds',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '服务器组Id列表',
- 'description' => 'The server group IDs.'."\n",
+ 'title' => '',
+ 'description' => 'The access control list (ACL) IDs. You can disassociate at most three ACLs from a listener in each call.'."\n",
'type' => 'array',
- 'items' => [
- 'description' => 'The IDs of the server groups to be queried. You can specify up to 20 IDs in each call.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'sgp-atstuj3rtop****',
- ],
- 'required' => false,
+ 'items' => ['description' => 'The ID of the ACL.'."\n", 'type' => 'string', 'required' => false, 'example' => 'acl-hp34s2h0xx1ht4nwo****', 'title' => ''],
+ 'required' => true,
'maxItems' => 20,
+ 'example' => '',
],
],
[
- 'name' => 'ServerGroupNames',
+ 'name' => 'ListenerId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '服务器组名称',
- 'description' => 'The names of the server groups to be queried. You can specify at most 10 server group names.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The names of the server groups to be queried. You can specify up to 10 server group names in each call.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Group3',
- ],
- 'required' => false,
- 'maxItems' => 10,
- ],
+ 'schema' => ['title' => '', 'description' => 'The ID of the listener.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-bpn0kn908w4nbw****'],
],
[
- 'name' => 'ResourceGroupId',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '资源组ID',
- 'description' => 'The ID of the resource group to which the server group belongs.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-atstuj3rtop****',
- ],
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
[
- 'name' => 'NextToken',
+ 'name' => 'ClientToken',
'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******'],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '分页查询标识',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* You do not need to specify this parameter for the first request.'."\n"
- .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXG****',
+ 'title' => 'Schema of Response',
+ 'description' => 'The operation to disassociate ACLs from a listener.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => ['title' => '', 'description' => 'The asynchronous task ID.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876******'],
+ ],
+ 'example' => '',
],
],
- [
- 'name' => 'MaxResults',
- 'in' => 'query',
- 'schema' => [
- 'title' => '查询数量',
- 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '20',
- 'default' => '20',
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.Acl', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'ResourceInConfiguring', 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', 'description' => ''],
+ ['errorCode' => 'LockFailed', 'errorMessage' => 'The specified resource lock failed.', 'description' => 'The specified resource lock failed.'],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotAssociated.Acl', 'errorMessage' => 'The specified resource %s is not associated.', 'description' => 'The specified resource %s is not associated.'],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\"\\n}","errorExample":""},{"type":"xml","example":"<DissociateAclsFromListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</DissociateAclsFromListenerResponse>","errorExample":""}]',
+ 'title' => 'DissociateAclsFromListener',
+ 'description' => '**DissociateAclsFromListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [ListAclRelations](~~213618~~) to query the status of an ACL.'."\n"
+ ."\n"
+ .'* If an ACL is in the **Dissociating** state, the ACL is being disassociated from the listener.'."\n"
+ .'* If an ACL is in the **Dissociated** state, the ACL is disassociated from the listener.'."\n",
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DissociateAclsFromListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
+ ],
+ ],
+ 'DissociateAdditionalCertificatesFromListener' => [
+ 'summary' => 'Dissociates one or more additional certificates from a listener.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'VpcId',
- 'in' => 'query',
- 'schema' => [
- 'title' => 'VpcId',
- 'description' => 'The ID of the virtual private cloud (VPC).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'vpc-bp15zckdt37pq72zv****',
- ],
+ 'AK' => [],
],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'delete'],
+ 'parameters' => [
[
- 'name' => 'ServerGroupType',
+ 'name' => 'ListenerId',
'in' => 'query',
- 'schema' => [
- 'title' => '服务器组类型',
- 'description' => 'The server group type. Valid values:'."\n"
- ."\n"
- .'* **Instance**: instances, including ECS instances, ENIs, and elastic container instances.'."\n"
- .'* **Ip**: IP addresses.'."\n"
- .'* **Fc**: Function Compute',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Instance',
- ],
+ 'schema' => ['description' => 'The listener ID. This parameter applies to HTTPS and QUIC listeners.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'lsn-5qnirjhpt7******'],
],
[
- 'name' => 'Tag',
+ 'name' => 'Certificates',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => 'Tag列表',
- 'description' => 'The tags that are added to the server group. You can specify up to 10 tags in each call.'."\n",
+ 'title' => '',
+ 'description' => 'A list of additional certificates. Only server certificates are supported. Specify a maximum of 20 certificates.',
'type' => 'array',
'items' => [
- 'description' => 'The tags that are added to the server group. You can specify at most 10 tags in each call.'."\n",
+ 'description' => 'An additional certificate.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => '标签键',
- 'description' => 'The tag key. You can specify up to 10 tag keys.'."\n"
- ."\n"
- .'The tag key can be up to 64 characters in length and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Test',
- ],
- 'Value' => [
- 'title' => '标签值',
- 'description' => 'The tag value. You can specify up to 10 tag values.'."\n"
- ."\n"
- .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Test',
- ],
+ 'CertificateId' => ['description' => 'The certificate ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '103705******'],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
- 'example' => 'Instance',
+ 'required' => true,
+ 'maxItems' => 15,
+ 'minItems' => 1,
+ 'example' => '',
],
],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request. The client token must be a unique value that is generated by the client. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'Generate a unique value on your client. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system uses the **RequestId** of the request as the **ClientToken**. The **RequestId** of each request is unique.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******'],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['title' => 'dryRun', 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run to check the request. The system checks for missing parameters, invalid formats, and service limits. If the request fails the check, an error is returned. If the request passes the check, the `DryRunOperation` error code is returned. No certificates are dissociated from the listener.'."\n"
+ ."\n"
+ .'- **false** (default): sends a normal request. After the request passes the check, an HTTP 2xx status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
+ ],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => '',
'type' => 'object',
'properties' => [
- 'MaxResults' => [
- 'title' => '本次查询返回记录数量',
- 'description' => 'The number of entries returned per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '50',
- ],
- 'NextToken' => [
- 'title' => '分页查询标识',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If **NextToken** is not empty, the value of NextToken can be used in the next request to retrieve a new page of results.'."\n",
- 'type' => 'string',
- 'example' => 'caeba0bbb2be03f8****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
- 'ServerGroups' => [
- 'title' => '服务器组',
- 'description' => 'The server groups.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The server groups.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'HealthCheckConfig' => [
- 'title' => '健康检查配置',
- 'description' => 'The health check configurations.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'HealthCheckConnectPort' => [
- 'title' => '端口',
- 'description' => 'The backend port that is used for health checks. Valid values: **0** to **65535**.'."\n"
- ."\n"
- .'A value of **0** indicates that the port of a backend server is used for health checks.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '80',
- ],
- 'HealthCheckEnabled' => [
- 'title' => '是否启用健康检查',
- 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'HealthCheckHost' => [
- 'title' => '域名',
- 'description' => 'The domain name that is used for health checks.'."\n"
- ."\n"
- .'* **Backend Server Internal IP** (default): Use the internal IP address of backend servers as the health check domain name.'."\n"
- ."\n"
- .'* **Custom Domain Name**: Enter a domain name.'."\n"
- ."\n"
- .' * The domain name is 1 to 80 characters in length.'."\n"
- .' * The domain name contains lowercase letters, digits, hyphens (-), and periods (.).'."\n"
- .' * The domain name contains at least one period (.) but does not start or end with a period (.).'."\n"
- .' * The rightmost domain label of the domain name contains only letters, and does not contain digits or hyphens (-).'."\n"
- .' * The domain name does not start or end with a hyphen (-).'."\n"
- ."\n"
- .'> This parameter takes effect only if HealthCheckProtocol is set to HTTP, HTTPS, or gRPC.'."\n",
- 'type' => 'string',
- 'example' => 'www.example.com',
- ],
- 'HealthCheckCodes' => [
- 'title' => '状态码',
- 'description' => 'The HTTP status codes that indicate healthy backend servers.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The HTTP status codes that indicate healthy backend servers.'."\n"
- ."\n"
- .'* When **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, you can set **HealthCheckCodes** to **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**. Multiple HTTP status codes are separated by commas (,).'."\n"
- .'* When **HealthCheckProtocol** is set to **gRPC**, the valid values of **HealthCheckCodes** are **0 to 99**. Value ranges are supported. At most 20 value ranges are supported. Multiple value ranges are separated by commas (,).'."\n"
- ."\n"
- .'> This parameter takes effect only if **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'example' => 'http_2xx',
- ],
- ],
- 'HealthCheckHttpVersion' => [
- 'title' => '版本',
- 'description' => 'The HTTP version that is used for health checks.'."\n"
- ."\n"
- .'Valid values: **HTTP1.0** and **HTTP1.1**.'."\n"
- ."\n"
- .'> This parameter takes effect only if **HealthCheckProtocol** is set to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'example' => 'HTTP1.1',
- ],
- 'HealthCheckInterval' => [
- 'title' => '间隔时间',
- 'description' => 'The interval at which health checks are performed. Unit: seconds. Valid values: **1** to **50**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '5',
- ],
- 'HealthCheckMethod' => [
- 'title' => '方法',
- 'description' => 'The HTTP method that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **GET**: If the length of a response exceeds 8 KB, the response is truncated. However, the health check result is not affected.'."\n"
- .'* **POST**: gRPC health checks use the POST method by default.'."\n"
- .'* **HEAD**: HTTP and HTTPS health checks use the HEAD method by default.'."\n"
- ."\n"
- .'> This parameter takes effect only if **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'example' => 'HEAD',
- ],
- 'HealthCheckPath' => [
- 'title' => 'uri',
- 'description' => 'The URL that is used for health checks.'."\n"
- ."\n"
- .'> This parameter takes effect only if **HealthCheckProtocol** is set to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'example' => '/test/index.html',
- ],
- 'HealthCheckProtocol' => [
- 'title' => '协议',
- 'description' => 'The protocol that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **HTTP**: HTTP health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers.'."\n"
- .'* **HTTPS**: HTTPS health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers. HTTPS supports encryption and provides higher security than HTTP.'."\n"
- .'* **TCP**: TCP health checks send TCP SYN packets to a backend server to check whether the port of the backend server is reachable.'."\n"
- .'* **gRPC**: gRPC health checks send POST or GET requests to a backend server to check whether the backend server is healthy.'."\n",
- 'type' => 'string',
- 'example' => 'HTTP',
- ],
- 'HealthCheckTimeout' => [
- 'title' => '超时时间',
- 'description' => 'The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the backend server is declared unhealthy. Unit: seconds.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '3',
- ],
- 'HealthyThreshold' => [
- 'title' => '健康阈值',
- '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",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '4',
- ],
- 'UnhealthyThreshold' => [
- 'title' => '不健康阈值',
- '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",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '4',
- ],
- ],
- ],
- 'Protocol' => [
- 'title' => '服务器组协议',
- 'description' => 'The backend protocol. Valid values:'."\n"
- ."\n"
- .'* **HTTP**: allows you to associate HTTPS, HTTP, or QUIC listeners with backend servers.'."\n"
- .'* **HTTPS**: allows you to associate HTTPS listeners with backend servers.'."\n"
- .'* **GRPC**: allows you to associate HTTPS and QUIC listeners with backend servers.'."\n",
- 'type' => 'string',
- 'example' => 'HTTP',
- ],
- 'RelatedLoadBalancerIds' => [
- 'title' => '关联的实例id',
- 'description' => 'The ID of the ALB instance associated with the server group.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ID of the ALB instance.'."\n",
- 'type' => 'string',
- 'example' => 'alb-n5qw04uq8vavfe****',
- ],
- ],
- 'ResourceGroupId' => [
- 'title' => '资源组id',
- 'description' => 'The ID of the resource group to which the instance belongs.'."\n",
- 'type' => 'string',
- 'example' => 'rg-atstuj3rtop****',
- ],
- 'Scheduler' => [
- 'title' => '调度策略',
- 'description' => 'The scheduling algorithm. Valid values:'."\n"
- ."\n"
- .'* **Wrr**: weighted round-robin. Backend servers with higher weights receive more requests than backend servers with lower weights.'."\n"
- .'* **Wlc**: weighted least connections. Requests are distributed based on the weight and load of each backend server. The load refers to the number of connections on a backend server. If multiple backend servers have the same weight, requests are forwarded to the backend server with the least number of connections.'."\n"
- .'* **Sch**: consistent hashing. Requests that have the same hash factors are distributed to the same backend server. If you do not specify the UchConfig parameter, the source IP address is used as the hash factor by default. Requests that are from the same IP address are distributed to the same backend server. If you specify the UchConfig parameter, the URL string is used as the hash factor. Requests that have the same URL string are distributed to the same backend server.'."\n",
- 'type' => 'string',
- 'example' => 'Wrr',
- ],
- 'ServerGroupId' => [
- 'title' => '服务器组Id',
- 'description' => 'The server group ID.'."\n",
- 'type' => 'string',
- 'example' => 'sgp-cige6j****',
- ],
- 'ServerGroupName' => [
- 'title' => '服务器组名称',
- 'description' => 'The server group name.'."\n",
- 'type' => 'string',
- 'example' => 'Group3',
- ],
- 'ServerGroupStatus' => [
- 'title' => '服务器组状态',
- 'description' => 'The status of the server group. Valid values:'."\n"
- ."\n"
- .'* **Creating**.'."\n"
- .'* **Available**'."\n"
- .'* **Configuring**'."\n",
- 'type' => 'string',
- 'example' => 'Available',
- ],
- 'ServerGroupType' => [
- 'title' => '服务器组类型',
- 'description' => 'The server group type. Valid values:'."\n"
- ."\n"
- .'* **Instance**: instances, including ECS instances, ENIs, and elastic container instances.'."\n"
- .'* **Ip**: IP addresses.'."\n"
- .'* **Fc**: Function Compute'."\n",
- 'type' => 'string',
- 'example' => 'Instance',
- ],
- 'StickySessionConfig' => [
- 'title' => '会话保持配置',
- 'description' => 'The configuration of session persistence.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Cookie' => [
- 'title' => 'Cookie',
- 'description' => 'The cookie configured for the server.'."\n",
- 'type' => 'string',
- 'example' => 'B490B5EBF6F3CD402E515D22BCDA****',
- ],
- 'CookieTimeout' => [
- 'title' => 'Cookie超时时间',
- 'description' => 'The timeout period of the cookie. Unit: seconds. Valid values: **1** to **86400**.'."\n"
- ."\n"
- .'> This parameter takes effect only when **StickySessionEnabled** is set to **true** and **StickySessionType** is set to **Insert**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1000',
- ],
- 'StickySessionEnabled' => [
- 'title' => '是否开启会话保持',
- 'description' => 'Indicates whether session persistence is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
- ],
- 'StickySessionType' => [
- 'title' => '会话保持类型',
- 'description' => 'The method that is used to handle the cookie. Valid values:'."\n"
- ."\n"
- .'* **insert**: inserts the cookie. The first time a client accesses ALB, ALB inserts the SERVERID cookie into the HTTP or HTTPS response packet. Subsequent requests from the client that carry this cookie are forwarded to the same backend server as the first request.'."\n"
- .'* **Server**: rewrites the cookie. ALB 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',
- ],
- ],
- ],
- 'VpcId' => [
- 'title' => '服务器组所在VpcId',
- 'description' => 'The ID of the VPC to which the ALB instance belongs.'."\n",
- 'type' => 'string',
- 'example' => 'vpc-bp15zckdt37pq72zv****',
- ],
- 'Tags' => [
- 'title' => '标签列表',
- 'description' => 'The tags that are added to the server group.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags that are added to the server group.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => '标签键',
- 'description' => 'The tag key.'."\n",
- 'type' => 'string',
- 'example' => 'Test',
- ],
- 'Value' => [
- 'title' => '标签值',
- 'description' => 'The tag value.'."\n",
- 'type' => 'string',
- 'example' => 'Test',
- ],
- ],
- ],
- ],
- 'ConfigManagedEnabled' => [
- 'title' => '是否开启配置管理',
- 'description' => 'Indicates whether configuration management is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
- ],
- 'UpstreamKeepaliveEnabled' => [
- 'title' => '是否开启后端长链接',
- 'description' => 'Indicates whether persistent TCP connections are enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
- ],
- 'Ipv6Enabled' => [
- 'title' => '是否支持Ipv6',
- 'description' => 'Indicates whether IPv6 is supported. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
- ],
- 'ServerCount' => [
- 'title' => '服务器组内服务器数量',
- 'description' => 'The number of backend servers in the server group.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'ServiceName' => [
- 'title' => '服务器名称',
- 'description' => 'The name of the server group.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- 'UchConfig' => [
- 'title' => 'url一致性hash参数配置',
- 'description' => 'The configuration of consistent hashing based on URLs.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Type' => [
- 'title' => '参数类型',
- 'description' => 'The parameter type. Valid value: QueryString.'."\n",
- 'type' => 'string',
- 'example' => 'QueryString',
- ],
- 'Value' => [
- 'title' => '一致性hash参数值',
- 'description' => 'The hash value.'."\n",
- 'type' => 'string',
- 'example' => 'abc',
- ],
- ],
- ],
- 'CreateTime' => [
- 'description' => 'The time when the resource was created.'."\n",
- 'type' => 'string',
- 'example' => '2022-07-02T02:49:05Z',
- ],
- 'ConnectionDrainConfig' => [
- 'description' => 'The configurations of connection draining.'."\n"
- ."\n"
- .'After connection draining is enabled, ALB maintains data transmission for a period of time after the backend server is removed or declared unhealthy.'."\n"
- .'> '."\n"
- .'> - Basic ALB instances do not support connection draining. Standard and WAF-enabled ALB instances support connection draining. '."\n"
- .'> - Server groups of the instance and IP types support connection draining. Server groups of the Function Compute type do not support connection draining.',
- 'type' => 'object',
- 'properties' => [
- 'ConnectionDrainEnabled' => [
- 'description' => 'Indicates whether connection draining is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
- ],
- 'ConnectionDrainTimeout' => [
- 'description' => 'The timeout period of connection draining.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '300',
- ],
- ],
- ],
- 'SlowStartConfig' => [
- 'title' => '慢启动配置',
- 'description' => 'The configurations of slow starts.'."\n"
- ."\n"
- .'After slow starts are enabled, ALB prefetches data to newly added backend servers. Requests distributed to the backend servers gradually increase.'."\n"
- ."\n"
- .'> '."\n"
- .'> - Basic ALB instances do not support slow starts. Standard and WAF-enabled ALB instances support slow starts.'."\n"
- .'> - Server groups of the instance and IP types support slow starts. Server groups of the Function Compute type do not support slow starts.'."\n"
- .'> - Slow start is supported only by the weighted round-robin scheduling algorithm.',
- 'type' => 'object',
- 'properties' => [
- 'SlowStartEnabled' => [
- 'description' => 'Indicates whether slow starts are enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
- ],
- 'SlowStartDuration' => [
- 'description' => 'The duration of a slow start.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '30',
- ],
- ],
- ],
- 'CrossZoneEnabled' => [
- 'description' => 'Indicates whether cross-zone load balancing is enabled. Valid values:'."\n"
- ."\n"
- .'* **true** (default)'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- ],
- ],
- ],
- 'TotalCount' => [
- 'title' => '总记录数',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1000',
- ],
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B******'],
],
+ 'example' => '',
],
],
],
- 'eventInfo' => [
- 'enable' => false,
- 'eventNames' => [],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"caeba0bbb2be03f8****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\",\\n \\"ServerGroups\\": [\\n {\\n \\"HealthCheckConfig\\": {\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckEnabled\\": true,\\n \\"HealthCheckHost\\": \\"www.example.com\\",\\n \\"HealthCheckCodes\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.1\\",\\n \\"HealthCheckInterval\\": 5,\\n \\"HealthCheckMethod\\": \\"HEAD\\",\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"HTTP\\",\\n \\"HealthCheckTimeout\\": 3,\\n \\"HealthyThreshold\\": 4,\\n \\"UnhealthyThreshold\\": 4\\n },\\n \\"Protocol\\": \\"HTTP\\",\\n \\"RelatedLoadBalancerIds\\": [\\n \\"alb-n5qw04uq8savfe****\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Scheduler\\": \\"Wrr\\",\\n \\"ServerGroupId\\": \\"sgp-cige6j****\\",\\n \\"ServerGroupName\\": \\"Group3\\",\\n \\"ServerGroupStatus\\": \\"Available\\",\\n \\"ServerGroupType\\": \\"Instance\\",\\n \\"StickySessionConfig\\": {\\n \\"Cookie\\": \\"B490B5EBF6F3CD402E515D22BCDA****\\",\\n \\"CookieTimeout\\": 1000,\\n \\"StickySessionEnabled\\": false,\\n \\"StickySessionType\\": \\"Insert\\"\\n },\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"ConfigManagedEnabled\\": false,\\n \\"UpstreamKeepaliveEnabled\\": false,\\n \\"Ipv6Enabled\\": false,\\n \\"ServerCount\\": 1,\\n \\"ServiceName\\": \\"test\\",\\n \\"UchConfig\\": {\\n \\"Type\\": \\"QueryString\\",\\n \\"Value\\": \\"abc\\"\\n },\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"ConnectionDrainConfig\\": {\\n \\"ConnectionDrainEnabled\\": false,\\n \\"ConnectionDrainTimeout\\": 300\\n },\\n \\"SlowStartConfig\\": {\\n \\"SlowStartEnabled\\": false,\\n \\"SlowStartDuration\\": 30\\n },\\n \\"CrossZoneEnabled\\": true\\n }\\n ],\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"<ListServerGroupsResponse>\\n <MaxResults>50</MaxResults>\\n <NextToken>caeba0bbb2be03f8****</NextToken>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <ServerGroups>\\n <HealthCheckConfig>\\n <HealthCheckConnectPort>80</HealthCheckConnectPort>\\n <HealthCheckEnabled>true</HealthCheckEnabled>\\n <HealthCheckHost>www.example.com</HealthCheckHost>\\n <HealthCheckCodes>http_2xx</HealthCheckCodes>\\n <HealthCheckHttpVersion>HTTP1.1</HealthCheckHttpVersion>\\n <HealthCheckInterval>5</HealthCheckInterval>\\n <HealthCheckMethod>HEAD</HealthCheckMethod>\\n <HealthCheckPath>/test/index.html</HealthCheckPath>\\n <HealthCheckProtocol>HTTP</HealthCheckProtocol>\\n <HealthCheckTimeout>3</HealthCheckTimeout>\\n <HealthyThreshold>4</HealthyThreshold>\\n <UnhealthyThreshold>4</UnhealthyThreshold>\\n </HealthCheckConfig>\\n <Protocol>HTTP</Protocol>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <Scheduler>Wrr</Scheduler>\\n <ServerGroupId>sgp-cige6j****</ServerGroupId>\\n <ServerGroupName>Group3</ServerGroupName>\\n <ServerGroupStatus>Available</ServerGroupStatus>\\n <ServerGroupType>Instance</ServerGroupType>\\n <StickySessionConfig>\\n <Cookie>B490B5EBF6F3CD402E515D22BCDA****</Cookie>\\n <CookieTimeout>1000</CookieTimeout>\\n <StickySessionEnabled>false</StickySessionEnabled>\\n <StickySessionType>Insert</StickySessionType>\\n </StickySessionConfig>\\n <VpcId>vpc-bp15zckdt37pq72zv****</VpcId>\\n <Tags>\\n <Key>Test</Key>\\n <Value>Test</Value>\\n </Tags>\\n <ConfigManagedEnabled>false</ConfigManagedEnabled>\\n <UpstreamKeepaliveEnabled>false</UpstreamKeepaliveEnabled>\\n <Ipv6Enabled>false</Ipv6Enabled>\\n <ServerCount>1</ServerCount>\\n <ServiceName>test</ServiceName>\\n <CreateTime>2023-03-21T07:43:10Z</CreateTime>\\n </ServerGroups>\\n <TotalCount>1000</TotalCount>\\n</ListServerGroupsResponse>","errorExample":""}]',
- 'title' => 'ListServerGroups',
- ],
- 'ListServerGroupServers' => [
- 'summary' => 'Queries servers in a server group.',
- 'methods' => [
- 'get',
- 'post',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.HttpListenerNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.DefaultCertificateUsed', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'ResourceNotAssociated.Certificate', 'errorMessage' => 'The specified resource %s is not associated.', 'description' => 'The specified resource %s is not associated.'],
+ ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => 'The specified resource of %s is being configured, please try again later.'],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B******\\"\\n}","type":"json"}]',
+ 'title' => 'DissociateAdditionalCertificatesFromListener',
+ 'description' => '**DissociateAdditionalCertificatesFromListener** is an asynchronous operation. After you send a request, the system returns a request ID, but the operation is still being performed in the background. You can call [](t2324486.xdita#)to query the status of the dissociation task:'."\n"
+ ."\n"
+ .'- If an additional certificate is in the **Dissociating** state, the dissociation is in progress.'."\n"
+ ."\n"
+ .'- If an additional certificate is in the **Dissociated** state, the dissociation is complete.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DissociateAdditionalCertificatesFromListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
],
+ ],
+ 'EnableDeletionProtection' => [
+ 'summary' => 'Enables deletion protection for a resource.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeCode' => '167',
- 'abilityTreeNodes' => [
- 'FEATUREslbULKWF1',
- ],
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'NextToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '分页查询标识',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* You do not need to specify this parameter for the first request.'."\n"
- .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXG****',
- ],
- ],
- [
- 'name' => 'MaxResults',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '查询数量',
- 'description' => 'The maximum number of entries to return. Valid values: **1** to **100**. If you do not specify a value, the default value **20** is used.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '1000',
- 'minimum' => '1',
- 'example' => '50',
- 'default' => '20',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => '', 'required' => false],
],
[
- 'name' => 'ServerGroupId',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '服务器组id',
- 'description' => 'The server group ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-atstuj3rtop****',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false**: (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
[
- 'name' => 'ServerIds',
+ 'name' => 'ResourceId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The IDs of the servers.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ID of the backend server. You can specify at most 40 server IDs in each call.'."\n"
- ."\n"
- .'* If the backend server group is of the **Instance** type, set this parameter to the ID of an Elastic Compute Service (ECS) instance, an elastic network interface (ENI), or an elastic container instance.'."\n"
- .'* If the backend server group is of the **Ip** type, set this parameter to an IP address.'."\n"
- .'* If the backend server group is of the **Fc** type, set this parameter to the Alibaba Cloud Resource Name (ARN) of a function.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'i-bp1e0u8f10by57wl****',
- 'title' => '服务器id',
- ],
- 'required' => false,
- 'maxItems' => 20,
- 'minItems' => 1,
- 'title' => '服务器id列表',
- ],
- ],
- [
- 'name' => 'Tag',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tags that are added to the server group. You can specify up to 10 tags in each call.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags that are added to the server group. You can specify up to 10 tags in each call.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => '标签键',
- 'description' => 'The tag key. You can specify up to 10 tag keys.'."\n"
- ."\n"
- .'The tag key can be up to 64 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Test',
- ],
- 'Value' => [
- 'title' => '标签值',
- 'description' => 'The tag value. You can specify up to 10 tag values.'."\n"
- ."\n"
- .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Test',
- ],
- ],
- 'required' => false,
- 'title' => '服务器组绑定的标签',
- ],
- 'required' => false,
- 'title' => '服务器组绑定的标签列表',
- ],
+ 'schema' => ['description' => 'The Application Load Balancer (ALB) instance ID.', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The operation to enable the deletion protection feature.',
'type' => 'object',
'properties' => [
- 'MaxResults' => [
- 'title' => '本次查询返回记录数量',
- 'description' => 'The maximum number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '50',
- ],
- 'NextToken' => [
- 'title' => '分页查询标识',
- 'description' => 'The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If **NextToken** is not empty, the value of NextToken can be used in the next request to retrieve a new page of results.'."\n",
- 'type' => 'string',
- 'example' => 'caeba0bbb2be03f8****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
- 'Servers' => [
- 'title' => '后端服务器列表',
- 'description' => 'A list of backend servers.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The configuration of the backend server.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Description' => [
- 'title' => '描述信息',
- 'description' => 'The description of the backend server.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- 'Port' => [
- 'title' => '端口',
- 'description' => 'The port used by the backend server. Valid values: **1** to **65535**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '80',
- ],
- 'ServerId' => [
- 'title' => '服务器id',
- 'description' => 'The ID of the backend server.'."\n"
- ."\n"
- .'> If **ServerType** is set to **Fc**, **ServerId** is the ARN of a function.'."\n",
- 'type' => 'string',
- 'example' => 'i-bp1f9kdprbgy9uiu****',
- ],
- 'ServerIp' => [
- 'title' => '服务器ip',
- 'description' => 'The IP address in inclusive ENI mode.'."\n",
- 'type' => 'string',
- 'example' => '192.168.XX.XX',
- ],
- 'ServerType' => [
- 'title' => '后端服务器类型',
- 'description' => 'The type of the backend server.'."\n",
- 'type' => 'string',
- 'example' => 'Ecs',
- ],
- 'Status' => [
- 'title' => '状态',
- 'description' => 'The status of the backend server. Valid values:'."\n"
- ."\n"
- .'* **Adding**'."\n"
- .'* **Available**'."\n"
- .'* **Configuring**'."\n"
- .'* **Removing**'."\n",
- 'type' => 'string',
- 'example' => 'Available',
- ],
- 'Weight' => [
- 'title' => '权重',
- 'description' => 'The weight of the backend server. An ECS instance with a higher weight receives more requests.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '100',
- ],
- 'ServerGroupId' => [
- 'title' => '服务器组id',
- 'description' => 'The ID of the server group.'."\n",
- 'type' => 'string',
- 'example' => 'sgp-qy042e1jabmprh****',
- ],
- 'RemoteIpEnabled' => [
- 'title' => '是否是远端ip',
- 'description' => 'Indicates whether the remote IP address feature is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- ],
- 'title' => '后端服务器',
- ],
- ],
- 'TotalCount' => [
- 'title' => '总记录数',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '3',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ],
403 => [
- [
- 'errorCode' => 'Forbidden.ServerGroup',
- 'errorMessage' => 'Authentication has failed for ServerGroup.',
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
+ ],
+ [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'title' => 'EnableDeletionProtection',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:EnableDeletionProtection',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"caeba0bbb2be03f8****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF*****\\",\\n \\"Servers\\": [\\n {\\n \\"Description\\": \\"test\\",\\n \\"Port\\": 80,\\n \\"ServerId\\": \\"i-bp1f9kdprbgy9uiu****\\",\\n \\"ServerIp\\": \\"192.168.XX.XX\\",\\n \\"ServerType\\": \\"Ecs\\",\\n \\"Status\\": \\"Available\\",\\n \\"Weight\\": 100,\\n \\"ServerGroupId\\": \\"sgp-qy042e1jabmprh****\\",\\n \\"RemoteIpEnabled\\": true\\n }\\n ],\\n \\"TotalCount\\": 3\\n}","errorExample":""},{"type":"xml","example":"<ListServerGroupServersResponse>\\n <MaxResults>50</MaxResults>\\n <NextToken>caeba0bbb2be03f8****</NextToken>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <Servers>\\n <Description>test</Description>\\n <Port>80</Port>\\n <ServerId>i-bp1f9kdprbgy9uiu****</ServerId>\\n <ServerIp>192.168.XX.XX</ServerIp>\\n <ServerType>Ecs</ServerType>\\n <Status>Available</Status>\\n <Weight>100</Weight>\\n <ServerGroupId>sgp-qy042e1jabmprh****</ServerGroupId>\\n <RemoteIpEnabled>true</RemoteIpEnabled>\\n </Servers>\\n <TotalCount>3</TotalCount>\\n</ListServerGroupServersResponse>","errorExample":""}]',
- 'title' => 'ListServerGroupServers',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]',
],
- 'RemoveServersFromServerGroup' => [
- 'summary' => 'Removes backend servers from a server group.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'EnableLoadBalancerAccessLog' => [
+ 'summary' => 'Enables the access log feature for an Application Load Balancer (ALB) instance.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -10061,1446 +6170,1376 @@
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
+ 'abilityTreeCode' => '205',
+ 'abilityTreeNodes' => ['FEATUREslb4A6LP3'],
],
'parameters' => [
[
- 'name' => 'ServerGroupId',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '后端服务器Id',
- 'description' => 'The server group ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'sgp-atstuj3rtop****',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF******', 'title' => '', 'required' => false],
],
[
- 'name' => 'Servers',
+ 'name' => 'DryRun',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '后端服务器',
- 'description' => 'The backend servers to be removed. You can specify up to 200 backend servers.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The configurations of the backend server.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Port' => [
- 'title' => '后端端口号',
- 'description' => 'The port that is used by the backend server. Valid values: **1** to **65535**.'."\n"
- ."\n"
- .'> This parameter is required when you set **ServerType** to **Ecs**, **Eni**, **Eci**, or **Ip**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'docRequired' => false,
- 'example' => '80',
- ],
- 'ServerId' => [
- 'title' => '后端服务器id',
- 'description' => 'The backend server ID.'."\n"
- ."\n"
- .'* If the server group is of the **Instance** type, set ServerId to the ID of a resource of the **Ecs**, **Eni**, or **Eci** type.'."\n"
- .'* If the server group is of the **Ip** type, set this parameter to IP addresses.'."\n"
- .'* If the server group is of the **Fc** type, set ServerId to the Alibaba Cloud Resource Name (ARN) of a function.'."\n"
- ."\n"
- .'> You can call the [ListServerGroups](~~2254862~~) operation to query information about the server group type so that you can set ServerId to a proper value.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'i-bp1f9kdprbgy9uiu****',
- ],
- 'ServerIp' => [
- 'title' => '后端服务器ip',
- 'description' => 'The IP address of the elastic network interface (ENI) in inclusive mode.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.1.1',
- ],
- 'ServerType' => [
- 'title' => '后端服务器类型',
- 'description' => 'The type of the backend server. Valid values:'."\n"
- ."\n"
- .'* **Ecs**: Elastic Compute Service (ECS) instance'."\n"
- .'* **Eni**: ENI'."\n"
- .'* **Eci**: elastic container instance'."\n"
- .'* **Ip**: IP address'."\n"
- .'* **Fc**: Function Compute instance'."\n",
- 'type' => 'string',
- 'required' => true,
- 'docRequired' => false,
- 'example' => 'Ecs',
- ],
- ],
- 'required' => false,
- ],
- 'required' => true,
- 'maxItems' => 200,
- 'minItems' => 1,
- ],
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'schema' => ['description' => 'The ALB instance ID.', 'type' => 'string', 'required' => true, 'example' => 'alb-bd6oylbckp6k9x****', 'title' => ''],
],
[
- 'name' => 'DryRun',
+ 'name' => 'LogProject',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'The project to which the access log is shipped.', 'type' => 'string', 'required' => true, 'example' => 'sls-setter', 'title' => ''],
+ ],
+ [
+ 'name' => 'LogStore',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The Logstore to which the access log is shipped.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'],
+ 'JobId' => ['title' => 'jobId of the request', 'description' => 'The ID of the asynchronous job.', 'type' => 'string', 'example' => 'ff7713ca-5818-4120-85e3-0bf9******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.ServerGroup',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.BackendServer',
- 'errorMessage' => 'The specified resource of %s is being configured, please try again later.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring',
- 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.',
- ],
+ ['errorCode' => 'OperationDenied.AccessLogEnabled', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
],
403 => [
- [
- 'errorCode' => 'Forbidden.ServerGroup',
- 'errorMessage' => 'Authentication is failed for ServerGroup.',
- ],
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
],
[
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.BackendServer',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'title' => 'EnableLoadBalancerAccessLog',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:EnableLoadBalancerAccessLog',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"<RemoveServersFromServerGroupResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</RemoveServersFromServerGroupResponse>","errorExample":""}]',
- 'title' => 'RemoveServersFromServerGroup',
- 'description' => '**RemoveServersFromServerGroup** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background.'."\n"
- ."\n"
- .'1. You can call [ListServerGroups](~~2254862~~) to query the status of a server group.'."\n"
- ."\n"
- .' * If the server group is in the **Configuring** state, the server group is being modified.'."\n"
- .' * If the server group is in the **Available** state, the server group is running.'."\n"
- ."\n"
- .'2. You can call [ListServerGroupServers](~~2254863~~) to query the status of a backend server.'."\n"
- ."\n"
- .' * If the backend server is in the **Removing** state, the backend server is being removed from the server group.'."\n"
- .' * If the backend server cannot be found, the backend server is no longer in the server group.'."\n",
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\",\\n \\"JobId\\": \\"ff7713ca-5818-4120-85e3-0bf9******\\"\\n}","type":"json"}]',
],
- 'ReplaceServersInServerGroup' => [
- 'summary' => 'Replaces backend servers in a server group.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'EnableLoadBalancerIpv6Internet' => [
+ 'summary' => 'Changes the type of the IPv6 address that is used by a dual-stack Application Load Balancer (ALB) instance from private to public.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeNodes' => [
- 'FEATUREslbULKWF1',
- ],
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'ServerGroupId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '后端服务器Id',
- 'description' => 'The ID of the server group.'."\n"
- ."\n"
- .'> You cannot perform this operation on a server group of the Function type.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'sgp-5114d593o96qxy****',
- ],
- ],
- [
- 'name' => 'AddedServers',
- 'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '待添加后端服务器',
- 'description' => 'The backend servers. You can specify at most 200 servers in each call.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The configurations of the backend server.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Description' => [
- 'title' => '描述信息',
- 'description' => 'The description of the backend server. The description must be 2 to 256 characters in length, and cannot start with http:// or https://.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Port' => [
- 'title' => '后端端口号',
- 'description' => 'The port used by the backend server in the server group. Valid values: **1** to **65535**. You can specify at most 200 servers in each call.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'docRequired' => true,
- 'example' => '80',
- ],
- 'ServerId' => [
- 'title' => '后端服务器id',
- 'description' => 'The ID of the backend server. You can specify at most 200 servers in each call.'."\n"
- ."\n"
- .'* If the server group is of the **Instance** type, set ServerId to the ID of a resource of the **Ecs**, **Eni**, or **Eci** type.'."\n"
- .'* If the server group is of the **Ip** type, set ServerId to IP addresses.'."\n"
- ."\n"
- .'> You cannot perform this operation on a server group of the Function Compute type. You can call the [ListServerGroups](~~213627~~) operation to query the type of server groups.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'i-bp1f9kdprbgy9uiu****',
- ],
- 'ServerIp' => [
- 'title' => '后端服务器ip',
- 'description' => 'The IP address of the elastic network interface (ENI) in exclusive mode.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.1.1',
- ],
- 'ServerType' => [
- 'title' => '后端服务器类型',
- 'description' => 'The type of backend server. You can specify at most 200 servers in each call. Valid values:'."\n"
- ."\n"
- .'* **Ecs**: Elastic Compute Service (ECS) instance'."\n"
- .'* **Eni**: ENI'."\n"
- .'* **Eci**: elastic container instance'."\n",
- 'type' => 'string',
- 'required' => true,
- 'docRequired' => true,
- 'example' => 'Ecs',
- ],
- 'Weight' => [
- 'title' => '后端服务器权重',
- 'description' => 'The weight of the backend server. You can specify at most 200 servers in each call.'."\n"
- ."\n"
- .'Valid values: **0** to **100**. Default value: **100**. If the value is set to **0**, no requests are forwarded to the server.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '100',
- ],
- ],
- 'required' => false,
- ],
- 'required' => true,
- 'maxItems' => 200,
- 'minItems' => 1,
- ],
- ],
- [
- 'name' => 'RemovedServers',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '待删除后端服务器',
- 'description' => 'The backend servers that you want to remove.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The configurations of the backend servers that you want to remove.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerId' => [
- 'title' => '后端服务器id',
- 'description' => 'The ID of the backend server. You can specify at most 200 servers in each call.'."\n"
- ."\n"
- .'* If the server group is of the **Instance** type, set ServerId to the ID of a resource of the **Ecs**, **Eni**, or **Eci** type.'."\n"
- .'* If the server group is of the **Ip** type, set ServerId to IP addresses.'."\n"
- ."\n"
- .'> You cannot perform this operation on a server group of the Function Compute type. You can call the [ListServerGroups](~~213627~~) operation to query the type of server groups.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'ecs-bp1ac9uozods2uc****',
- ],
- 'ServerIp' => [
- 'title' => '后端服务器ip',
- 'description' => 'The IP address of the ENI in exclusive mode.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.1.12',
- ],
- 'ServerType' => [
- 'title' => '后端服务器类型',
- 'description' => 'The type of backend server. You can specify at most 200 servers in each call. Valid values:'."\n"
- ."\n"
- .'* **Ecs**: ECS instance'."\n"
- .'* **Eni**: ENI'."\n"
- .'* **Eci**: elastic container instance'."\n",
- 'type' => 'string',
- 'required' => true,
- 'docRequired' => true,
- 'example' => 'ecs',
- ],
- 'Port' => [
- 'title' => '端口',
- 'description' => 'The port that is used by the backend server. Valid values: **1** to **65535**. You can specify at most 200 servers in each call.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'docRequired' => true,
- 'example' => '81',
- ],
- ],
- 'required' => false,
- ],
- 'required' => true,
- 'maxItems' => 200,
- 'minItems' => 1,
- ],
+ 'allowEmptyValue' => false,
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等Token',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false**(default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
- 'name' => 'DryRun',
+ 'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => 'dryRun',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx` HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['title' => '', 'description' => 'The ALB instance ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'alb-o2cvudgo6rlqz7****'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'Schema of Response'."\n",
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'BB920797-D70E-567F-8098-55A861DD7912'],
+ 'JobId' => ['title' => '', 'description' => 'The asynchronous task ID.'."\n", 'type' => 'string', 'example' => '4a6e3ad4-ef08-4ab1-b332-fa621cfe****'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.ServerGroup',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'Conflict.BackendServer',
- 'errorMessage' => 'There is already %s having the same configuration with %s.',
- ],
- [
- 'errorCode' => 'DuplicatedParam.BackendServer',
- 'errorMessage' => 'The param of %s is duplicated.',
- ],
- [
- 'errorCode' => 'OperationDenied.EciNotSupportJobType',
- 'errorMessage' => 'The operation is not allowed because of eci not support job type.',
- ],
- [
- 'errorCode' => 'Mismatch.ServerType',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring',
- 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.BackendServer',
- 'errorMessage' => 'The specified resource of %s is being configured, please try again later.',
- ],
- [
- 'errorCode' => 'IdempotentParameterMismatch',
- 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.',
- ],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.NonDualStackInstance', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.Ipv6InternetInstance', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Ecs',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Eci',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Eni',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.BackendServer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ 403 => [
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
+ ],
+ [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"<ReplaceServersInServerGroupResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</ReplaceServersInServerGroupResponse>","errorExample":""}]',
- 'title' => 'ReplaceServersInServerGroup',
- 'description' => '**ReplaceServersInServerGroup** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background.'."\n"
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BB920797-D70E-567F-8098-55A861DD7912\\",\\n \\"JobId\\": \\"4a6e3ad4-ef08-4ab1-b332-fa621cfe****\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableLoadBalancerIpv6InternetResponse>\\n <RequestId>BB920797-D70E-567F-8098-55A861DD7912</RequestId>\\n <JobId>4a6e3ad4-ef08-4ab1-b332-fa621cfe****</JobId>\\n</EnableLoadBalancerIpv6InternetResponse>","errorExample":""}]',
+ 'title' => 'EnableLoadBalancerIpv6Internet',
+ 'description' => '### Prerequisites'."\n"
."\n"
- .'1. You can call the [ListServerGroups](~~213627~~) operation to query the status of a server group.'."\n"
+ .'An ALB instance is created and IPv4/IPv6 dual stack is enabled for the instance. You can call the [CreateLoadBalancer](~~214358~~) operation and set **AddressIpVersion** to **DualStack** to create a dual-stack ALB instance.'."\n"
."\n"
- .' * If a server group is in the **Configuring** state, it indicates that the server group is being modified.'."\n"
- .' * If a server group is in the **Available** state, it indicates that the server group is running.'."\n"
+ .'> If you set **AddressIpVersion** to **DualStack**:'."\n"
."\n"
- .'2. You can call the [ListServerGroupServers](~~213628~~) operation to query the status of a backend server.'."\n"
+ .'* If you set **AddressType** to **Internet**, the ALB instance uses a public IPv4 IP address and a private IPv6 address.'."\n"
."\n"
- .' * If a backend server is in the **Replacing** state, it indicates that the server is being removed from the server group and a new server is added to the server group.'."\n"
- .' * If a backend server is in the \\*\\*Available\\*\\* state, it indicates that the server is running.'."\n",
- ],
- 'CreateRule' => [
- 'summary' => 'Creates a forwarding rule for a listener.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ .'* If you set **AddressType** to **Intranet**, the ALB instance uses a private IPv4 IP address and a private IPv6 address.'."\n"
+ ."\n"
+ .'### Description'."\n"
+ ."\n"
+ .'* After the EnableLoadBalancerIpv6Internet operation is called, the value of **Ipv6AddressType** is changed to **Internet** and the type of the IPv6 address of the ALB instance is changed from private to public. If you upgrade the instance or the instance scales elastic network interfaces (ENIs) along with workloads, public IPv6 addresses are automatically enabled for the instance and the new ENIs. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the value of **Ipv6AddressType**.'."\n"
+ ."\n"
+ .'* **EnableLoadBalancerIpv6Internet** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the status of the task.'."\n"
+ ."\n"
+ .' * If the ALB instance is in the **Configuring** state, the network type of the IPv6 address that is used by the ALB instance is being changed.'."\n"
+ .' * If the ALB instance is in the **Active** state, the network type of the IPv6 address that is used by the ALB instance is changed.'."\n",
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:EnableLoadBalancerIpv6Internet',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'alb:AddressType', 'validationType' => 'always'],
+ ],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
+ ],
],
+ ],
+ 'GetHealthCheckTemplateAttribute' => [
+ 'summary' => 'Queries the details about a health check template.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'create',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeCode' => '417',
- 'abilityTreeNodes' => [
- 'FEATUREslbM7ALO6',
- ],
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '160',
+ 'abilityTreeNodes' => ['FEATUREslb6RAQIN'],
],
'parameters' => [
[
- 'name' => 'ListenerId',
+ 'name' => 'HealthCheckTemplateId',
'in' => 'query',
- 'schema' => [
- 'title' => '监听标识',
- 'description' => 'The listener ID of the ALB instance.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
+ 'schema' => ['title' => '', 'description' => 'The ID of the health check template.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'hct-x4jazoyi6tvsq9****'],
],
- [
- 'name' => 'ClientToken',
- 'in' => 'query',
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckConnectPort' => ['title' => '', 'description' => 'The port that is used for health checks.'."\n"
+ ."\n"
+ .'Valid values: **0** to **65535**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '80'],
+ 'HealthCheckHost' => ['title' => '', 'description' => 'The domain name that is used for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **$SERVER_IP**: the private IP addresses of backend servers. If an IP address is specified, or this parameter is not specified, the ALB instance uses the private IP addresses of backend servers as domain names 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 `HealthCheckProtocol` is set to **HTTP** or **HTTPS**.'."\n", 'type' => 'string', 'example' => '$SERVER_IP'],
+ 'HealthCheckCodes' => [
+ 'title' => '',
+ 'description' => 'The HTTP status codes that indicate a healthy backend server.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The HTTP status code that indicates a healthy backend server.'."\n"
+ ."\n"
+ .'* If **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, you can set **HealthCheckCodes** to **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, or **http\\_5xx**. Separate multiple status codes with commas (,).'."\n"
+ .'* If **HealthCheckProtocol** is set to **gRPC**, the valid values of **HealthCheckCodes** are from **0 to 99**. The default value is **0**. Value ranges are supported. You can enter at most 20 value ranges. Separate multiple value ranges with commas (,).'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n", 'type' => 'string', 'example' => 'http_2xx', 'title' => ''],
+ 'example' => '',
+ ],
+ 'HealthCheckHttpVersion' => ['title' => '', 'description' => 'The HTTP version for health checks.'."\n"
+ ."\n"
+ .'Valid values: **HTTP1.0** and **HTTP1.1**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set `HealthCheckProtocol` to **HTTP** or **HTTPS**.'."\n", 'type' => 'string', 'example' => 'HTTP1.0'],
+ 'HealthCheckTemplateId' => ['title' => '', 'description' => 'The ID of the health check template.'."\n", 'type' => 'string', 'example' => 'hct-x4jazoyi6tvsq9****'],
+ 'HealthCheckInterval' => ['title' => '', 'description' => 'The interval at which health checks are performed. Unit: seconds. Valid values: **1 to 50**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3'],
+ 'HealthCheckMethod' => ['title' => '', 'description' => 'The HTTP method that is used for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **HEAD** (default): By default, HTTP and HTTPS health checks use the HEAD method.'."\n"
+ .'* **GET**: If the length of a response exceeds 8 KB, the response is truncated. However, the health check result is not affected.'."\n"
+ .'* **POST**: gRPC health checks use the POST method by default.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n", 'type' => 'string', 'example' => 'GET'],
+ 'HealthCheckPath' => ['title' => 'uri', '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, the following special characters: - / . % ? # &, and the following extended characters: `_ ; ~ ! ( ) * [ ] @ $ ^ : \' , +`. The URL must start with a forward slash (/).'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n", 'type' => 'string', 'example' => '/test/index.html'],
+ 'HealthCheckProtocol' => ['title' => '', 'description' => 'The protocol that is used for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **HTTP** (default): HTTP health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers.'."\n"
+ .'* **HTTPS**: The ALB instance sends HEAD or GET requests, which simulate browser requests, to check whether the backend server is healthy. HTTPS supports encryption and provides higher security than HTTP.'."\n"
+ .'* **TCP**: TCP health checks send TCP SYN packets to a backend server to probe the availability of backend servers.'."\n"
+ .'* **gRPC**: gRPC health checks send POST or GET requests to a backend server to probe the availability of backend servers.'."\n", 'type' => 'string', 'example' => 'HTTP'],
+ 'HealthCheckTemplateName' => ['title' => '', 'description' => 'The name of the health check template.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", 'type' => 'string', 'example' => 'HealthCheckTemplate1'],
+ 'HealthCheckTimeout' => ['title' => '', 'description' => 'The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the backend server is declared unhealthy. Unit: seconds.'."\n"
+ ."\n"
+ .'Valid values: **1** to **300**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200'],
+ 'HealthyThreshold' => ['title' => '', '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', 'example' => '5'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'DB1AFC33-DAE8-528E-AA4D-4A6A******'],
+ 'UnhealthyThreshold' => ['title' => '', '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', 'example' => '5'],
+ 'Tags' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag key cannot start with `acs:` or `aliyun`.'."\n", 'type' => 'string', 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length, and cannot start with `acs:`. The tag value cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'example' => 'product', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'ResourceGroupId' => ['description' => 'The resource group ID.'."\n", 'type' => 'string', 'example' => 'rg-atstuj3rtop****', 'title' => ''],
+ ],
+ 'example' => '',
],
],
- [
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ ['errorCode' => 'Forbidden.HealthCheckTemplate', 'errorMessage' => 'Authentication has failed for HealthCheckTemplate.', 'description' => ''],
],
[
- 'name' => 'Priority',
- 'in' => 'query',
- 'schema' => [
- 'title' => '转发规则优先级',
- 'description' => 'The priority of the forwarding rule. Valid values: **1 to 10000**. A smaller value indicates a higher priority.'."\n"
- ."\n"
- .'> The priorities of the forwarding rules created for the same listener must be unique.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'example' => '10',
+ ['errorCode' => 'ResourceNotFound.HealthCheckTemplate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'title' => 'GetHealthCheckTemplateAttribute',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:GetHealthCheckTemplateAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthchecktemplateId}'],
+ ],
],
],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckHost\\": \\"$SERVER_IP\\",\\n \\"HealthCheckCodes\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.0\\",\\n \\"HealthCheckTemplateId\\": \\"hct-x4jazoyi6tvsq9****\\",\\n \\"HealthCheckInterval\\": 3,\\n \\"HealthCheckMethod\\": \\"GET\\",\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"HTTP\\",\\n \\"HealthCheckTemplateName\\": \\"HealthCheckTemplate1\\",\\n \\"HealthCheckTimeout\\": 200,\\n \\"HealthyThreshold\\": 5,\\n \\"RequestId\\": \\"DB1AFC33-DAE8-528E-AA4D-4A6A******\\",\\n \\"UnhealthyThreshold\\": 5,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\"\\n}","errorExample":""},{"type":"xml","example":"<GetHealthCheckTemplateAttributeResponse>\\n <HealthCheckConnectPort>80</HealthCheckConnectPort>\\n <HealthCheckHost>$SERVER_IP</HealthCheckHost>\\n <HealthCheckCodes>http_2xx,http_3xx</HealthCheckCodes>\\n <HealthCheckHttpVersion>HTTP1.0</HealthCheckHttpVersion>\\n <HealthCheckTemplateId>hct-x4jazoyi6tvsq9****</HealthCheckTemplateId>\\n <HealthCheckInterval>3</HealthCheckInterval>\\n <HealthCheckMethod>GET</HealthCheckMethod>\\n <HealthCheckPath>/test/index.html</HealthCheckPath>\\n <HealthCheckProtocol>HTTP</HealthCheckProtocol>\\n <HealthCheckTemplateName>HealthCheckTemplate1</HealthCheckTemplateName>\\n <HealthCheckTimeout>200</HealthCheckTimeout>\\n <HealthyThreshold>5</HealthyThreshold>\\n <RequestId>DB1AFC33-DAE8-528E-AA4D-4A6AABE71945</RequestId>\\n <UnhealthyThreshold>5</UnhealthyThreshold>\\n</GetHealthCheckTemplateAttributeResponse>","errorExample":""}]',
+ ],
+ 'GetListenerAttribute' => [
+ 'summary' => 'Queries the details about a listener.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'Direction',
- 'in' => 'query',
- 'schema' => [
- 'title' => '转发规则方向',
- 'description' => 'The direction to which the forwarding rule is applied. Valid values:'."\n"
- ."\n"
- .'* **Request** (default): The forwarding rule is applied to the requests received by ALB.'."\n"
- .'* **Response**: The forwarding rule is applied to the responses returned by backend servers.'."\n"
- ."\n"
- .'> Basic ALB instances do not support the **Response** value.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Request',
- ],
+ 'AK' => [],
],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '189',
+ 'abilityTreeNodes' => ['FEATUREslbM7ALO6', 'FEATUREslbK3ZR0L', 'FEATUREslbN5IE4S'],
+ ],
+ 'parameters' => [
[
- 'name' => 'RuleActions',
+ 'name' => 'ListenerId',
'in' => 'query',
- 'style' => 'flat',
+ 'schema' => ['description' => 'The listener ID.', 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******', 'title' => ''],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '转发规则动作',
- 'description' => 'The actions of the forwarding rule.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The action of the forwarding rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'FixedResponseConfig' => [
- 'title' => '返回固定内容动作配置',
- 'description' => 'The configuration of the custom response.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Content' => [
- 'title' => '内容',
- 'description' => 'The content of the custom response. The content cannot exceed 1 KB in size, and can contain only ASCII characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'dssacav',
- ],
- 'ContentType' => [
- 'title' => '内容类型',
- 'description' => 'The format of the response.'."\n"
- ."\n"
- .'Valid values: **text/plain**, **text/css**, **text/html**, **application/javascript**, and **application/json**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'text/plain',
- ],
- 'HttpCode' => [
- 'title' => 'HTTP响应码',
- 'description' => 'The HTTP status code in responses. Valid values: **2xx**, **4xx**, **5xx**. The value must be a numeric string. **x** must be a digit.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP_200',
- ],
- ],
- 'required' => false,
- ],
- 'ForwardGroupConfig' => [
- 'title' => '转发组动作配置',
- 'description' => 'The server groups to which requests are forwarded. You can specify at most five server groups for each forwarding rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupTuples' => [
- 'title' => '转发到的目的服务器组列表',
- 'description' => 'The server groups to which requests are forwarded. You can specify at most five server groups for each forwarding rule.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The server group to which requests are forwarded.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupId' => [
- 'title' => '服务器组标识',
- 'description' => 'The server group to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'sgp-k86c1ov501id6p****',
- ],
- 'Weight' => [
- 'title' => '权重',
- 'description' => 'The weight of the server group. A larger value specifies a higher weight. A server group with a higher weight receives more requests. Valid values: **0** to **100**.'."\n"
- ."\n"
- .'* If the number of destination server groups is 1, the default weight of the server group is **100**, unless you specify a weight.'."\n"
- .'* If the number of destination server groups is larger than 1, you must specify a weight.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'minimum' => '0',
- 'example' => '100',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- 'ServerGroupStickySession' => [
- 'title' => '服务器组之间会话保持',
- 'description' => 'The configuration of session persistence for the server groups.'."\n",
+ 'title' => 'Schema of Response',
+ 'description' => 'The details about the listener.',
+ 'type' => 'object',
+ 'properties' => [
+ 'AclConfig' => [
+ 'title' => '',
+ 'description' => 'The configurations of the access control lists (ACLs).',
+ 'type' => 'object',
+ 'properties' => [
+ 'AclRelations' => [
+ 'title' => '',
+ 'description' => 'The IDs of the ACLs that are associated with the listener.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The structure of the ACL that is associated with the listener.',
'type' => 'object',
'properties' => [
- 'Enabled' => [
- 'title' => '是否开启会话保持',
- 'description' => 'Specifies whether to enable session persistence. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'Timeout' => [
- 'title' => '超时时间',
- 'description' => 'The timeout period of sessions. Unit: seconds. Valid values: **1** to **86400**. Default value: **1000**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '100',
- ],
+ 'AclId' => ['description' => 'The ID of the ACL that is associated with the listener.', 'type' => 'string', 'title' => '', 'example' => 'acl-doc****'],
+ 'Status' => ['description' => 'Indicates whether the ACL is associated with the listener. Valid values:'."\n"
+ ."\n"
+ .'- **Associating**'."\n"
+ ."\n"
+ .'- **Associated**'."\n"
+ ."\n"
+ .'- **Dissociating**', 'type' => 'string', 'title' => '', 'example' => 'Associating'],
],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'InsertHeaderConfig' => [
- 'title' => '插入头部动作配置',
- 'description' => 'The key of the header to be inserted.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头',
- 'description' => 'The key of the header. The header key must be 1 to 40 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The header keys specified by **InsertHeaderConfig** must be unique.'."\n"
- ."\n"
- .'> You cannot specify the following header keys: `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, `authority`, and `x-forwarded-host`. The header keys are case-insensitive.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'key',
- ],
- 'Value' => [
- 'title' => 'HTTP标头内容',
- 'description' => 'The value of the header to be inserted.'."\n"
- ."\n"
- .'* If **ValueType** is set to **SystemDefined**, you can set the Value parameter to one of the following values:'."\n"
- ."\n"
- .' * **ClientSrcPort**: the client port.'."\n"
- .' * **ClientSrcIp**: the IP address of the client.'."\n"
- .' * **Protocol**: the request protocol (HTTP or HTTPS).'."\n"
- .' * **SLBId**: the ID of the ALB instance.'."\n"
- .' * **SLBPort**: the listener port.'."\n"
- ."\n"
- .'* If **ValueType** is set to **UserDefined**, a custom header value is supported. The header value must be 1 to 128 characters in length, and can contain printable characters whose ASCII values are `greater than or equal to 32 and lower than 127`. You can use asterisks (\\*) and question marks (?) as wildcard characters. `Quotation marks (")` are not supported. The header value cannot start or end with a space character, or end with a backslash (`\\`).'."\n"
- ."\n"
- .'* If **ValueType** is set to **ReferenceHeader**, you can reference a value from request headers. The value must be 1 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'UserDefined',
- ],
- 'ValueType' => [
- 'title' => '取值类型',
- 'description' => 'The type of the header. Valid values:'."\n"
- ."\n"
- .'* **UserDefined**: a custom header value.'."\n"
- .'* **ReferenceHeader**: a header value that is referenced from one of the request headers.'."\n"
- .'* **SystemDefined**: a header predefined by the system.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'UserDefined',
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
],
- 'required' => false,
- ],
- 'Order' => [
- 'title' => '优先级',
- 'description' => 'The priority of the action. Valid values: **1 to 50000**. A smaller value indicates a higher priority. The actions of a forwarding rule are applied in descending order of priority. This parameter cannot empty. The priority of each action within a forwarding rule must be unique.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'example' => '1',
- ],
- 'RedirectConfig' => [
- 'title' => '重定向动作配置',
- 'description' => 'The configuration of the redirect action.'."\n"
+ 'AclType' => ['description' => 'The type of the ACL. Valid values:'."\n"
."\n"
- .'> Do not set all fields in **RedirectConfig** to default values, except for **httpCode**.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Host' => [
- 'title' => '要跳转的主机地址',
- 'description' => 'The hostname to which requests are forwarded. Valid values:'."\n"
- ."\n"
- .'* **${host}** (default): If you set the value to ${host}, you cannot append other characters.'."\n"
- ."\n"
- .'* If you want to specify a custom value, make sure that the following requirements are met:'."\n"
- ."\n"
- .' * The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, and the following characters: - . \\* = ~ \\_ + \\ ^ ! $ & | ( ) \\[ ] ?.'."\n"
- .' * The hostname must contain at least one period (.) but cannot start or end with a period (.).'."\n"
- .' * The rightmost domain label can contain only letters and wildcard characters, and cannot contain digits or hyphens (-). The leftmost `domain label` can be an asterisk (\\*).'."\n"
- .' * The domain labels cannot start or end with hyphens (-).'."\n"
- .' * You can use asterisks (\\*) and question marks (?) anywhere in a domain label as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '${host}',
- ],
- 'HttpCode' => [
- 'title' => '跳转方式',
- 'description' => 'The HTTP status code that indicates the redirect type. Valid values: **301**, **302**, **303**, **307**, and **308**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '301',
- ],
- 'Path' => [
- 'title' => '要跳转的路径',
- 'description' => 'The URL to which requests are redirected. Valid values:'."\n"
- ."\n"
- .'* Default value: **${path}**. **${host}**, **${protocol}**, and **${port}** are also supported. Each variable can be specified only once. You can specify one or more of the preceding variables in each request. You can also combine them with a custom value.'."\n"
- ."\n"
- .'* If you want to specify a custom value, make sure that the following requirements are met:'."\n"
- ."\n"
- .' * The URL must be 1 to 128 characters in length, and is case-sensitive. You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n"
- .' * The URL must start with a forward slash (/) and can contain letters, digits, and the following special characters: `$ - _ . + / & ~ @ : \' * ?`. It cannot contain the following special characters: `% # ; ! ( ) [ ] ^ , \\ "`. You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test',
- ],
- 'Port' => [
- 'title' => '要跳转的端口',
- 'description' => 'The port to which requests are distributed.'."\n"
- ."\n"
- .'* **${port}** (default): If you set the value to ${port}, you cannot append other characters to the value.'."\n"
- .'* You can also enter a port number. Valid values: **1 to 63335**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '10',
- ],
- 'Protocol' => [
- 'title' => '要跳转的协议',
- 'description' => 'The redirect protocol. Valid values:'."\n"
- ."\n"
- .'* **${protocol}** (default): If you set the value to ${protocol}, you cannot modify the value or append other characters.'."\n"
- .'* **HTTP**'."\n"
- .'* **HTTPS**'."\n"
- ."\n"
- .'> * HTTPS listeners support only HTTPS redirection.'."\n"
- .'>* HTTP listeners support HTTP and HTTPS redirection.',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP',
- ],
- 'Query' => [
- 'title' => '要跳转的查询字符串',
- 'description' => 'The query string to which requests are redirected.'."\n"
- ."\n"
- .'* Default value: **${query}**. **${host}**, **${protocol}**, and **${port}** are also supported. Each variable can be specified only once. You can specify one or more of the preceding variables in each request. You can also combine them with a custom value.'."\n"
- ."\n"
- .'* If you want to specify a custom value, make sure that the following requirements are met:'."\n"
- ."\n"
- .' * The query string must be 1 to 128 characters in length.'."\n"
- .' * It can contain printable characters, excluding space characters, the special characters `# [ ] { } \\ | < > "`, and lowercase letters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '${query}',
- ],
- ],
- 'required' => false,
- ],
- 'RewriteConfig' => [
- 'title' => '内部重定向动作配置',
- 'description' => 'The configuration of the rewrite action.'."\n"
+ .'- **White**: a whitelist. Only requests from the IP addresses or CIDR blocks in the network ACL are forwarded. Whitelists are applicable to scenarios in which 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 for a listener, only requests from IP addresses that are on the whitelist are forwarded by the listener.'."\n"
+ ."\n"
+ .' If you enable a whitelist but do not add an IP address to the whitelist, the listener forwards all requests.'."\n"
."\n"
- .'> If you specify multiple actions for a forwarding rule, you must configure the **ForwardGroup** parameter for the **RewriteConfig** action.'."\n",
+ .'- **Black**: a blacklist. Requests from the IP addresses or CIDR blocks in the network ACL are denied. Blacklists are suitable for 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 addresses are added to the blacklist, the listener forwards all requests.', 'type' => 'string', 'title' => '', 'example' => 'White'],
+ ],
+ 'example' => '',
+ ],
+ 'Certificates' => [
+ 'title' => '',
+ 'description' => 'A list of certificates.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The configurations of the certificate.',
'type' => 'object',
'properties' => [
- 'Host' => [
- 'title' => '主机名',
- 'description' => 'The hostname to which requests are redirected. Valid values:'."\n"
- ."\n"
- .'* **${host}** (default): If you set the value to ${host}, you cannot append other characters.'."\n"
- ."\n"
- .'* If you want to specify a custom value, make sure that the following requirements are met:'."\n"
- ."\n"
- .' * The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, and the following characters: - . \\* = ~ \\_ + \\ ^ ! $ & | ( ) \\[ ] ?.'."\n"
- .' * The hostname must contain at least one period (.) but cannot start or end with a period (.).'."\n"
- .' * The rightmost domain label can contain only letters and wildcard characters, and cannot contain digits or hyphens (-). The leftmost `domain label` can be an asterisk (\\*).'."\n"
- .' * The domain labels cannot start or end with hyphens (-). You can use asterisks (\\*) and question marks (?) anywhere in a domain label as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'www.example.com',
- ],
- 'Path' => [
- 'title' => '路径',
- 'description' => 'The URL to which requests are redirected. Valid values:'."\n"
- ."\n"
- .'* Default value: **${path}**. **${host}**, **${protocol}**, and **${port}** are also supported. Each variable can be specified only once. You can specify one or more of the preceding variables in each request. You can also combine them with a custom value.'."\n"
- ."\n"
- .'* If you want to specify a custom value, make sure that the following requirements are met:'."\n"
- ."\n"
- .' * The URL must be 1 to 128 characters in length, and is case-sensitive. You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n"
- .' * The URL must start with a forward slash (/) and can contain letters, digits, and the following special characters: `$ - _ . + / & ~ @ : \' * ?`. It cannot contain the following special characters: `% # ; ! ( ) [ ] ^ , \\ "`. You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/tsdf',
- ],
- 'Query' => [
- 'title' => '查询',
- 'description' => 'The query string of the URL to which requests are distributed.'."\n"
- ."\n"
- .'* Default value: **${query}**. **${host}**, **${protocol}**, and **${port}** are also supported. Each variable can be specified only once. The preceding variables can be used at the same time or combined with a custom value.'."\n"
- ."\n"
- .'* If you want to specify a custom value, make sure that the following requirements are met:'."\n"
- ."\n"
- .' * The path must be 1 to 128 characters in length.'."\n"
- .' * It can contain printable characters, excluding space characters, the special characters `# [ ] { } \\ | < > "` and lowercase letters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '${query}',
- ],
+ 'CertificateId' => ['description' => 'The ID of the certificate. Only server certificates are supported.', 'type' => 'string', 'title' => '', 'example' => '123157*******'],
],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'Type' => [
- 'title' => '转发规则动作类型',
- 'description' => 'The action. Valid values:'."\n"
- ."\n"
- .'* **ForwardGroup**: distributes requests to multiple vServer groups.'."\n"
- .'* **Redirect**: redirects requests.'."\n"
- .'* **FixedResponse**: returns a custom response.'."\n"
- .'* **Rewrite**: rewrites requests.'."\n"
- .'* **InsertHeader**: inserts headers.'."\n"
- .'* **RemoveHeaderConfig:** deletes the header of a request.'."\n"
- .'* **TrafficLimit**: throttles traffic.'."\n"
- .'* **TrafficMirror**: mirrors network traffic.'."\n"
- .'* **Cors**: enables cross-origin resource sharing (CORS).'."\n"
- ."\n"
- .'The following action types are supported:'."\n"
- ."\n"
- .'* **FinalType**: Each forwarding rule can contain only one FinalType action, which is performed at the end. You can specify only one of **ForwardGroup**, **Redirect**, and **FixedResponse**.'."\n"
- .'* **ExtType**: Each forwarding rule can contain one or more **ExtType** actions, which are performed before the **FinalType** action. If you want to specify an ExtType action, you must also specify a **FinalType** action. You can specify multiple **InsertHeader** actions or one **Rewrite** action.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'ForwardGroup',
- ],
- 'TrafficLimitConfig' => [
- 'title' => '流量限速',
- 'description' => 'The configuration of the traffic throttling action.'."\n",
+ 'example' => '',
+ ],
+ 'CaCertificates' => [
+ 'title' => '',
+ 'description' => 'A list of default CA certificates.',
+ 'type' => 'array',
+ 'items' => [
'type' => 'object',
'properties' => [
- 'QPS' => [
- 'description' => 'The queries per second (QPS). Valid values: **1 to 1000000**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '100',
- ],
- 'PerIpQps' => [
- 'description' => 'The number of requests per IP address. Value values: **1 to 1000000**.'."\n"
- ."\n"
- .'> If both the **QPS** and **PerIpQps** parameters are specified, the value of the **QPS** parameter is smaller than the value of the PerIpQps parameter.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '80',
- ],
+ 'CertificateId' => ['description' => 'The ID of the default CA certificate.', 'type' => 'string', 'title' => '', 'example' => '139a00*****'],
+ 'Status' => ['description' => 'The status of the certificate.', 'type' => 'string', 'title' => '', 'example' => 'Associated'],
+ 'IsDefault' => ['description' => 'Indicates whether the certificate is a default certificate: Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
],
- 'required' => false,
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
],
- 'TrafficMirrorConfig' => [
- 'title' => '流量镜像',
- 'description' => 'The configuration of the traffic mirroring action.'."\n",
+ 'example' => '',
+ ],
+ 'CaEnabled' => ['description' => 'Indicates whether mutual authentication is enabled. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**', 'type' => 'boolean', 'title' => '', 'example' => 'false'],
+ 'DefaultActions' => [
+ 'title' => '',
+ 'description' => 'The actions of the default forwarding rule.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The configurations of the default forwarding rule.',
'type' => 'object',
'properties' => [
- 'TargetType' => [
- 'title' => '镜像目标类型',
- 'description' => 'The type of destination to which network traffic is mirrored. Valid values:'."\n"
- ."\n"
- .'* **ForwardGroupMirror**: a server group.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'ForwardGroupMirror',
- ],
- 'MirrorGroupConfig' => [
- 'title' => '镜像至服务器组',
- 'description' => 'The configuration of the server group to which traffic is mirrored.'."\n",
+ 'ForwardGroupConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the ForwardGroup action. This parameter is returned and takes effect when Type is set to **ForwardGroup**.',
'type' => 'object',
'properties' => [
'ServerGroupTuples' => [
- 'description' => 'The configuration of the server group to which traffic is mirrored.'."\n",
+ 'title' => '',
+ 'description' => 'The server group to which requests are forwarded.',
'type' => 'array',
'items' => [
- 'description' => 'The configuration of the server group to which traffic is mirrored.'."\n",
+ 'description' => 'The server groups to which requests are forwarded.',
'type' => 'object',
'properties' => [
- 'ServerGroupId' => [
- 'description' => 'The server group ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'sgp-00mkgijak0w4qgz9****',
- ],
+ 'ServerGroupId' => ['description' => 'The ID of the server group to which requests are forwarded.', 'type' => 'string', 'title' => '', 'example' => 'sgp-i5qt20******'],
],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
+ 'example' => '',
],
],
- 'required' => false,
+ 'example' => '',
],
+ 'Type' => ['description' => 'The type of the action.'."\n"
+ ."\n"
+ .'If **ForwardGroup** is returned, requests are forwarded to multiple vServer groups.', 'type' => 'string', 'title' => '', 'example' => 'ForwardGroup'],
],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'RemoveHeaderConfig' => [
- 'title' => '去除HTTP标头',
- 'description' => 'The HTTP headers to be removed.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头键',
- 'description' => 'The keys of the headers to be removed. The header keys must be 1 to 40 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The header keys specified in RemoveHeader must be unique.'."\n"
+ 'example' => '',
+ ],
+ 'GzipEnabled' => ['description' => 'Indicates whether GZIP compression is enabled to compress specific types of files. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'Http2Enabled' => ['description' => 'Indicates whether HTTP/2 is enabled. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTPS listener.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'IdleTimeout' => ['description' => 'The timeout period of an idle connection. Unit: seconds.'."\n"
+ ."\n"
+ .'If no requests are received within the specified timeout period, Application Load Balancer (ALB) closes the current connection. When a request is received, ALB establishes a new connection.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'],
+ 'ListenerDescription' => ['description' => 'The name of the listener.', 'type' => 'string', 'title' => '', 'example' => 'HTTP_80'],
+ 'ListenerId' => ['description' => 'The ID of the listener.', 'type' => 'string', 'title' => '', 'example' => 'lsn-o4u54y73wq7b******'],
+ 'ListenerPort' => ['description' => 'The frontend port that is used by the ALB instance.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '80'],
+ 'ListenerProtocol' => ['description' => 'The listener protocol. Valid values: **HTTP**, **HTTPS**, and **QUIC**.', 'type' => 'string', 'title' => '', 'example' => 'HTTP'],
+ 'ListenerStatus' => ['description' => 'The status of the listener. Valid values:'."\n"
+ ."\n"
+ .'- **Provisioning**'."\n"
+ ."\n"
+ .'- **Running**'."\n"
+ ."\n"
+ .'- **Configuring**'."\n"
+ ."\n"
+ .'- **Stopped**', 'type' => 'string', 'title' => '', 'example' => 'Running'],
+ 'LoadBalancerId' => ['description' => 'The ALB instance ID.', 'type' => 'string', 'title' => '', 'example' => 'alb-bd6oylbckp6k9x****'],
+ 'LogConfig' => [
+ 'title' => '',
+ 'description' => 'The logging configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'AccessLogRecordCustomizedHeadersEnabled' => ['description' => 'Indicates whether custom headers are recorded in the access log. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'AccessLogTracingConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of Xtrace. Xtrace is used to record requests sent to ALB.',
+ 'type' => 'object',
+ 'properties' => [
+ 'TracingEnabled' => ['description' => 'Indicates whether Xtrace is enabled. Valid values:'."\n"
."\n"
- .'* If Direction is set to Request, the following request headers cannot be removed: `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, `authority`, and `x-forwarded-host`. Request headers are not case-sensitive.'."\n"
- .'* If Direction is set to Response, the following response header keys are not supported: `connection`, `upgrade`, `content-length`, and `transfer-encoding`. The header keys are not case-sensitive.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> You can set this parameter to **true** only if the AccessLogEnabled parameter is set to true.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'TracingSample' => ['description' => 'The sampling rate of Xtrace. Valid values: 1 to 10000.'."\n"
+ ."\n"
+ .'> If **TracingEnabled** is set to **true**, this parameter is valid.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'],
+ 'TracingType' => ['description' => 'The Xtrace type. Supported Xtrace type: **Zipkin**.'."\n"
+ ."\n"
+ .'> If **TracingEnabled** is set to **true**, this parameter is valid.', 'type' => 'string', 'title' => '', 'example' => 'Zipkin'],
],
+ 'example' => '',
],
- 'required' => false,
],
- 'CorsConfig' => [
- 'title' => '跨域',
- 'description' => 'Request forwarding based on CORS.'."\n",
+ 'example' => '',
+ ],
+ 'QuicConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration information when the listener is associated with a QUIC listener.',
+ 'type' => 'object',
+ 'properties' => [
+ 'QuicListenerId' => ['description' => 'The ID of the QUIC listener. This parameter is returned when **QuicUpgradeEnabled** is set to **true**. Only HTTPS listeners support this parameter.'."\n"
+ ."\n"
+ .'> You must associate the HTTPS listener and the QUIC listener with the same ALB instance. In addition, make sure that the QUIC listener has never been associated with another listener.', 'type' => 'string', 'title' => '', 'example' => 'lsn-ek6ad66t****'],
+ 'QuicUpgradeEnabled' => ['description' => 'Indicates whether QUIC upgrade is enabled. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> Only HTTPS listeners support this parameter.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ ],
+ 'example' => '',
+ ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF******'],
+ 'RequestTimeout' => ['description' => 'The timeout period of a request. Unit: seconds.'."\n"
+ ."\n"
+ .'If no responses are received from the backend server within the specified timeout period, ALB returns an `HTTP 504` error code to the client.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '34'],
+ 'SecurityPolicyId' => ['description' => 'The security policy.'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTPS listener.', 'type' => 'string', 'title' => '', 'example' => 'tls_cipher_policy_1_1'],
+ 'XForwardedForConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the XForward headers.',
+ 'type' => 'object',
+ 'properties' => [
+ 'XForwardedForClientCertClientVerifyAlias' => ['description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertClientVerifyEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name is 1 to 40 characters in length, and can contain lowercase letters, hyphens (-), underscores (\\_), and digits.'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTPS listener.', 'type' => 'string', 'title' => '', 'example' => 'test_client-verify-alias_123456'],
+ 'XForwardedForClientCertClientVerifyEnabled' => ['description' => 'Indicates whether the `X-Forwarded-Clientcert-clientverify` header is used to retrieve the verification result of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTPS listener.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'XForwardedForClientCertFingerprintAlias' => ['description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertFingerprintEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name is 1 to 40 characters in length, and can contain lowercase letters, hyphens (-), underscores (\\_), and digits.'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTPS listener.', 'type' => 'string', 'title' => '', 'example' => 'test_finger-print-alias_123456'],
+ 'XForwardedForClientCertFingerprintEnabled' => ['description' => 'Indicates whether the `X-Forwarded-Clientcert-fingerprint` header is used to retrieve the fingerprint of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTPS listener.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'XForwardedForClientCertIssuerDNAlias' => ['description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertIssuerDNEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name is 1 to 40 characters in length, and can contain lowercase letters, hyphens (-), underscores (\\_), and digits.'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTPS listener.', 'type' => 'string', 'title' => '', 'example' => 'test_issue-dn-alias_123456'],
+ 'XForwardedForClientCertIssuerDNEnabled' => ['description' => 'Indicates whether the `X-Forwarded-Clientcert-issuerdn` header is used to retrieve information about the authority that issues the client certificate. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTPS listener.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'XForwardedForClientCertSubjectDNAlias' => ['description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertSubjectDNEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name is 1 to 40 characters in length, and can contain lowercase letters, hyphens (-), underscores (\\_), and digits.'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTPS listener.', 'type' => 'string', 'title' => '', 'example' => 'test_subject-dn-alias_123456'],
+ 'XForwardedForClientCertSubjectDNEnabled' => ['description' => 'Indicates whether the `X-Forwarded-Clientcert-subjectdn` header is used to retrieve information about the owner of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTPS listener.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'XForwardedForClientSrcPortEnabled' => ['description' => 'Indicates whether the `X-Forwarded-Client-Port` header is used to retrieve the client port. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTP or HTTPS listener.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'XForwardedForEnabled' => ['description' => 'Indicates whether the `X-Forwarded-For` header is used to retrieve the client IP address. Valid values:'."\n"
+ ."\n"
+ .'- **true** (default)'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> * If this parameter is set to **true**, the default value of the **XForwardedForProcessingMode** parameter is **append**. You can change it to **remove**.'."\n"
+ .'>'."\n"
+ .'> * If this parameter is set to **false**, the `X-Forwarded-For` header in the request is not modified in any way before the request is sent to backend servers.'."\n"
+ .'>'."\n"
+ .'> * This parameter is only available for HTTP and HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'XForwardedForProcessingMode' => ['description' => 'Specifies how the `X-Forwarded-For` header is processed. This parameter takes effect only when **XForwardedForEnabled** is set to **true**. Valid values:'."\n"
+ ."\n"
+ .'- **append** (default)'."\n"
+ ."\n"
+ .'- **remove**'."\n"
+ ."\n"
+ .'> * If this parameter is set to **append**, ALB appends the IP address of the last hop to the existing `X-Forwarded-For` header in the request before the request is sent to backend servers.'."\n"
+ .'>'."\n"
+ .'> * If this parameter is set to **remove**, ALB removes the `X-Forwarded-For` header in the request before the request is sent to backend servers, no matter whether the request carries the `X-Forwarded-For` header.'."\n"
+ .'>'."\n"
+ .'> * This parameter is only available for HTTP and HTTPS listeners.', 'type' => 'string', 'example' => 'append', 'title' => ''],
+ 'XForwardedForProtoEnabled' => ['description' => 'Indicates whether the `X-Forwarded-Proto` header is used to retrieve the listening protocol. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTP, HTTPS, or QUIC listener.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'XForwardedForSLBIdEnabled' => ['description' => 'Indicates whether the `SLB-ID` header is used to retrieve the ID of the CLB instance. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTP, HTTPS, or QUIC listener.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'XForwardedForSLBPortEnabled' => ['description' => 'Indicates whether the `X-Forwarded-Port` header is used to retrieve the listening port of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTP, HTTPS, or QUIC listener.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'XForwardedForClientSourceIpsEnabled' => ['description' => 'Indicates whether the `X-Forwarded-Client-Ip` header is used to retrieve the source port of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only when you create an HTTP, HTTPS, or QUIC listener.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
+ 'XForwardedForClientSourceIpsTrusted' => ['description' => 'The trusted proxy IP address.'."\n"
+ ."\n"
+ .'ALB traverses `X-Forwarded-For` backward and selects the first IP address that is not on the trusted IP address list as the real IP address of the client. The IP address is used in source IP address throttling.', 'type' => 'string', 'example' => '10.1.1.0/24', 'title' => ''],
+ 'XForwardedForHostEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Host` header to retrieve the client domain name. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false** (default)'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
+ ],
+ 'example' => '',
+ ],
+ 'Tags' => [
+ 'description' => 'The tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags.',
'type' => 'object',
'properties' => [
- 'AllowOrigin' => [
- 'title' => '允许的访问来源',
- 'description' => 'The trusted origins of CORS requests. You can specify one or more values, or only the wildcard character (`*`).'."\n"
- ."\n"
- .'* Each value must start with `http://` or `https://`, which must be followed by a valid domain name, including top-level domain names. Example: `http://*.test.abc.example.com`.'."\n"
- .'* You can specify a port in each value or leave the port empty. Valid values: **1** to **65535**.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The allowed origin of CORS requests.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'http://example.com',
- ],
- 'required' => false,
- ],
- 'AllowMethods' => [
- 'title' => '选择跨域访问时允许的HTTP方法',
- 'description' => 'The allowed HTTP methods of CORS requests.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The allowed HTTP method of CORS requests. Valid values:'."\n"
- ."\n"
- .'* **GET**'."\n"
- .'* **POST**'."\n"
- .'* **PUT**'."\n"
- .'* **DELETE**'."\n"
- .'* **HEAD**'."\n"
- .'* **OPTIONS**'."\n"
- .'* **PATCH**'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'GET',
- ],
- 'required' => false,
- ],
- 'AllowHeaders' => [
- 'title' => '允许跨域的Header列表',
- 'description' => 'The trusted headers of CORS requests.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The trusted header of CORS requests. You can specify an asterisk (`*`) as a wildcard header, or one or more values. Separate multiple values with commas (,). Each value can be up to 32 characters in length, and can contain only letters and digits. It cannot start or end with an underscore (\\_) or a hyphen (-).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_123',
- ],
- 'required' => false,
- ],
- 'ExposeHeaders' => [
- 'title' => '允许暴露的Header列表',
- 'description' => 'The headers that can be exposed.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The header that can be exposed. You can specify an asterisk (`*`) as a wildcard header, or one or more values. Separate multiple values with commas (,). Each value can be up to 32 characters in length, and can contain only letters and digits. It cannot start or end with an underscore (\\_) or a hyphen (-).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_123',
- ],
- 'required' => false,
- ],
- 'AllowCredentials' => [
- 'title' => '是否允许携带凭证信息',
- 'description' => 'Specifies whether credentials can be carried in CORS requests. Valid values:'."\n"
- ."\n"
- .'* **on**'."\n"
- .'* **off**'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'on',
- ],
- 'MaxAge' => [
- 'title' => '预检请求在浏览器的最大缓存时间',
- 'description' => 'The maximum cache time of dry run requests in the browser. Unit: seconds.'."\n"
- ."\n"
- .'Valid values: **-1** to **172800**.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'required' => false,
- 'example' => '1000',
- ],
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'product', 'title' => ''],
],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
+ 'title' => '',
+ 'example' => '',
],
- 'required' => true,
],
- 'required' => true,
- 'maxItems' => 100,
- 'minItems' => 1,
+ 'example' => '',
],
],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
+ ],
[
- 'name' => 'RuleConditions',
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'title' => 'GetListenerAttribute',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:GetListenerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'acs:ResourceTag', 'validationType' => 'always'],
+ ],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AclConfig\\": {\\n \\"AclRelations\\": [\\n {\\n \\"AclId\\": \\"acl-doc****\\",\\n \\"Status\\": \\"Associating\\"\\n }\\n ],\\n \\"AclType\\": \\"White\\"\\n },\\n \\"Certificates\\": [\\n {\\n \\"CertificateId\\": \\"123157*******\\"\\n }\\n ],\\n \\"CaCertificates\\": [\\n {\\n \\"CertificateId\\": \\"139a00*****\\",\\n \\"Status\\": \\"Associated\\",\\n \\"IsDefault\\": true\\n }\\n ],\\n \\"CaEnabled\\": false,\\n \\"DefaultActions\\": [\\n {\\n \\"ForwardGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-i5qt20******\\"\\n }\\n ]\\n },\\n \\"Type\\": \\"ForwardGroup\\"\\n }\\n ],\\n \\"GzipEnabled\\": true,\\n \\"Http2Enabled\\": true,\\n \\"IdleTimeout\\": 2,\\n \\"ListenerDescription\\": \\"HTTP_80\\",\\n \\"ListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTP\\",\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"LoadBalancerId\\": \\"alb-bd6oylbckp6k9x****\\",\\n \\"LogConfig\\": {\\n \\"AccessLogRecordCustomizedHeadersEnabled\\": true,\\n \\"AccessLogTracingConfig\\": {\\n \\"TracingEnabled\\": true,\\n \\"TracingSample\\": 100,\\n \\"TracingType\\": \\"Zipkin\\"\\n }\\n },\\n \\"QuicConfig\\": {\\n \\"QuicListenerId\\": \\"lsn-ek6ad66t****\\",\\n \\"QuicUpgradeEnabled\\": true\\n },\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\",\\n \\"RequestTimeout\\": 34,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_1\\",\\n \\"XForwardedForConfig\\": {\\n \\"XForwardedForClientCertClientVerifyAlias\\": \\"test_client-verify-alias_123456\\",\\n \\"XForwardedForClientCertClientVerifyEnabled\\": true,\\n \\"XForwardedForClientCertFingerprintAlias\\": \\"test_finger-print-alias_123456\\",\\n \\"XForwardedForClientCertFingerprintEnabled\\": true,\\n \\"XForwardedForClientCertIssuerDNAlias\\": \\"test_issue-dn-alias_123456\\",\\n \\"XForwardedForClientCertIssuerDNEnabled\\": true,\\n \\"XForwardedForClientCertSubjectDNAlias\\": \\"test_subject-dn-alias_123456\\",\\n \\"XForwardedForClientCertSubjectDNEnabled\\": true,\\n \\"XForwardedForClientSrcPortEnabled\\": true,\\n \\"XForwardedForEnabled\\": true,\\n \\"XForwardedForProcessingMode\\": \\"append\\",\\n \\"XForwardedForProtoEnabled\\": true,\\n \\"XForwardedForSLBIdEnabled\\": true,\\n \\"XForwardedForSLBPortEnabled\\": true,\\n \\"XForwardedForClientSourceIpsEnabled\\": false,\\n \\"XForwardedForClientSourceIpsTrusted\\": \\"10.1.1.0/24\\",\\n \\"XForwardedForHostEnabled\\": false\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n}","type":"json"}]',
+ ],
+ 'GetListenerHealthStatus' => [
+ 'summary' => 'Retrieves the health check status of a listener and its forwarding rules.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => ['FEATUREslb6RAQIN', 'FEATUREslb52757O', 'FEATUREslbH8SCXY', 'FEATUREslbR7E3ND'],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerId',
'in' => 'query',
- 'style' => 'flat',
+ 'schema' => ['description' => 'The ID of the listener.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'lsn-o4u54y73wq7b******'],
+ ],
+ [
+ 'name' => 'IncludeRule',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to include the health check results for forwarding rules.'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false** (default)', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'],
+ ],
+ [
+ 'name' => 'NextToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The token used to retrieve the next page of results.'."\n"
+ ."\n"
+ .'- You do not need to specify this parameter for the first request.'."\n"
+ ."\n"
+ .'- For subsequent requests, set this parameter to the value of **NextToken** returned in the previous response.', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of entries to return on each page. Range: **1** to **30**. Default: **20**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20', 'title' => ''],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '转发规则条件',
- 'description' => 'The match conditions of the forwarding rule.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The match condition of the forwarding rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'CookieConfig' => [
- 'title' => 'Cookie条件配置',
- 'description' => 'The key-value pairs of the cookie.'."\n",
+ 'title' => 'Schema of Response',
+ 'description' => 'The health check statuses of the listener and its associated forwarding rules.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ListenerHealthStatus' => [
+ 'title' => '',
+ 'description' => 'A list of health check statuses for the server groups that are associated with the listener.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The health check status of a server group that is associated with the listener.',
'type' => 'object',
'properties' => [
- 'Values' => [
- 'title' => 'Cookie键值对列表',
- 'description' => 'The cookie values.'."\n",
+ 'ListenerId' => ['description' => 'The ID of the listener.', 'type' => 'string', 'title' => '', 'example' => 'lsn-o4u54y73wq7b******'],
+ 'ListenerPort' => ['description' => 'The port of the listener.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '80'],
+ 'ListenerProtocol' => ['description' => 'The protocol of the listener.', 'type' => 'string', 'title' => '', 'example' => 'http'],
+ 'ServerGroupInfos' => [
+ 'title' => '',
+ 'description' => 'Information about the server groups.',
'type' => 'array',
'items' => [
- 'description' => 'The cookie value.'."\n",
+ 'description' => 'Information about a server group.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => 'Cookie条件键',
- 'description' => 'The cookie key.'."\n"
- ."\n"
- .'* The cookie key must be 1 to 100 characters in length.'."\n"
- .'* You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n"
- .'* The value can contain printable characters, excluding uppercase letters, space characters, and the following special characters: `; # [ ] { } \\ | < > & "`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Value' => [
- 'title' => 'Cookie条件值',
- 'description' => 'The cookie value.'."\n"
- ."\n"
- .'* The cookie value must be 1 to 100 characters in length.'."\n"
- .'* You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n"
- .'* The value can contain printable characters, excluding uppercase letters, space characters, and the following special characters: `; # [ ] { } \\ | < > & "`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
+ 'HealthCheckEnabled' => ['description' => 'Indicates whether health checks are enabled. A value of `on` indicates that they are enabled.', 'type' => 'string', 'title' => '', 'example' => 'on'],
+ 'NonNormalServers' => [
+ 'title' => '',
+ 'description' => 'A list of unhealthy backend servers.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The details of an unhealthy backend server.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Port' => ['description' => 'The port of the backend server.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '90'],
+ 'Reason' => [
+ 'title' => '',
+ 'description' => 'The reason why the backend server is unhealthy.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ActualResponse' => ['description' => 'The actual response code returned by the backend server. For example, `302`.'."\n"
+ ."\n"
+ .'> This parameter is returned only when `ReasonCode` is set to `RESPONSE_MISMATCH`.', 'type' => 'string', 'title' => '', 'example' => '302'],
+ 'ExpectedResponse' => ['description' => 'The expected response code from the backend server.'."\n"
+ ."\n"
+ .'You can specify multiple values. Separate them with commas (`,`).'."\n"
+ ."\n"
+ .'> This parameter is returned only when `ReasonCode` is set to `RESPONSE_MISMATCH`.', 'type' => 'string', 'title' => '', 'example' => 'HTTP_2xx'],
+ 'ReasonCode' => ['description' => 'The detailed reason why the backend server is in an abnormal `Status`.'."\n"
+ .'This parameter is returned only for HTTP and HTTPS listeners and forwarding rules.'."\n"
+ ."\n"
+ .'- `CONNECT_TIMEOUT`: The connection to the backend server timed out during a health check.'."\n"
+ ."\n"
+ .'- `CONNECT_FAILED`: The connection to the backend server failed during a health check.'."\n"
+ ."\n"
+ .'- `RECV_RESPONSE_FAILED`: A response was not received from the backend server during a health check.'."\n"
+ ."\n"
+ .'- `RECV_RESPONSE_TIMEOUT`: The health check timed out while waiting for a response from the backend server.'."\n"
+ ."\n"
+ .'- `SEND_REQUEST_FAILED`: The health check request failed to be sent to the backend server.'."\n"
+ ."\n"
+ .'- `SEND_REQUEST_TIMEOUT`: The health check timed out while sending a request to the backend server.'."\n"
+ ."\n"
+ .'- `RESPONSE_FORMAT_ERROR`: The health check response from the backend server was malformed.'."\n"
+ ."\n"
+ .'- `RESPONSE_MISMATCH`: The health check response code from the backend server did not match the expected code.', 'type' => 'string', 'title' => '', 'example' => 'RESPONSE_MISMATCH'],
+ ],
+ 'example' => '',
+ ],
+ 'ServerId' => ['description' => 'The ID of the backend server.', 'type' => 'string', 'title' => '', 'example' => 'i-uf62h8v******'],
+ 'ServerIp' => ['description' => 'The IP address of the backend server.', 'type' => 'string', 'title' => '', 'example' => '192.168.8.10'],
+ 'Status' => ['description' => 'The health check status. Valid values:'."\n"
+ ."\n"
+ .'- `Initial`: The server is being initialized. Although health checks are configured, the first result has not yet been received.'."\n"
+ ."\n"
+ .'- `Unhealthy`: The server has failed multiple consecutive health checks.'."\n"
+ ."\n"
+ .'- `Unused`: The server is not in use. This can occur if its weight is set to 0, or if cross-zone load balancing is disabled and the server is in a different availability zone than the ALB instance.'."\n"
+ ."\n"
+ .'- `Unavailable`: Health checks are disabled for this server.', 'type' => 'string', 'title' => '', 'example' => 'Initial'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
+ 'ServerGroupId' => ['description' => 'The ID of the server group.', 'type' => 'string', 'title' => '', 'example' => 'sgp-8ilqs4axp6******'],
+ 'ActionType' => ['description' => 'The type of action for the server group. Valid values:'."\n"
+ ."\n"
+ .'- `ForwardGroup`: Forwards traffic to the server group.'."\n"
+ ."\n"
+ .'- `TrafficMirror`: Mirrors traffic to the server group.', 'type' => 'string', 'example' => 'TrafficMirror', 'title' => ''],
],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
- 'maxItems' => 50,
+ 'example' => '',
],
],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'HeaderConfig' => [
- 'title' => 'HTTP标头条件配置',
- 'description' => 'The configuration of the header.'."\n",
+ 'example' => '',
+ ],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876F******'],
+ 'RuleHealthStatus' => [
+ 'title' => '',
+ 'description' => 'A list of health check statuses for the forwarding rules.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The health check status of a forwarding rule.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头键',
- 'description' => 'The header key.'."\n"
- ."\n"
- .'* The header key must be 1 to 40 characters in length.'."\n"
- .'* The key can contain letters, digits, hyphens (-), and underscores (\\_).'."\n"
- .'* Cookie and Host are not supported.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Port',
- ],
- 'Values' => [
- 'title' => 'HTTP标头值列表',
- 'description' => 'The header values.'."\n",
+ 'RuleId' => ['description' => 'The ID of the forwarding rule.', 'type' => 'string', 'title' => '', 'example' => 'rule-hp34s2h0xx1ht4nwo****'],
+ 'ServerGroupInfos' => [
+ 'title' => '',
+ 'description' => 'A list of associated server groups.',
'type' => 'array',
'items' => [
- 'description' => 'The header value. The header values within a forwarding rule must be unique.'."\n"
- ."\n"
- .'* The header value must be 1 to 128 characters in length.'."\n"
- .'* The value can contain asterisks (\\*), question marks (?), and other printable characters whose ASCII values are `larger than or equal to 32 and smaller than 127`. Quotation marks (`"`) are not supported.'."\n"
- .'* The header value cannot start or end with a space character, or end with a backslash (`\\`).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5006',
+ 'description' => 'Details of an associated server group.',
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckEnabled' => ['description' => 'Indicates whether health checks are enabled. A value of `on` indicates that they are enabled.', 'type' => 'string', 'title' => '', 'example' => 'on'],
+ 'NonNormalServers' => [
+ 'title' => '',
+ 'description' => 'A list of unhealthy backend servers.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The details of an unhealthy backend server.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Port' => ['description' => 'The port of the backend server.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '90'],
+ 'Reason' => [
+ 'title' => '',
+ 'description' => 'The reason why the backend server is unhealthy.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ActualResponse' => ['description' => 'The actual response code returned by the backend server. For example, `302`.'."\n"
+ ."\n"
+ .'> This parameter is returned only when `ReasonCode` is set to `RESPONSE_MISMATCH`.', 'type' => 'string', 'title' => '', 'example' => '302'],
+ 'ExpectedResponse' => ['description' => 'The expected response code from the backend server.'."\n"
+ ."\n"
+ .'You can specify multiple values. Separate them with commas (`,`).'."\n"
+ ."\n"
+ .'> This parameter is returned only when `ReasonCode` is set to `RESPONSE_MISMATCH`.', 'type' => 'string', 'title' => '', 'example' => 'HTTP_2xx'],
+ 'ReasonCode' => ['description' => 'The detailed reason why the backend server is in an abnormal `Status`.'."\n"
+ .'This parameter is returned only for HTTP and HTTPS listeners and forwarding rules.'."\n"
+ ."\n"
+ .'- `CONNECT_TIMEOUT`: The connection to the backend server timed out during a health check.'."\n"
+ ."\n"
+ .'- `CONNECT_FAILED`: The connection to the backend server failed during a health check.'."\n"
+ ."\n"
+ .'- `RECV_RESPONSE_FAILED`: A response was not received from the backend server during a health check.'."\n"
+ ."\n"
+ .'- `RECV_RESPONSE_TIMEOUT`: The health check timed out while waiting for a response from the backend server.'."\n"
+ ."\n"
+ .'- `SEND_REQUEST_FAILED`: The health check request failed to be sent to the backend server.'."\n"
+ ."\n"
+ .'- `SEND_REQUEST_TIMEOUT`: The health check timed out while sending a request to the backend server.'."\n"
+ ."\n"
+ .'- `RESPONSE_FORMAT_ERROR`: The health check response from the backend server was malformed.'."\n"
+ ."\n"
+ .'- `RESPONSE_MISMATCH`: The health check response code from the backend server did not match the expected code.', 'type' => 'string', 'title' => '', 'example' => 'RESPONSE_MISMATCH'],
+ ],
+ 'example' => '',
+ ],
+ 'ServerId' => ['description' => 'The ID of the backend server.', 'type' => 'string', 'title' => '', 'example' => 'i-uf62h8v******'],
+ 'ServerIp' => ['description' => 'The IP address of the backend server.', 'type' => 'string', 'title' => '', 'example' => '192.168.2.11'],
+ 'Status' => ['description' => 'The health check status. Valid values:'."\n"
+ ."\n"
+ .'- `Initial`: The server is being initialized. Although health checks are configured, the first result has not yet been received.'."\n"
+ ."\n"
+ .'- `Unhealthy`: The server has failed multiple consecutive health checks.'."\n"
+ ."\n"
+ .'- `Unused`: The server is not in use. This can occur if its weight is set to 0, or if cross-zone load balancing is disabled and the server is in a different availability zone than the ALB instance.'."\n"
+ ."\n"
+ .'- `Unavailable`: Health checks are disabled for this server.', 'type' => 'string', 'title' => '', 'example' => 'Initial'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
+ ],
+ 'ServerGroupId' => ['description' => 'The ID of the server group.', 'type' => 'string', 'title' => '', 'example' => 'sgp-8ilqs4axp6******'],
+ 'ActionType' => ['description' => 'The type of action for the server group. Valid values: `ForwardGroup` (forwards traffic to the server group) and `TrafficMirror` (mirrors traffic to the server group).', 'type' => 'string', 'example' => 'TrafficMirror', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
- 'maxItems' => 50,
+ 'example' => '',
],
],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'HostConfig' => [
- 'title' => '主机名条件配置',
- 'description' => 'The configuration of the host.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '主机名列表',
- 'description' => 'The hostnames.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The hostname. A forwarding rule can contain only one hostname, which must be unique.'."\n"
- ."\n"
- .'* The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, and the following characters: - . \\* = ~ \\_ + \\ ^ ! $ & | ( ) \\[ ] ?.'."\n"
- .'* The hostname must contain at least one period (.) but cannot start or end with a period (.).'."\n"
- .'* The rightmost domain label can contain only letters and wildcard characters, and cannot contain digits or hyphens (-). The leftmost `domain label` can be an asterisk (\\*).'."\n"
- .'* The domain labels cannot start or end with hyphens (-). You can use asterisks (\\*) and question marks (?) anywhere in a domain label as wildcard characters.'."\n"
- .'* If you enter a specific hostname or a wildcard hostname, the hostname cannot start with a tilde (~).'."\n"
- .'* If you enter a regular expression, the regular expression cannot start with an asterisk (\\*). The regular expression is not case-sensitive.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'www.example.edu',
- ],
- 'required' => false,
- 'maxItems' => 50,
- ],
- ],
- 'required' => false,
+ 'example' => '',
+ ],
+ 'NextToken' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n"
+ ."\n"
+ .'- If this parameter is empty, all results have been returned.'."\n"
+ ."\n"
+ .'- If a value is returned, pass it in the next request to retrieve the next page of results.', 'type' => 'string', 'title' => '', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ ],
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
+ ],
+ [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ListenerHealthStatus\\": [\\n {\\n \\"ListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"http\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HealthCheckEnabled\\": \\"on\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Port\\": 90,\\n \\"Reason\\": {\\n \\"ActualResponse\\": \\"302\\",\\n \\"ExpectedResponse\\": \\"HTTP_2xx\\",\\n \\"ReasonCode\\": \\"RESPONSE_MISMATCH\\"\\n },\\n \\"ServerId\\": \\"i-uf62h8v******\\",\\n \\"ServerIp\\": \\"192.168.8.10\\",\\n \\"Status\\": \\"Initial\\"\\n }\\n ],\\n \\"ServerGroupId\\": \\"sgp-8ilqs4axp6******\\",\\n \\"ActionType\\": \\"TrafficMirror\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876F******\\",\\n \\"RuleHealthStatus\\": [\\n {\\n \\"RuleId\\": \\"rule-hp34s2h0xx1ht4nwo****\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HealthCheckEnabled\\": \\"on\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Port\\": 90,\\n \\"Reason\\": {\\n \\"ActualResponse\\": \\"302\\",\\n \\"ExpectedResponse\\": \\"HTTP_2xx\\",\\n \\"ReasonCode\\": \\"RESPONSE_MISMATCH\\"\\n },\\n \\"ServerId\\": \\"i-uf62h8v******\\",\\n \\"ServerIp\\": \\"192.168.2.11\\",\\n \\"Status\\": \\"Initial\\"\\n }\\n ],\\n \\"ServerGroupId\\": \\"sgp-8ilqs4axp6******\\",\\n \\"ActionType\\": \\"TrafficMirror\\"\\n }\\n ]\\n }\\n ],\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\"\\n}","type":"json"}]',
+ 'title' => 'GetListenerHealthStatus',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:GetListenerHealthStatus',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'GetLoadBalancerAttribute' => [
+ 'summary' => 'Queries the details of an Application Load Balancer (ALB) instance.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '200',
+ 'abilityTreeNodes' => ['FEATUREslbM7ALO6', 'FEATUREslbK3ZR0L', 'FEATUREslbN5IE4S'],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The ALB instance ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The details of the ALB instance configuration.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'AccessLogConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the access log feature.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'LogProject' => ['title' => '', 'description' => 'The Log Service project.'."\n", 'type' => 'string', 'example' => 'sls-setter'],
+ 'LogStore' => ['title' => '', 'description' => 'The Logstore.'."\n", 'type' => 'string', 'example' => 'test'],
],
- 'MethodConfig' => [
- 'title' => 'HTTP请求方法条件配置',
- 'description' => 'The configurations of the request method.'."\n",
+ 'example' => '',
+ ],
+ 'AddressAllocatedMode' => ['title' => '', 'description' => 'The mode in which IP addresses are allocated. Valid values:'."\n"
+ ."\n"
+ .'* **Fixed**: allocates a static IP address to the ALB instance.'."\n"
+ .'* **Dynamic**: dynamically allocates an IP address to each zone of the ALB instance.'."\n", 'type' => 'string', 'example' => 'Dynamic'],
+ 'AddressType' => ['title' => '', 'description' => 'The network type of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'* **Internet**: The ALB instance uses a public IP address. The domain name of the ALB instance is resolved to the public IP address. Therefore, the ALB instance can be accessed over the Internet.'."\n"
+ .'* **Intranet**: The ALB instance uses a private IP address. The domain name of the ALB instance is resolved to the private IP address. In this case, the ALB instance can be accessed over the virtual private cloud (VPC) where the ALB instance is deployed.'."\n", 'type' => 'string', 'example' => 'Intranet'],
+ 'BandwidthPackageId' => ['title' => '', 'description' => 'The ID of the elastic IP address (EIP) bandwidth plan that is associated with the Internet-facing ALB instance.'."\n", 'type' => 'string', 'example' => 'cbwp-bp1vevu8h3ieh****'],
+ 'CreateTime' => ['title' => '', 'description' => 'The time when the resource was created. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2022-07-02T02:49:05Z'],
+ 'DNSName' => ['title' => '', 'description' => 'The domain name of the ALB instance.'."\n", 'type' => 'string', 'example' => 'alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com'],
+ 'DeletionProtectionConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of deletion protection.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Enabled' => ['title' => '', 'description' => 'Indicates whether the deletion protection feature is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'EnabledTime' => ['title' => '', 'description' => 'The time when the deletion protection feature was enabled. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2022-08-02T02:49:05Z'],
+ ],
+ 'example' => '',
+ ],
+ 'LoadBalancerBillingConfig' => [
+ 'title' => '',
+ 'description' => 'The billing method of the ALB instance.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'PayType' => ['title' => '', 'description' => 'The billing method.'."\n"
+ ."\n"
+ .'Only **PostPay** is returned, which indicates the pay-as-you-go billing method.'."\n", 'type' => 'string', 'example' => 'PostPay', 'default' => 'PostPay'],
+ ],
+ 'example' => '',
+ ],
+ 'LoadBalancerBussinessStatus' => ['title' => '', 'description' => 'The service status of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'* **Abnormal**'."\n"
+ .'* **Normal**'."\n", 'type' => 'string', 'example' => 'Normal'],
+ 'LoadBalancerEdition' => ['title' => '', 'description' => 'The edition of the ALB instance. The features and billing rules vary based on the edition of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'* **Basic**'."\n"
+ .'* **Standard**'."\n"
+ .'* **StandardWithWaf**'."\n", 'type' => 'string', 'example' => 'Standard'],
+ 'LoadBalancerId' => ['title' => '', 'description' => 'The ALB instance ID.'."\n", 'type' => 'string', 'example' => 'alb-o9ulmq5hgn68jk****'],
+ 'LoadBalancerName' => ['title' => '', 'description' => 'The name of the ALB instance.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", 'type' => 'string', 'example' => 'alb1'],
+ 'LoadBalancerOperationLocks' => [
+ 'title' => '',
+ 'description' => 'The type of the lock. Valid values:'."\n"
+ ."\n"
+ .'* **SecurityLocked**: The ALB instance is locked due to security reasons.'."\n"
+ .'* **RelatedResourceLocked**: The ALB instance is locked due to association issues.'."\n"
+ .'* **FinancialLocked**: The ALB instance is locked due to overdue payments.'."\n"
+ .'* **ResidualLocked**: The ALB instance is locked because the associated resources have overdue payments and the resources are released.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
'type' => 'object',
'properties' => [
- 'Values' => [
- 'title' => 'HTTP请求方法列表',
- 'description' => 'The request methods.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The request method.'."\n"
- ."\n"
- .'Valid values: **HEAD**, **GET**, **POST**, **OPTIONS**, **PUT**, **PATCH**, and **DELETE**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'PUT',
- ],
- 'required' => false,
- 'maxItems' => 10,
- ],
+ 'LockReason' => ['title' => '', 'description' => 'The reason why the ALB instance is locked. This parameter is valid only if **LoadBalancerBussinessStatus** is set to **Abnormal**.'."\n", 'type' => 'string', 'example' => '欠费'],
+ 'LockType' => ['title' => '', 'description' => 'The lock type. Valid values:'."\n"
+ ."\n"
+ .'* **SecurityLocked**: The ALB instance is locked due to security reasons.'."\n"
+ .'* **RelatedResourceLocked**: The ALB instance is locked due to other resources that are associated with the ALB instance.'."\n"
+ .'* **FinancialLocked**: The ALB instance is locked due to overdue payments.'."\n"
+ .'* **ResidualLocked**: The ALB instance is locked because the associated resources have overdue payments and the resources are released.'."\n", 'type' => 'string', 'example' => 'FinancialLocked'],
],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'PathConfig' => [
- 'title' => '路径条件配置',
- 'description' => 'The configurations of the URL to which requests are forwarded.'."\n",
+ 'example' => '',
+ ],
+ 'LoadBalancerStatus' => ['title' => '', 'description' => 'The status of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'* **Inactive**: The ALB instance is disabled. ALB instances in the Inactive state do not forward traffic.'."\n"
+ .'* **Active**: The ALB instance is running.'."\n"
+ .'* **Provisioning**: The ALB instance is being created.'."\n"
+ .'* **Configuring**: The ALB instance is being modified.'."\n"
+ .'* **CreateFailed**: The system failed to create the ALB instance. In this case, you are not charged for the ALB instance. You can only delete the ALB instance.'."\n", 'type' => 'string', 'example' => 'Active'],
+ 'ModificationProtectionConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration read-only mode settings.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Reason' => ['title' => '', 'description' => 'The reason why the configuration read-only mode is enabled.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 character characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n"
+ ."\n"
+ .'This parameter takes effect only if **Status** is set to **ConsoleProtection**.'."\n", 'type' => 'string', 'example' => 'Managed instance'],
+ 'Status' => ['title' => '', 'description' => 'Specifies whether the configuration read-only mode is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **NonProtection**: The configuration read-only mode is disabled. In this case, the value of the **Reason** parameter that you specify does not take effect. If you set **Reason**, the value is cleared.'."\n"
+ .'* **ConsoleProtection**: The configuration read-only mode is enabled. In this case, the value of the **Reason** parameter takes effect.****'."\n"
+ ."\n"
+ .'> If the parameter is set to **ConsoleProtection**, the configuration read-only mode is enabled. You cannot modify the configurations of the ALB instance in the ALB console. However, you can call API operations to modify the configurations of the ALB instance.'."\n", 'type' => 'string', 'example' => 'ConsoleProtection'],
+ ],
+ 'example' => '',
+ ],
+ 'RegionId' => ['title' => '', 'description' => 'The region ID of the ALB instance.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'],
+ 'ResourceGroupId' => ['title' => '', 'description' => 'The resource group ID.'."\n", 'type' => 'string', 'example' => 'rg-atstuj3rtop****'],
+ 'Tags' => [
+ 'title' => '',
+ 'description' => 'The tag value.'."\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' => 'array',
+ 'items' => [
+ 'description' => '',
'type' => 'object',
'properties' => [
- 'Values' => [
- 'title' => '路径条件列表',
- 'description' => 'The forwarding URLs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The URL to which requests are forwarded. The URL must meet the following requirements:'."\n"
- ."\n"
- .'* The URL must be 1 to 128 characters in length, and is case-sensitive. You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n"
- .'* If the URL is not a regular expression, it must start with a forward slash (/) and can contain letters, digits, and the following special characters: `$ - _ . + / & ~ @ : \' * ?`. It cannot contain the following special characters: `% # ; ! ( ) [ ] ^ , \\ "`. You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n"
- .'* If you use a regular expression to specify a URL, the URL must start with a title (~), It can contain letters, digits, and the following special characters: `. - _ / = ? ~ ^ * $ : ( ) [ ] + |`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test',
- ],
- 'required' => false,
- 'maxItems' => 50,
- ],
+ 'Key' => ['title' => '', 'description' => 'The tag key.'."\n"
+ ."\n"
+ .'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' => 'FinanceDept'],
+ 'Value' => ['title' => '', 'description' => 'The tag value.'."\n"
+ ."\n"
+ .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua'],
],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'QueryStringConfig' => [
- 'title' => '查询字符串条件配置',
- 'description' => 'The configuration of the query strings.'."\n",
+ 'example' => '',
+ ],
+ 'VpcId' => ['title' => '', 'description' => 'The ID of the VPC in which the ALB instance is deployed.'."\n", 'type' => 'string', 'example' => 'vpc-bp1b49rqrybk45nio****'],
+ 'ZoneMappings' => [
+ 'title' => '',
+ 'description' => 'The mappings between zones and vSwitches. At most 10 zones are returned. If the current region supports two or more zones, at least two zones are returned.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The mappings between zones and vSwitches. At most 10 zones are returned. If the current region supports two or more zones, at least two zones are returned.'."\n",
'type' => 'object',
'properties' => [
- 'Values' => [
- 'title' => '查询字符串条件键值对列表',
- 'description' => 'The query strings.'."\n",
+ 'LoadBalancerAddresses' => [
+ 'title' => '',
+ 'description' => 'The address of the ALB instance.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The query string.'."\n",
+ 'description' => 'The address of the ALB instance.'."\n",
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => '查询字符串条件键',
- 'description' => 'They key of the query string.'."\n"
- ."\n"
- .'* The key must be 1 to 100 characters in length.'."\n"
- .'* You can use asterisks (\\*) and question marks (?) as wildcard characters. It can contain printable characters, excluding uppercase letters, space characters, and the following special characters: `# [ ] { } \\ | < > & "`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
+ 'Address' => ['title' => '', 'description' => 'An IPv4 address.'."\n"
+ ."\n"
+ .'This parameter takes effect when **AddressIPVersion** is set to **IPv4** or **DualStack**. The network type is determined by the value of **AddressType**.'."\n", 'type' => 'string', 'example' => '10.1.0.61'],
+ 'Ipv6Address' => ['title' => '', 'description' => 'An IPv6 address.'."\n"
+ ."\n"
+ .'This parameter takes effect only when **AddressIPVersion** is set to **DualStack**. The network type is determined by the value of **Ipv6AddressType**.'."\n", 'type' => 'string', 'example' => '2408:xxxx:249:dd01:6f4:750f:xxxx:bcd9'],
+ 'IntranetAddress' => ['title' => '', 'description' => 'The private IPv4 address.'."\n", 'type' => 'string', 'example' => '10.1.0.61'],
+ 'AllocationId' => ['description' => 'The elastic IP address (EIP).'."\n", 'type' => 'string', 'example' => 'eip-uf6wm****1zj9', 'title' => ''],
+ 'EipType' => ['description' => 'The type of EIP. Valid values:'."\n"
+ ."\n"
+ .'* **Common**: an EIP.'."\n"
+ .'* **Anycast**: an Anycast EIP.'."\n"
+ ."\n"
+ .'> For more information about the regions in which ALB supports Anycast EIPs, see [Limits](~~460727~~).'."\n", 'type' => 'string', 'example' => 'Common', 'title' => ''],
+ 'IntranetAddressHcStatus' => ['description' => 'The health status of the private IPv4 address of the ALB instance. '."\n"
+ .'This parameter is returned only when the Status of the zone is Active.Valid values:'."\n"
+ ."\n"
+ .'- **Healthy**'."\n"
+ ."\n"
+ .'- **Unhealthy**', 'type' => 'string', 'example' => 'Healthy', 'title' => ''],
+ 'Ipv6AddressHcStatus' => ['description' => 'The health status of the private IPv6 address of the ALB instance. '."\n"
+ .'This parameter is returned only when the Status of the zone is Active.Valid values:'."\n"
+ ."\n"
+ .'- **Healthy**'."\n"
+ ."\n"
+ .'- **Unhealthy**', 'type' => 'string', 'example' => 'Healthy', 'title' => ''],
+ 'Ipv4LocalAddresses' => [
+ 'description' => 'The IPv4 link-local addresses. The IP addresses that the ALB instance uses to communicate with the backend servers.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The IPv4 link-local address.', 'type' => 'string', 'example' => '10.1.0.62', 'title' => ''],
+ 'title' => '',
+ 'example' => '',
],
- 'Value' => [
- 'title' => '查询字符串条件值',
- 'description' => 'The value of the query string.'."\n"
- ."\n"
- .'* The value must be 1 to 128 characters in length.'."\n"
- .'* It can contain printable characters, but cannot contain uppercase letters, space characters, or the following special characters: `# [ ] { } \\ | < > &`. You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
+ 'Ipv6LocalAddresses' => [
+ 'description' => 'The IPv6 link-local addresses. The IP addresses that the ALB instance uses to communicate with the backend servers.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The IPv6 link-local address.', 'type' => 'string', 'example' => '2408:xxxx:249:dd01:6f4:750f:xxxx:bcda', 'title' => ''],
+ 'title' => '',
+ 'example' => '',
],
],
- 'required' => false,
- ],
- 'required' => false,
- 'maxItems' => 50,
- ],
- ],
- 'required' => false,
- ],
- 'ResponseStatusCodeConfig' => [
- 'title' => '返回状态码条件',
- 'description' => 'The configuration of the response status codes.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '返回状态码条件',
- 'description' => 'The response status codes.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The response status code.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'ResponseHeaderConfig' => [
- 'title' => '返回HTTP标头',
- 'description' => 'The configuration of headers.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => '返回HTTP标头键',
- 'description' => 'The header key.'."\n"
- ."\n"
- .'* The key must be 1 to 40 characters in length.'."\n"
- .'* It can contain letters, digits, hyphens (-), and underscores (\\_).'."\n"
- .'* Cookie and Host are not supported.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Values' => [
- 'title' => '返回HTTP标头值',
- 'description' => 'The header values.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The header value.'."\n"
- ."\n"
- .'* The value must be 1 to 128 characters in length.'."\n"
- .'* It can contain printable characters whose ASCII values are `larger than or equal to 32 and smaller than 127`, lowercase letters, asterisks (\\*), and question marks (?). Quotation marks (`"`) are not supported.'."\n"
- .'* The header value cannot start or end with a space character, or end with a backslash (`\\`).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '50006',
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'Type' => [
- 'title' => '条件类型',
- 'description' => 'The type of forwarding rule. Valid values:'."\n"
- ."\n"
- .'* **Host**: Requests are distributed based on hosts.'."\n"
- .'* **Path**: Requests are distributed based on paths.'."\n"
- .'* **Header**: Requests are distributed based on HTTP headers.'."\n"
- .'* **QueryString**: Requests are distributed based on query strings.'."\n"
- .'* **Method**: Requests are distributed based on request methods.'."\n"
- .'* **Cookie**: Requests are distributed based on cookies.'."\n"
- .'* **SourceIp**: Requests are forwarded based on source IP addresses.'."\n"
- .'* **ResponseHeader**: Requests are forwarded based on HTTP response headers.'."\n"
- .'* **ResponseStatusCode**: Requests are forwarded based on response status codes.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Host',
- ],
- 'SourceIpConfig' => [
- 'title' => '基于源IP业务流量匹配',
- 'description' => 'Configuration of traffic matching based on source IP addresses. This parameter is required and valid when **Type** is set to **SourceIP**.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '基于源IP业务流量匹配',
- 'description' => 'The source IP addresses used for traffic matching.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'You can specify one or more IP addresses, including CIDR blocks.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.0.0/32',
- ],
- 'required' => false,
+ 'example' => '',
],
+ 'VSwitchId' => ['title' => '', 'description' => 'The vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone of an ALB instance.'."\n", 'type' => 'string', 'example' => 'vsw-bp12mw1f8k3jgy****'],
+ 'ZoneId' => ['title' => '', 'description' => 'The zone ID of the ALB instance.'."\n"
+ ."\n"
+ .'You can call the [DescribeZones](~~189196~~) operation to query the most recent zone list.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-a'],
+ 'Status' => ['description' => 'The zone status. Valid values:'."\n"
+ ."\n"
+ .'- **Active**: The ALB instance is running.'."\n"
+ ."\n"
+ .'- **Stopped**: The ALB instance is disabled. '."\n"
+ ."\n"
+ .'- **Shifted**: The ALB instance is removed.'."\n"
+ ."\n"
+ .'- **Starting**: The ALB instance is starting.'."\n"
+ ."\n"
+ .'- **Stopping**: The ALB instance is stopping.', 'type' => 'string', 'example' => 'Active', 'title' => ''],
],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
+ ],
+ 'AddressIpVersion' => ['title' => '', 'description' => 'The IP version. Valid values:'."\n"
+ ."\n"
+ .'* **IPv4**'."\n"
+ .'* **DualStack**'."\n", 'type' => 'string', 'example' => 'DualStack'],
+ 'Ipv6AddressType' => ['title' => '', 'description' => 'The type of IPv6 address that is used by the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'* **Internet**: The ALB instance uses a public IP address. The domain name of the ALB instance is resolved to the public IP address. Therefore, the ALB instance can be accessed over the Internet.'."\n"
+ .'* **Intranet**: The ALB instance uses a private IP address. The domain name of the ALB instance is resolved to the private IP address. Therefore, the ALB instance can be accessed over the VPC in which the ALB instance is deployed.'."\n", 'type' => 'string', 'example' => 'Intranet'],
+ 'SecurityGroupIds' => [
+ 'description' => 'The IDs of the security groups to which the ALB instance is added.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of the security group to which the ALB instance is added.'."\n", 'type' => 'string', 'example' => 'sg-uf63j385dzwlm6cy****', 'title' => ''],
+ 'title' => '',
+ 'example' => '',
],
- 'required' => true,
],
- 'required' => true,
- 'maxItems' => 100,
- 'minItems' => 1,
+ 'example' => '',
],
],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication has failed for LoadBalancer.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"AccessLogConfig\\": {\\n \\"LogProject\\": \\"sls-setter\\",\\n \\"LogStore\\": \\"test\\"\\n },\\n \\"AddressAllocatedMode\\": \\"Dynamic\\",\\n \\"AddressType\\": \\"Intranet\\",\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"DNSName\\": \\"alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\",\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"EnabledTime\\": \\"2022-08-02T02:49:05Z\\"\\n },\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"LoadBalancerBussinessStatus\\": \\"Normal\\",\\n \\"LoadBalancerEdition\\": \\"Standard\\",\\n \\"LoadBalancerId\\": \\"alb-o9ulmq5hgn68jk****\\",\\n \\"LoadBalancerName\\": \\"alb1\\",\\n \\"LoadBalancerOperationLocks\\": [\\n {\\n \\"LockReason\\": \\"欠费\\",\\n \\"LockType\\": \\"FinancialLocked\\"\\n }\\n ],\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"ModificationProtectionConfig\\": {\\n \\"Reason\\": \\"Managed instance\\",\\n \\"Status\\": \\"ConsoleProtection\\"\\n },\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"Address\\": \\"10.1.0.61\\",\\n \\"Ipv6Address\\": \\"2408:xxxx:249:dd01:6f4:750f:xxxx:bcd9\\",\\n \\"IntranetAddress\\": \\"10.1.0.61\\",\\n \\"AllocationId\\": \\"eip-uf6wm****1zj9\\",\\n \\"EipType\\": \\"Common\\",\\n \\"IntranetAddressHcStatus\\": \\"Healthy\\",\\n \\"Ipv6AddressHcStatus\\": \\"Healthy\\",\\n \\"Ipv4LocalAddresses\\": [\\n \\"10.1.0.62\\"\\n ],\\n \\"Ipv6LocalAddresses\\": [\\n \\"2408:xxxx:249:dd01:6f4:750f:xxxx:bcda\\"\\n ]\\n }\\n ],\\n \\"VSwitchId\\": \\"vsw-bp12mw1f8k3jgy****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"AddressIpVersion\\": \\"DualStack\\",\\n \\"Ipv6AddressType\\": \\"Intranet\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-uf63j385dzwlm6cy****\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
+ 'title' => 'GetLoadBalancerAttribute',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:GetLoadBalancerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'ListAScripts' => [
+ 'summary' => 'Queries AScript rules.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'RuleName',
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'list'],
+ 'parameters' => [
+ [
+ 'name' => 'NextToken',
'in' => 'query',
+ 'allowEmptyValue' => true,
+ 'schema' => ['title' => '', 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* You do not need to specify this parameter for the first request.****'."\n"
+ .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'allowEmptyValue' => true,
+ 'schema' => ['title' => '', 'description' => 'The maximum number of entries to return.'."\n"
+ ."\n"
+ .'Valid values: **1** to **100**.'."\n"
+ ."\n"
+ .'Default value: **20**. If you do not specify this parameter, the default value is used.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '50'],
+ ],
+ [
+ 'name' => 'ListenerIds',
+ 'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '转发规则名称',
- 'description' => 'The name of the forwarding rule.'."\n"
- ."\n"
- .'* The name must be 2 to 128 characters in length.'."\n"
- .'* It can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'rule-doc',
+ 'description' => 'The listener IDs. You can specify at most 20 listener IDs in each call.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The listener ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'lsn-9v9b8576m2laih****', 'title' => ''],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
],
[
- 'name' => 'Tag',
+ 'name' => 'AScriptIds',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The tags.'."\n",
+ 'description' => 'The AScript rule IDs. You can specify at most 20 IDs in each call.'."\n",
'type' => 'array',
- 'items' => [
- 'description' => 'The tag.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key. The tag key can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'product',
- ],
- ],
- 'required' => false,
- ],
+ 'items' => ['description' => 'The rule ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'as-aznwocxofkakf7****', 'title' => ''],
'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'AScriptNames',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The AScript rule names. You can specify at most 10 names in each call.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The name of the AScript rule.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
],
],
@@ -11508,1121 +7547,200 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'Schema of Response'."\n",
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The ID of the asynchronous task.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540750',
- ],
- 'RuleId' => [
- 'title' => '转发规则标识',
- 'description' => 'The forwarding rule ID.'."\n",
- 'type' => 'string',
- 'example' => 'rule-a3x3pg1yohq3lq****',
+ 'TotalCount' => ['title' => '', 'description' => 'The total number of entries returned.'."\n"
+ ."\n"
+ .'> This parameter is optional. By default, this parameter is not returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1000'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2CA81429-F160-593A-8AB5-A2A9617845B9'],
+ 'NextToken' => ['title' => '', 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* If **NextToken** is empty, no next page exists.'."\n"
+ .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'MaxResults' => ['title' => '', 'description' => 'The maximum number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '50'],
+ 'AScripts' => [
+ 'title' => '',
+ 'description' => 'The AScript rules.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The AScript rule.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'AScriptId' => ['title' => '', 'description' => 'The AScript rule ID.'."\n", 'type' => 'string', 'example' => 'as-aznwocxofkakf7****'],
+ 'AScriptName' => ['title' => '', 'description' => 'The name of the AScript rule.'."\n", 'type' => 'string', 'example' => 'test'],
+ 'Enabled' => ['title' => '', 'description' => 'Indicates whether the AScript rule is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'ScriptContent' => ['title' => '', 'description' => 'The content of the AScript rule.'."\n", 'type' => 'string', 'example' => '{test}'],
+ 'AScriptStatus' => ['title' => '', 'description' => 'The status of the AScript rule. Valid values:'."\n"
+ ."\n"
+ .'* **Creating**'."\n"
+ .'* **Available**'."\n"
+ .'* **Configuring**'."\n"
+ .'* **Deleting**'."\n", 'type' => 'string', 'example' => 'Available'],
+ 'ListenerId' => ['title' => '', 'description' => 'The listener ID.'."\n", 'type' => 'string', 'example' => 'lsn-t0w1m9r6suiwmc****'],
+ 'LoadBalancerId' => ['title' => '', 'description' => 'The Application Load Balancer (ALB) instance ID.'."\n", 'type' => 'string', 'example' => 'alb-vv9rg2ub31tyec****'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.GRPCServerGroup',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'Conflict.Priority',
- 'errorMessage' => 'There is already %s having the same configuration with %s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerRulesNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.RuleWildcardsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.RuleActionsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'Mismatch.Protocol',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'Mismatch.VpcId',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.RewriteMissingForwardGroup',
- 'errorMessage' => 'The operation is not allowed because of RewriteMissingForwardGroup.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.Listener',
- 'errorMessage' => 'The specified listener is being configured, please try again later.',
- ],
- [
- 'errorCode' => 'OperationDenied.MirrorActionSupportHttpGroupOnly',
- 'errorMessage' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.',
- ],
- [
- 'errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction',
- 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.',
- ],
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication has failed for LoadBalancer.', 'description' => ''],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1000,\\n \\"RequestId\\": \\"2CA81429-F160-593A-8AB5-A2A9617845B9\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 50,\\n \\"AScripts\\": [\\n {\\n \\"AScriptId\\": \\"as-aznwocxofkakf7****\\",\\n \\"AScriptName\\": \\"test\\",\\n \\"Enabled\\": true,\\n \\"ScriptContent\\": \\"{test}\\",\\n \\"AScriptStatus\\": \\"Available\\",\\n \\"ListenerId\\": \\"lsn-t0w1m9r6suiwmc****\\",\\n \\"LoadBalancerId\\": \\"alb-vv9rg2ub31tyec****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListAScriptsResponse>\\n <TotalCount>1000</TotalCount>\\n <RequestId>2CA81429-F160-593A-8AB5-A2A9617845B9</RequestId>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>50</MaxResults>\\n <AScripts>\\n <AScriptId>as-aznwocxofkakf7****</AScriptId>\\n <AScriptName>test</AScriptName>\\n <Enabled>true</Enabled>\\n <ScriptContent>{test}</ScriptContent>\\n <AScriptStatus>Available</AScriptStatus>\\n <ListenerId>lsn-t0w1m9r6suiwmc****</ListenerId>\\n <LoadBalancerId>alb-vv9rg2ub31tyec****</LoadBalancerId>\\n </AScripts>\\n</ListAScriptsResponse>","errorExample":""}]',
+ 'title' => 'ListAScripts',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'alb:ListAScripts',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
],
],
],
- 'eventInfo' => [
- 'enable' => false,
- 'eventNames' => [],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540750\\",\\n \\"RuleId\\": \\"rule-a3x3pg1yohq3lq****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateRuleResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540750</RequestId>\\n <RuleId>rule-a3x3pg1yohq3lq****</RuleId>\\n</CreateRuleResponse>","errorExample":""}]',
- 'title' => 'CreateRule',
- 'description' => 'Take note of the following limits:'."\n"
- ."\n"
- .'* When you configure the **Redirect** action, you can use the default value only for the **HttpCode** parameter. Do not use the default values for the other parameters.'."\n"
- ."\n"
- .'* If you specify the **Rewrite** action together with other actions in a forwarding rule, make sure that the **ForwardGroup** action is specified.'."\n"
- ."\n"
- .'* **CreateRule** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListRules](~~214379~~) operation to query the status of a forwarding rule.'."\n"
- ."\n"
- .' * If a forwarding rule is in the **Provisioning** state, the forwarding rule is being created.'."\n"
- .' * If a forwarding rule is in the **Available** state, the forwarding rule is created.'."\n"
- ."\n"
- .'* You can set **RuleConditions** and **RuleActions** to add conditions and actions to a forwarding rule. The limits on conditions and actions are:'."\n"
- ."\n"
- .' * Limits on conditions: 5 for a basic Application Load Balancer (ALB) instance, 10 for a standard ALB instance, and 10 for a WAF-enabled ALB instance.'."\n"
- .' * Limits on actions: 3 for a basic ALB instance, 5 for a standard ALB instance, and 5 for a WAF-enabled ALB instance.'."\n",
],
- 'CreateRules' => [
- 'summary' => 'Creates multiple forwarding rules at a time.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ListAclEntries' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeCode' => '170',
- 'abilityTreeNodes' => [
- 'FEATUREslbBIWWMH',
- 'FEATUREslbTXOYED',
- 'FEATUREslbQCCQ6L',
- 'FEATUREslb4T90LL',
- 'FEATUREslbIT4IYN',
- 'FEATUREslbA51OGD',
- 'FEATUREslbUBPZWI',
- 'FEATUREslbGVK35E',
- 'FEATUREslbYG3GCF',
- 'FEATUREslbRBR9GZ',
- 'FEATUREslbMWZQWL',
- 'FEATUREslbJCYSIV',
- 'FEATUREslbY93SFN',
- 'FEATUREslbVUMBEO',
- 'FEATUREslbZ4XFTS',
- 'FEATUREslb2Q6O49',
- ],
- 'autoTest' => true,
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'ListenerId',
+ 'name' => 'NextToken',
'in' => 'query',
- 'schema' => [
- 'title' => '监听标识',
- 'description' => 'The ID of the Application Load Balancer (ALB) instance.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
+ 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'- You do not need to specify this parameter for the first request.'."\n"
+ ."\n"
+ .'- You must specify the token that is obtained from the previous query as the value of **NextToken**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'MaxResults',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '1', 'default' => '20', 'title' => '', 'required' => false, 'example' => '50'],
],
[
- 'name' => 'DryRun',
+ 'name' => 'AclId',
'in' => 'query',
+ 'schema' => ['description' => 'The ID of the ACL.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'acl-hp34s2h0xx1ht4nwo****'],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.',
+ 'type' => 'object',
+ 'properties' => [
+ 'AclEntries' => [
+ 'title' => '',
+ 'description' => 'The ACL entries.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ACL entry.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Description' => ['description' => 'The description of the ACL entry. The description must be 1 to 256 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).', 'type' => 'string', 'title' => '', 'example' => 'test-entry'],
+ 'Entry' => ['description' => 'The CIDR block for the ACL entry.', 'type' => 'string', 'title' => '', 'example' => '10.0.1.1/24'],
+ 'Status' => ['description' => 'The status of the ACL entry. Valid values:'."\n"
+ ."\n"
+ .'- **Adding**: The ACL entry is being added.'."\n"
+ ."\n"
+ .'- **Available**: The ACL entry is added and available.'."\n"
+ ."\n"
+ .'- **Removing**: The ACL entry is being removed.', 'type' => 'string', 'title' => '', 'example' => 'Available'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
+ ],
+ 'MaxResults' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '50'],
+ 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'- If **NextToken** is empty, no next page exists.'."\n"
+ ."\n"
+ .'- If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.', 'type' => 'string', 'title' => '', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F87******'],
+ 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1000'],
+ ],
+ 'example' => '',
],
],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'ACL authentication has failed.', 'description' => ''],
+ ],
[
- 'name' => 'Rules',
- 'in' => 'formData',
+ ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'title' => 'ListAclEntries',
+ 'summary' => 'Queries the entries of an access control list (ACL).',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListAclEntries',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AclEntries\\": [\\n {\\n \\"Description\\": \\"test-entry\\",\\n \\"Entry\\": \\"10.0.1.1/24\\",\\n \\"Status\\": \\"Available\\"\\n }\\n ],\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F87******\\",\\n \\"TotalCount\\": 1000\\n}","type":"json"}]',
+ ],
+ 'ListAclRelations' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'get'],
+ 'parameters' => [
+ [
+ 'name' => 'AclIds',
+ 'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '转发规则列表',
- 'description' => 'The details about the forwarding rules.'."\n",
+ 'title' => '',
+ 'description' => 'The access control list (ACL) IDs. You can query at most five ACLs in each call.',
'type' => 'array',
- 'items' => [
- 'description' => 'The details about the forwarding rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Priority' => [
- 'title' => '转发规则优先级',
- 'description' => 'The priority of the forwarding rule.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'example' => '10',
- ],
- 'RuleActions' => [
- 'title' => '转发规则动作',
- 'description' => 'The actions of the forwarding rule.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The action of the forwarding rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'FixedResponseConfig' => [
- 'title' => '返回固定内容动作配置',
- 'description' => 'The configuration of the action to return a fixed response.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Content' => [
- 'title' => '内容',
- 'description' => 'The content of the custom response. The content cannot exceed 1 KB in size, and can contain only ASCII characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'dssacav',
- ],
- 'ContentType' => [
- 'title' => '内容类型',
- 'description' => 'The format of the custom response.'."\n"
- ."\n"
- .'Valid values: **text/plain**, **text/css**, **text/html**, **application/javascript**, and **application/json**'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'text/plain',
- ],
- 'HttpCode' => [
- 'title' => 'HTTP响应码',
- 'description' => 'The HTTP status code in responses. Valid values: **2xx**, **4xx**, and **5xx**. The value must be a numeric string. **x** can be any digit.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP_200',
- ],
- ],
- 'required' => false,
- ],
- 'ForwardGroupConfig' => [
- 'title' => '转发组动作配置',
- 'description' => 'The configuration of the action to forward requests to server groups.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupTuples' => [
- 'title' => '转发到的目的服务器组列表',
- 'description' => 'The server groups to which requests are forwarded.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The server group to which requests are forwarded.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupId' => [
- 'title' => '服务器组标识',
- 'description' => 'The ID of the server group.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'sgp-k86c1ov501id6p****',
- ],
- 'Weight' => [
- 'title' => '权重',
- 'description' => 'The weight of the server group. A larger value indicates a higher weight. A server group with a higher weight receives more requests. Valid values: **0** to **100**'."\n"
- ."\n"
- .'* If the number of destination server groups is 1, the default weight of the server group is **100**. You can specify another value.'."\n"
- .'* If the number of destination server groups is larger than 1, you must specify weights for the server groups.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'minimum' => '0',
- 'example' => '100',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- 'ServerGroupStickySession' => [
- 'title' => '服务器组之间会话保持',
- 'description' => 'The configuration of session persistence.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Enabled' => [
- 'title' => '是否开启会话保持',
- 'description' => 'Enables session persistence. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'Timeout' => [
- 'title' => '超时时间',
- 'description' => 'The timeout period for sessions. Unit: seconds. Valid values: **1** to **86400**. Default value: **1000**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '2',
- ],
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'InsertHeaderConfig' => [
- 'title' => '插入头部动作配置',
- 'description' => 'The configuration of the action to insert a header.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头',
- 'description' => 'The key of the header, which can contain a maximum of 40 characters. Supported characters include letters, digits, underscores (\\_), and hyphens (-). The header keys specified by **InsertHeaderConfig** must be unique.'."\n"
- ."\n"
- .'> You cannot specify the following header keys: `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, `authority`, and `x-forwarded-host`. The header keys are case-insensitive.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'key',
- ],
- 'Value' => [
- 'title' => 'HTTP标头内容',
- 'description' => 'The value of the header.'."\n"
- ."\n"
- .'* If **ValueType** is set to **SystemDefined**, you can set this parameter to one of the following values:'."\n"
- ."\n"
- .' * **ClientSrcPort**: the client port.'."\n"
- .' * **ClientSrcIp**: the client IP address.'."\n"
- .' * **Protocol**: the request protocol (HTTP or HTTPS).'."\n"
- .' * **SLBId**: the ID of the ALB instance.'."\n"
- .' * **SLBPort**: the listener port of the ALB instance.'."\n"
- ."\n"
- .'* If **ValueType** is set to **UserDefined**, specify a custom header value. The header value can contain a maximum of 128 characters, and supports printable characters whose ASCII values are `greater than or equal to 32 and lower than 127` and asterisks (\\*) and question marks (?) as wildcard characters. Quotation marks (`"`) are not supported. The header value cannot start or end with a space or end with a backslash (`\\`).'."\n"
- ."\n"
- .'* If **ValueType** is set to **ReferenceHeader**, you can reference a value from request headers. The value can contain a maximum of 128 characters. Supported characters include lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'UserDefined',
- ],
- 'ValueType' => [
- 'title' => '取值类型',
- 'description' => 'The type of the header value. Valid values are:'."\n"
- ."\n"
- .'* **UserDefined**: a custom header value'."\n"
- .'* **ReferenceHeader**: a header value that references one of the request headers'."\n"
- .'* **SystemDefined**: a system-defined header value'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'UserDefined',
- ],
- ],
- 'required' => false,
- ],
- 'Order' => [
- 'title' => '优先级',
- 'description' => 'The priority of the action. Valid values: **1 to 50000**. A lower value indicates a higher priority. The actions of a forwarding rule are applied in descending order of priority. This parameter is required. The priority of each action within a forwarding rule must be unique.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'example' => '1',
- ],
- 'RedirectConfig' => [
- 'title' => '重定向动作配置',
- 'description' => 'The configuration of the redirect action.'."\n"
- ."\n"
- .'> Do not set all parameters in **RedirectConfig** to default values, excluding **httpCode**.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Host' => [
- 'title' => '要跳转的主机地址',
- 'description' => 'The hostname to which requests are redirected. Valid values are:'."\n"
- ."\n"
- .'* **${host}** (default): This value cannot be concatenated with any other characters.'."\n"
- ."\n"
- .'* A custom hostname, which must meet the following requirements:'."\n"
- ."\n"
- .' * Contain 3 to 128 characters. Supported characters include lowercase letters, digits, and the following characters: - . \\* (as wildcard characters) = ~ \\_ + \\ ^ ! $ & | ( ) \\[ ] ?'."\n"
- .' * Contain at least one period (.) but cannot start or end with a period (.).'."\n"
- .' * The rightmost domain label can contain only letters and wildcard characters, and cannot contain digits or hyphens (-). The leftmost `domain label` can be an asterisk (\\*).'."\n"
- .' * The other domain labels do not start or end with hyphens (-).'."\n"
- .' * Support asterisks (\\*) and question marks (?) anywhere in a domain label as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'www.example.com',
- ],
- 'HttpCode' => [
- 'title' => '跳转方式',
- 'description' => 'The HTTP status code that indicates the redirect type. Valid values: **301**, **302**, **303**, **307**, and **308**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '301',
- ],
- 'Path' => [
- 'title' => '要跳转的路径',
- 'description' => 'The path to which requests are redirected. Valid values are:'."\n"
- ."\n"
- .'* **${path}** (default): You can reference **${host}**, **${protocol}**, and **${port}**, with each appearing only once. You can also concatenate any preceding variable with strings that meet the following requirements.'."\n"
- ."\n"
- .'* A custom path, which must meet the following requirements:'."\n"
- ."\n"
- .' * Contain a maximum of 128 characters and is case-sensitive. Support asterisks (\\*) and question marks (?) as wildcard characters.'."\n"
- .' * Start with a forward slash (/), and can contain letters, digits, and the following special characters: `$-_.+/&~@:\'*?`. It cannot contain the following special characters: `“%#;!()[]^,”\\"`. Support asterisks (\\*) and question marks (?) as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test',
- ],
- 'Port' => [
- 'title' => '要跳转的端口',
- 'description' => 'The port to which requests are redirected. Valid values are:'."\n"
- ."\n"
- .'* **${port}** (default): This value cannot be concatenated with any other characters.'."\n"
- .'* A custom port number. Valid values: **1 to 63335**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '10',
- ],
- 'Protocol' => [
- 'title' => '要跳转的协议',
- 'description' => 'The redirect protocol. Valid values are:'."\n"
- ."\n"
- .'* **${protocol}** (default): This value cannot be modified or concatenated with any other characters.'."\n"
- .'* **HTTP**'."\n"
- .'* **HTTPS**'."\n"
- ."\n"
- .'> '."\n"
- ."\n"
- .'* For HTTPS listeners, you can only redirect HTTPS to HTTPS.'."\n"
- ."\n"
- .'* For HTTP listeners, you can redirect HTTP to either HTTP or HTTPS.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP',
- ],
- 'Query' => [
- 'title' => '要跳转的查询字符串',
- 'description' => 'The query string to which requests are redirected.'."\n"
- ."\n"
- .'* **${query}** (default): You can reference **${host}**, **${protocol}**, and **${port}**, with each appearing only once. You can also concatenate any preceding variable with strings that meet the following requirements.'."\n"
- ."\n"
- .'* A custom query string, which must meet the following requirements:'."\n"
- ."\n"
- .' * Contain a maximum of 128 characters.'."\n"
- .' * Contain printable characters, excluding space characters, the special characters `#[]{}\\|<>"`, and uppercase letters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'quert',
- ],
- ],
- 'required' => false,
- ],
- 'RewriteConfig' => [
- 'title' => '内部重定向动作配置',
- 'description' => 'The configuration of the rewrite action.'."\n"
- ."\n"
- .'> If you specify a **Rewrite** action along with other types of actions in a forwarding rule, you must also specify a **ForwardGroup** action.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Host' => [
- 'title' => '主机名',
- 'description' => 'The hostname to which requests are rewritten. Valid values are:'."\n"
- ."\n"
- .'* **${host}** (default): This value cannot be concatenated with any other characters.'."\n"
- ."\n"
- .'* A custom hostname, which must meet the following requirements:'."\n"
- ."\n"
- .' * Contain 3 to 128 characters. Supported characters include lowercase letters, digits, and the following characters: - . \\* (as wildcard characters) = ~ \\_ + \\ ^ ! $ & | ( ) \\[ ] ?'."\n"
- .' * Contain at least one period (.) but cannot start or end with a period (.).'."\n"
- .' * The rightmost domain label can contain only letters and wildcard characters, and cannot contain digits or hyphens (-). The leftmost `domain label` can be an asterisk (\\*).'."\n"
- .' * The other domain labels do not start or end with hyphens (-). You can use asterisks (\\*) and question marks (?) anywhere in a domain label as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'www.example.com',
- ],
- 'Path' => [
- 'title' => '路径',
- 'description' => 'The path to which requests are rewritten. Valid values are:'."\n"
- ."\n"
- .'* **${path}** (default): You can reference **${host}**, **${protocol}**, and **${port}**, with each appearing only once. You can also concatenate any preceding variable with strings that meet the following requirements.'."\n"
- ."\n"
- .'* A custom path, which must meet the following requirements:'."\n"
- ."\n"
- .' * Contain a maximum of 128 characters and is case-sensitive. Support asterisks (\\*) and question marks (?) as wildcard characters.'."\n"
- .' * Start with a forward slash (/), and can contain letters, digits, and the following special characters: `$-_.+/&~@:\'*?`. It cannot contain the following special characters: `“%#;!()[]^,”\\"`. Support asterisks (\\*) and question marks (?) as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/tsdf',
- ],
- 'Query' => [
- 'title' => '查询',
- 'description' => 'The query string of the URL to which requests are rewritten.'."\n"
- ."\n"
- .'* **${query}** (default): You can reference **${host}**, **${protocol}**, and **${port}**, with each appearing only once. You can also concatenate any preceding variable with strings that meet the following requirements.'."\n"
- ."\n"
- .'* A custom query string, which must meet the following requirements:'."\n"
- ."\n"
- .' * Contain a maximum of 128 characters.'."\n"
- .' * Contain printable characters, excluding space characters, the special characters `#[]{}\\|<>"`, and uppercase letters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'quedsa',
- ],
- ],
- 'required' => false,
- ],
- 'Type' => [
- 'title' => '转发规则动作类型',
- 'description' => 'The type of the action. Valid values are:'."\n"
- ."\n"
- .'* **ForwardGroup**: forwards requests to multiple vServer groups.'."\n"
- .'* **Redirect**: redirects requests.'."\n"
- .'* **FixedResponse**: returns a fixed response.'."\n"
- .'* **Rewrite**: rewrites requests.'."\n"
- .'* **InsertHeader**: inserts a header.'."\n"
- .'* **RemoveHeader**: deletes a header.'."\n"
- .'* **TrafficLimit**: throttles traffic.'."\n"
- .'* **trafficMirror**: mirrors network traffic.'."\n"
- .'* **Cors**: forwards requests based on CORS.'."\n"
- ."\n"
- .'Actions in each forwarding rule must meet the following requirements:'."\n"
- ."\n"
- .'* **Each forwarding rule must include one and only one of the following actions: **ForwardGroup**, **Redirect**, or **FixedResponse**, and this action must be performed last.**'."\n"
- .'* **Each forwarding rule may contain none, one, or more actions of other types.************** You can specify multiple **InsertHeader** actions or one **Rewrite** action.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'ForwardGroup',
- ],
- 'TrafficLimitConfig' => [
- 'title' => '流量限速',
- 'description' => 'The configuration of the action to throttle traffic.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'QPS' => [
- 'description' => 'Queries per second (QPS). Valid values: **1** to **1000000**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '100',
- ],
- 'PerIpQps' => [
- 'description' => 'QPS per IP address. Valid values: **1 to 1000000**.'."\n"
- ."\n"
- .'> If both the **QPS** and **PerIpQps** parameters are specified, the value of the **QPS** parameter must be smaller than that of the PerIpQps parameter.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '80',
- ],
- ],
- 'required' => false,
- ],
- 'TrafficMirrorConfig' => [
- 'title' => '流量镜像',
- 'description' => 'The configuration of the action to mirror traffic.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'TargetType' => [
- 'title' => '镜像目标类型',
- 'description' => 'The type of destination to which network traffic is mirrored. Valid value:'."\n"
- ."\n"
- .'* **ForwardGroupMirror**: a server group'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'ForwardGroupMirror',
- ],
- 'MirrorGroupConfig' => [
- 'title' => '镜像至服务器组',
- 'description' => 'The configuration of the server group to which traffic is mirrored.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupTuples' => [
- 'description' => 'The server group to which traffic is mirrored.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The server group to which traffic is mirrored.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupId' => [
- 'description' => 'The ID of the server group.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'srg-00mkgijak0w4qgz9****',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'RemoveHeaderConfig' => [
- 'title' => '去除HTTP标头',
- 'description' => 'The configuration of the action to remove a header.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头键',
- 'description' => 'The key of the header to be removed. It can contain a maximum of 40 characters and supports letters, digits, underscores (\\_), and hyphens (-). The header keys specified in RemoveHeader must be unique.'."\n"
- ."\n"
- .'* If Direction is set to Request, the following request headers cannot be removed: `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, `authority`, and `x-forwarded-host`.'."\n"
- .'* If Direction is set to Response, the following response headers (case-insensitive) cannot be removed: `connection`, `upgrade`, `content-length`, and `transfer-encoding`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- ],
- 'required' => false,
- ],
- 'CorsConfig' => [
- 'title' => '跨域',
- 'description' => 'The CORS configuration.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AllowOrigin' => [
- 'title' => '允许的访问来源',
- 'description' => 'The trusted origins of CORS requests.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The trusted origins. You can specify one or more values, or only an asterisk (`*`).'."\n"
- ."\n"
- .'* Each value must start with `http://` or `https://` and be followed by a valid domain name, including wildcard domain names. Example: `http://*.test.abc.example.com`.'."\n"
- .'* You can specify a port for each value. Valid values: **1** to **65535**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'http://example.com',
- ],
- 'required' => false,
- ],
- 'AllowMethods' => [
- 'title' => '选择跨域访问时允许的HTTP方法',
- 'description' => 'The trusted HTTP methods of CORS requests.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The trusted HTTP method of CORS requests. Valid values:'."\n"
- ."\n"
- .'* **GET**'."\n"
- .'* **POST**'."\n"
- .'* **PUT**'."\n"
- .'* **DELETE**'."\n"
- .'* **HEAD**'."\n"
- .'* **OPTIONS**'."\n"
- .'* **PATCH**'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'GET',
- ],
- 'required' => false,
- ],
- 'AllowHeaders' => [
- 'title' => '允许跨域的Header列表',
- 'description' => 'The trusted header of CORS requests.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The trusted header of CORS requests. You can specify one or more values or only an asterisk (`*`) as a wildcard character. Separate multiple values with commas (,). Each value can contain a maximum of 32 characters, and can contain only letters, digits, underscores (\\_), and hyphens (-), but cannot start or end with an underscore (\\_) or a hyphen (-).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_123',
- ],
- 'required' => false,
- ],
- 'ExposeHeaders' => [
- 'title' => '允许暴露的Header列表',
- 'description' => 'The headers that can be exposed.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The header that can be exposed. You can specify one or more values or only an asterisk (`*`) as a wildcard character. Separate multiple values with commas (,). Each value can contain a maximum of 32 characters, and can contain only letters, digits, underscores (\\_), and hyphens (-), but cannot start or end with an underscore (\\_) or a hyphen (-).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_123',
- ],
- 'required' => false,
- ],
- 'AllowCredentials' => [
- 'title' => '是否允许携带凭证信息',
- 'description' => 'Include credentials in CORS requests. Valid values:'."\n"
- ."\n"
- .'* **on**'."\n"
- .'* **off**'."\n",
- 'type' => 'string',
- 'required' => false,
- 'enumValueTitles' => [
- 'off' => 'off',
- 'on' => 'on',
- ],
- 'example' => 'on',
- ],
- 'MaxAge' => [
- 'title' => '预检请求在浏览器的最大缓存时间',
- 'description' => 'The maximum cache time for preflight requests in the browser. Unit: seconds.'."\n"
- ."\n"
- .'Valid values: **-1** to **172800**.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'required' => false,
- 'example' => '1000',
- ],
- ],
- 'required' => false,
- ],
- ],
- 'required' => true,
- ],
- 'required' => true,
- 'maxItems' => 100,
- 'minItems' => 1,
- ],
- 'RuleConditions' => [
- 'title' => '转发规则条件',
- 'description' => 'The conditions of the forwarding rule.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The condition of the forwarding rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'CookieConfig' => [
- 'title' => 'Cookie条件配置',
- 'description' => 'The configuration of the cookie condition.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => 'Cookie键值对列表',
- 'description' => 'The key-value pairs in cookies.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The key-value pair.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => 'Cookie条件键',
- 'description' => 'The cookie key.'."\n"
- ."\n"
- .'* Contain a maximum of 100 characters.'."\n"
- .'* Support asterisks (\\*) and question marks (?) as wildcard characters.'."\n"
- .'* Support printable characters, excluding uppercase letters, space characters, and the following special characters: `; # [ ] { } \\ | < > & "`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Value' => [
- 'title' => 'Cookie条件值',
- 'description' => 'The cookie value.'."\n"
- ."\n"
- .'* Contain a maximum of 100 characters.'."\n"
- .'* Support asterisks (\\*) and question marks (?) as wildcard characters.'."\n"
- .'* Support printable characters, excluding uppercase letters, space characters, and the following special characters: `; # [ ] { } \\ | < > & "`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- 'maxItems' => 50,
- ],
- ],
- 'required' => false,
- ],
- 'HeaderConfig' => [
- 'title' => 'HTTP标头条件配置',
- 'description' => 'The configuration of the HTTP header condition.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头键',
- 'description' => 'The key of the HTTP header.'."\n"
- ."\n"
- .'* Contain a maximum of 40 characters.'."\n"
- .'* Support letters, digits, hyphens (-), and underscores (\\_).'."\n"
- .'* Do not support Cookie or Host.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Port',
- ],
- 'Values' => [
- 'title' => 'HTTP标头值列表',
- 'description' => 'The values of the HTTP header.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The value. (The header values within a forwarding rule must be unique.)'."\n"
- ."\n"
- .'* Contain a maximum of 128 characters.'."\n"
- .'* Support asterisks (\\*) and question marks (?) as wildcard characters, and other printable characters whose ASCII values are `larger than or equal to 32 and smaller than 127`. `Quotation marks (")` are not supported.'."\n"
- .'* Cannot start or end with a space, or end with a `backslash (\\)`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5006',
- ],
- 'required' => false,
- 'maxItems' => 50,
- ],
- ],
- 'required' => false,
- ],
- 'HostConfig' => [
- 'title' => '主机名条件配置',
- 'description' => 'The configuration of the hostname condition.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '主机名列表',
- 'description' => 'The hostnames.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The hostname. A forwarding rule can contain only one unique hostname.'."\n"
- ."\n"
- .'* Contain 3 to 128 characters, and support lowercase letters, digits, and the following characters: - . \\* = ~ \\_ + \\ ^ ! $ & | ( ) \\[ ] ?.'."\n"
- .'* Contain at least one period (.) but cannot start or end with a period (.).'."\n"
- .'* The rightmost domain label can contain only letters and wildcard characters, and cannot contain digits or hyphens (-). The leftmost `domain label` can be an asterisk (\\*).'."\n"
- .'* The other domain labels do not start or end with hyphens (-). You can use asterisks (\\*) and question marks (?) anywhere in a domain label as wildcard characters.'."\n"
- .'* If you enter a specific hostname or a wildcard hostname, the hostname cannot start with a tilde (~).'."\n"
- .'* If you specify a regular expression, it cannot start with an asterisk (\\*). Regular expressions are case-insensitive.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'www.example.com',
- ],
- 'required' => false,
- 'maxItems' => 50,
- ],
- ],
- 'required' => false,
- ],
- 'MethodConfig' => [
- 'title' => 'HTTP请求方法条件配置',
- 'description' => 'The configuration of the HTTP request method condition.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => 'HTTP请求方法列表',
- 'description' => 'The HTTP request methods.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The HTTP request method.'."\n"
- ."\n"
- .'Valid values: **HEAD**, **GET**, **POST**, **OPTIONS**, **PUT**, **PATCH**, and **DELETE**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'PUT',
- ],
- 'required' => false,
- 'maxItems' => 10,
- ],
- ],
- 'required' => false,
- ],
- 'PathConfig' => [
- 'title' => '路径条件配置',
- 'description' => 'The configuration of the path condition.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '路径条件列表',
- 'description' => 'The paths to which requests are forwarded.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The path to which requests are forwarded. The value must meet the following requirements:'."\n"
- ."\n"
- .'* Contain a maximum of 128 characters, is case-sensitive, and support asterisks (\\*) and question marks (?) as wildcard characters.'."\n"
- .'* If the value is not a regular expression, it must start with a forward slash (/), and can contain letters, digits, and the following special characters: `$ - _ . + / & ~ @ : \' * ?`. It cannot contain the following special characters: `% # ; ! ( ) [ ] ^ , \\ "`. You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n"
- .'* If the value is a regular expression, it must start with a title (~), and can contain letters, digits, and the following special characters: `. - _ / = ? ~ ^ * $ : ( ) [ ] + |`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test',
- ],
- 'required' => false,
- 'maxItems' => 50,
- ],
- ],
- 'required' => false,
- ],
- 'QueryStringConfig' => [
- 'title' => '查询字符串条件配置',
- 'description' => 'The configurations of the query string condition.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '查询字符串条件键值对列表',
- 'description' => 'The key-value pairs in query strings.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The key-value pair.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => '查询字符串条件键',
- 'description' => 'The key of the query string.'."\n"
- ."\n"
- .'* Contain a maximum of 100 characters.'."\n"
- .'* Support asterisks (\\*) and question marks (?) as wildcard characters. Support printable characters, excluding uppercase letters, space characters, and the following special characters: `# [ ] { } \\ | < > & "`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Value' => [
- 'title' => '查询字符串条件值',
- 'description' => 'The value of the query string.'."\n"
- ."\n"
- .'* Contain a maximum of 128 characters.'."\n"
- .'* Support printable characters, excluding uppercase letters, space characters, and the following special characters: `# [ ] { } \\ | < > & "`. You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- 'maxItems' => 50,
- ],
- ],
- 'required' => false,
- ],
- 'ResponseHeaderConfig' => [
- 'title' => '返回HTTP标头',
- 'description' => 'The configuration of the HTTP response header condition.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => '返回HTTP标头键',
- 'description' => 'The key of the HTTP response header.'."\n"
- ."\n"
- .'* Contain a maximum of 40 characters.'."\n"
- .'* Support letters, digits, hyphens (-), and underscores (\\_).'."\n"
- .'* Do not support Cookie or Host.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Port',
- ],
- 'Values' => [
- 'title' => '返回HTTP标头值',
- 'description' => 'The values of the HTTP response header.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The value.'."\n"
- ."\n"
- .'* Contain a maximum of 128 characters.'."\n"
- .'* Support printable characters whose ASCII values are `larger than or equal to 32 and smaller than 127`, excluding uppercase letters. You can use asterisks (\\*), and question marks (?) as wildcard characters. `Quotation marks (")` are not supported.'."\n"
- .'* Cannot start or end with a space, or end with a backslash (`\\`).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5006',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'ResponseStatusCodeConfig' => [
- 'title' => '返回状态码条件',
- 'description' => 'The configuration of the response status code condition.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '返回状态码条件',
- 'description' => 'The response status codes.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The response status code.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '200',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'Type' => [
- 'title' => '条件类型',
- 'description' => 'The type of the condition. Valid values:'."\n"
- ."\n"
- .'* Host: forwards requests based on hosts.'."\n"
- .'* Path: forwards requests based on paths.'."\n"
- .'* Header: forwards requests based on HTTP headers.'."\n"
- .'* QueryString: forwards requests based on query strings.'."\n"
- .'* Method: forwards requests based on HTTP request methods.'."\n"
- .'* Cookie: forwards requests based on cookies.'."\n"
- .'* SourceIp: forwards requests based on source IP addresses.'."\n"
- .'* ResponseHeader: forwards requests based on HTTP response headers.'."\n"
- .'* ResponseStatusCode: forwards requests based on response status codes.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'enumValueTitles' => [
- 'Cookie' => 'Cookie',
- 'Path' => 'Path',
- 'ResponseHeader' => 'ResponseHeader',
- 'SourceIp' => 'SourceIp',
- 'Header' => 'Header',
- 'ResponseStatusCode' => 'ResponseStatusCode',
- 'QueryString' => 'QueryString',
- 'Host' => 'Host',
- 'Method' => 'Method',
- ],
- 'example' => 'Host',
- ],
- 'SourceIpConfig' => [
- 'title' => '基于源IP业务流量匹配',
- 'description' => 'The configuration of the condition that matches requests based on source IP addresses.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '基于源IP业务流量匹配',
- 'description' => 'The condition that matches requests based on source IP addresses.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'Specify one or more IP addresses or CIDR blocks.'."\n"
- ."\n"
- .'Each forwarding rule supports up to five source IP addresses (CIDR blocks).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.0.0/32',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- ],
- 'required' => true,
- ],
- 'required' => true,
- 'maxItems' => 100,
- 'minItems' => 1,
- ],
- 'RuleName' => [
- 'title' => '转发规则名称',
- 'description' => 'The name of the forwarding rule.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'test',
- ],
- 'Direction' => [
- 'title' => '转发规则方向',
- 'description' => 'The traffic direction to which the forwarding rule is applied.'."\n"
- ."\n"
- .'Valid values:'."\n"
- ."\n"
- .'* Response'."\n"
- .'* Request'."\n",
- 'type' => 'string',
- 'required' => false,
- 'enumValueTitles' => [
- 'Response' => 'Response',
- 'Request' => 'Request',
- ],
- 'example' => 'Request',
- ],
- 'Tag' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tag.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The key of the tag. It can contain a maximum of 128 characters, cannot start with aliyun or acs:, and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'env',
- ],
- 'Value' => [
- 'description' => 'The value of the tag. It can contain a maximum of 128 characters, cannot start with aliyun or acs:, and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'product',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- ],
- 'required' => true,
- ],
+ 'items' => ['description' => 'The ID of the ACL.', 'type' => 'string', 'required' => false, 'example' => 'acl-hp34s2h0xx1ht4nwo****', 'title' => ''],
'required' => true,
- 'maxItems' => 100,
+ 'maxItems' => 5,
'minItems' => 1,
+ 'example' => '',
],
],
],
@@ -12630,218 +7748,162 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'Creates one or more forwarding rules at a time.'."\n",
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The ID of the asynchronous task.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
- 'RuleIds' => [
- 'title' => '转发规则标识列表',
- 'description' => 'The priority of the forwarding rule. Valid values: **1 to 10000**. A lower value specifies a higher priority.'."\n"
- ."\n"
- .'> The priorities of the forwarding rules created for the same listener is unique.'."\n",
+ 'AclRelations' => [
+ 'title' => '',
+ 'description' => 'The relations between the specified ACL and the listeners.',
'type' => 'array',
'items' => [
- 'description' => '',
+ 'description' => 'The ACL and the associated listeners.',
'type' => 'object',
'properties' => [
- 'RuleId' => [
- 'title' => '转发规则标识',
- 'description' => 'The forwarding rule ID.'."\n",
- 'type' => 'string',
- 'example' => 'rule-a3x3pg1yohq3lq****',
- ],
- 'Priority' => [
- 'title' => '转发规则优先级',
- 'description' => 'The priority of the forwarding rule. Valid values: **1 to 10000**. A smaller value indicates a higher priority.'."\n"
- ."\n"
- .'> The priorities of the forwarding rules created for the same listener must be unique.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
+ 'AclId' => ['description' => 'ACL ID', 'type' => 'string', 'title' => '', 'example' => 'acl-hp34s2h0xx1ht4nwo****'],
+ 'RelatedListeners' => [
+ 'title' => '',
+ 'description' => 'The listeners that are associated with the ACL.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The listener that is associated with the ACL.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ListenerId' => ['description' => 'The listener ID.', 'type' => 'string', 'title' => '', 'example' => 'lsn-bpn0kn908w4nbw****'],
+ 'ListenerPort' => ['description' => 'The listener port.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '80'],
+ 'ListenerProtocol' => ['description' => 'The listener protocol.', 'type' => 'string', 'title' => '', 'example' => 'HTTPS'],
+ 'LoadBalancerId' => ['description' => 'The ID of the SLB instance.', 'type' => 'string', 'title' => '', 'example' => 'alb-bp1b6c719dfa08ex****'],
+ 'Status' => ['description' => 'The association status between the ACL and the listener.'."\n"
+ ."\n"
+ .'- **Associating**'."\n"
+ ."\n"
+ .'- **Associated**'."\n"
+ ."\n"
+ .'- **Dissociating**', 'type' => 'string', 'title' => '', 'example' => 'Associated'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
],
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0******', 'title' => ''],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.GRPCServerGroup',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'Conflict.Priority',
- 'errorMessage' => 'There is already %s having the same configuration with %s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerRulesNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.RuleWildcardsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.RuleActionsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'Mismatch.VpcId',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'Mismatch.Protocol',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.RewriteMissingForwardGroup',
- 'errorMessage' => 'The operation is not allowed because of RewriteMissingForwardGroup.',
- ],
- [
- 'errorCode' => 'OperationDenied.MirrorActionSupportHttpGroupOnly',
- 'errorMessage' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.',
- ],
- [
- 'errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction',
- 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.',
- ],
+ 403 => [
+ ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ [
+ ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'asynchronous',
- 'callback' => 'Alb::2020-06-16::ListAsynJobs',
- 'callbackInterval' => 1000,
- 'maxCallbackTimes' => 60,
+ 'title' => 'ListAclRelations',
+ 'summary' => 'Queries the listeners that are associated with access control lists (ACLs).',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListAclRelations',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#AclId}'],
+ ],
+ ],
+ ],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"RuleIds\\": [\\n {\\n \\"RuleId\\": \\"rule-a3x3pg1yohq3lq****\\",\\n \\"Priority\\": 10\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<CreateRulesResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <RuleIds>\\n <RuleId>rule-a3x3pg1yohq3lq****</RuleId>\\n <Priority>10</Priority>\\n </RuleIds>\\n</CreateRulesResponse>","errorExample":""}]',
- 'title' => 'CreateRules',
- 'description' => 'When you call this operation, take note of the following limits:'."\n"
- ."\n"
- .'* When you configure the **Redirect** action, do not use the default values for parameters other than **HttpCode**.'."\n"
- ."\n"
- .'* If you specify multiple actions in a forward rule, you must specify the **ForwardGroup** parameter along with the **Rewrite** parameter.'."\n"
- ."\n"
- .'* **CreateRules** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListRules](~~214379~~) operation to query the status of the forwarding rules.'."\n"
- ."\n"
- .' * If the forwarding rules are in the **Provisioning** state, the forwarding rules are being created.'."\n"
- .' * If the forwarding rules are in the **Available** state, the forwarding rules are created.'."\n"
- ."\n"
- .'* You can set **RuleConditions** and **RuleActions** to add conditions and actions to a forwarding rule. Take note of the following limits on the number of conditions and the number of actions in each forwarding rule:'."\n"
- ."\n"
- .' * Conditions: 5 for each basic ALB instance, 10 for each standard ALB instance, and 10 for each WAF-enabled ALB instance.'."\n"
- .' * Actions: 3 for each basic ALB instance, 5 for each standard ALB instance, and 5 for each WAF-enabled ALB instance.'."\n",
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AclRelations\\": [\\n {\\n \\"AclId\\": \\"acl-hp34s2h0xx1ht4nwo****\\",\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bpn0kn908w4nbw****\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTPS\\",\\n \\"LoadBalancerId\\": \\"alb-bp1b6c719dfa08ex****\\",\\n \\"Status\\": \\"Associated\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\"\\n}","type":"json"}]',
],
- 'DeleteRule' => [
- 'summary' => 'Deletes a forwarding rule.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ListAcls' => [
+ 'summary' => 'Queries the access control lists (ACLs) in a region.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
+ 'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
- 'name' => 'ClientToken',
+ 'name' => 'AclIds',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'Filter access control lists (ACLs) by ACL ID. You can specify at most 20 ACL IDs in each call.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The ACL ID.', 'type' => 'string', 'required' => false, 'example' => 'acl-hp34s2h0xx1ht4nwo****', 'title' => ''],
'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
+ 'maxItems' => 20,
+ 'example' => '',
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'AclNames',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: sends the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false**: performs a dry run and sends the request. If the request passes the dry run, the `HTTP_2xx` status code is returned and the operation is performed. This is the default value.'."\n",
- 'type' => 'boolean',
+ 'title' => '',
+ 'description' => 'The ACL names. You can specify up to 10 ACL names in each call.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The ACL name.', 'type' => 'string', 'required' => false, 'example' => 'test-acl', 'title' => ''],
'required' => false,
- 'example' => 'true',
+ 'maxItems' => 10,
+ 'example' => '',
],
],
[
- 'name' => 'RuleId',
+ 'name' => 'ResourceGroupId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the resource group. You can filter the query results based on the specified ID.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'rg-atstuj3rtopty****'],
+ ],
+ [
+ '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"
+ ."\n"
+ .'- If a next query is to be sent, set the value to the value of NextToken that is returned from the last call.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The maximum number of entries to return. This parameter is optional. Valid values: **1** to **100**. Default value: **20**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '1', 'default' => '20', 'title' => '', 'required' => false, 'example' => '50'],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '转发规则标识',
- 'description' => 'The ID of the forwarding rule.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'rule-doc****',
+ 'description' => 'The tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
],
],
@@ -12849,1090 +7911,530 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'Deletes a forwarding rule.'."\n",
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
+ 'Acls' => [
+ 'title' => '',
+ 'description' => 'A list of ACLs.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The network ACLs.',
+ 'type' => 'object',
+ 'properties' => [
+ 'AclId' => ['description' => 'The ACL ID.', 'type' => 'string', 'title' => '', 'example' => 'acl-hp34s2h0xx1ht4nwo****'],
+ 'AclName' => ['description' => 'The name of the ACL.', 'type' => 'string', 'title' => '', 'example' => 'test-acl'],
+ 'AclStatus' => ['description' => 'The status of the ACL. Valid values:'."\n"
+ ."\n"
+ .'- **Creating**: The network ACL is being created.'."\n"
+ ."\n"
+ .'- **Available**: The network ACL is available.'."\n"
+ ."\n"
+ .'- **Configuring**', 'type' => 'string', 'title' => '', 'example' => 'Available'],
+ 'AddressIPVersion' => ['description' => 'The IP version of the ACL. Only **IPv4** may be returned.', 'type' => 'string', 'title' => '', 'example' => 'IPv4'],
+ 'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'title' => '', 'example' => 'rg-atstuj3rtopty****'],
+ 'ConfigManagedEnabled' => ['description' => 'Indicates whether configuration management is enabled. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**', 'type' => 'boolean', 'title' => '', 'example' => 'false'],
+ 'CreateTime' => ['description' => 'The time when the ACL was created. The follows the `YYYY-MM-DDThh:mm:ssZ` format.', 'type' => 'string', 'example' => '2023-02-15T07:37:33Z', 'title' => ''],
+ 'Tags' => [
+ 'description' => 'The tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http\\:// or https\\://.', 'type' => 'string', 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http\\:// or https\\://.', 'type' => 'string', 'example' => 'product', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
+ 'MaxResults' => ['description' => 'The maximum number of network ACLs returned. This parameter is optional. Valid values: **1** to **100**. If this parameter is not set, the default value **20** is returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
+ '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"
+ ."\n"
+ .'- If **NextToken** is returned, the value indicates the token that is used for the next query.', 'type' => 'string', 'example' => 'FFmyTO70t****', 'title' => ''],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF******'],
+ 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectStatus.Rule',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.Listener',
- 'errorMessage' => 'The specified listener is being configured, please try again later.',
- ],
+ 403 => [
+ ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'ACL authentication has failed.', 'description' => ''],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Rule',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ 'title' => 'ListAcls',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'alb:ListAcls',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/*'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteRuleResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</DeleteRuleResponse>","errorExample":""}]',
- 'title' => 'DeleteRule',
- 'description' => '**DeleteRule** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListRules](~~214379~~) operation to query the status of a forwarding rule:'."\n"
- ."\n"
- .'* If the forwarding rule is in the **Deleting** state, the forwarding rule is being deleted.'."\n"
- .'* If the forwarding rule cannot be found, the forwarding rule is deleted.'."\n",
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Acls\\": [\\n {\\n \\"AclId\\": \\"acl-hp34s2h0xx1ht4nwo****\\",\\n \\"AclName\\": \\"test-acl\\",\\n \\"AclStatus\\": \\"Available\\",\\n \\"AddressIPVersion\\": \\"IPv4\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtopty****\\",\\n \\"ConfigManagedEnabled\\": false,\\n \\"CreateTime\\": \\"2023-02-15T07:37:33Z\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70t****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\",\\n \\"TotalCount\\": 10\\n}","type":"json"}]',
],
- 'DeleteRules' => [
- 'summary' => 'Deletes one or more forwarding rules from a listener at a time.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ListAsynJobs' => [
+ 'summary' => 'Queries asynchronous tasks in a region.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeCode' => '185',
- 'abilityTreeNodes' => [
- 'FEATUREslbBIWWMH',
- 'FEATUREslbTXOYED',
- 'FEATUREslbQCCQ6L',
- 'FEATUREslb4T90LL',
- 'FEATUREslbIT4IYN',
- 'FEATUREslbA51OGD',
- 'FEATUREslbUBPZWI',
- 'FEATUREslbGVK35E',
- 'FEATUREslbYG3GCF',
- 'FEATUREslbRBR9GZ',
- 'FEATUREslbMWZQWL',
- 'FEATUREslbJCYSIV',
- 'FEATUREslbY93SFN',
- 'FEATUREslbVUMBEO',
- 'FEATUREslbZ4XFTS',
- 'FEATUREslb2Q6O49',
- ],
- 'autoTest' => true,
- 'tenantRelevance' => 'tenant',
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'ClientToken',
+ 'name' => 'JobIds',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The asynchronous task IDs.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The asynchronous task ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'bfb728bf-53a8-4886-84cb-829******', 'title' => ''],
'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
+ 'maxItems' => 10,
+ 'example' => '',
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'ResourceType',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: checks the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => '', 'description' => 'The type of the associated resource. Valid values:'."\n"
+ ."\n"
+ .'* **loadbalancer**: an Application Load Balancer (ALB) instance'."\n"
+ .'* **listener**: a listener'."\n"
+ .'* **rule**: a forwarding rule'."\n"
+ .'* **acl**: an access control list (ACL)'."\n"
+ .'* **securitypolicy**: a security policy'."\n"
+ .'* **servergroup**: a server group'."\n", 'type' => 'string', 'required' => false, 'example' => 'loadbalancer'],
],
[
- 'name' => 'RuleIds',
+ 'name' => 'ResourceIds',
'in' => 'query',
- 'style' => 'repeatList',
+ 'style' => 'flat',
'schema' => [
- 'title' => '同一个监听下的转发规则标识列表',
- 'description' => 'The forwarding rules. You can specify at most 100 forwarding rules in each call.'."\n",
+ 'title' => '',
+ 'description' => 'The resource IDs.'."\n",
'type' => 'array',
- 'items' => [
- 'description' => 'The ID of the forwarding rule.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'RuleIds.1=rule-a3x3pg1yohq3lq****,RuleIds.2=rule-a5x7og7yyhq8kq****',
- ],
- 'required' => true,
- 'maxItems' => 100,
- 'minItems' => 1,
+ 'items' => ['description' => 'The resource ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'alb-o8mszt95oamfjy****', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 10,
+ 'example' => '',
],
],
+ [
+ 'name' => 'ApiName',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The name of the operation.'."\n", 'type' => 'string', 'required' => false, 'example' => 'CreateLoadBalancer'],
+ ],
+ [
+ 'name' => 'BeginTime',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The timestamp that indicates the start time of the task. Unit: milliseconds.'."\n"
+ ."\n"
+ .'Specify the timestamp in the Unix format to indicate the total amount of time that is from 00:00:00 (UTC+0) on January 1, 1970 to when the status of the asynchronous task is queried.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2134663231234'],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The timestamp that indicates the end time of the task. Unit: milliseconds.'."\n"
+ ."\n"
+ .'Specify the timestamp in the Unix format to indicate the total amount of time that is from 00:00:00 (UTC+0) on January 1, 1970 to when the status of the asynchronous task is returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2144663233315'],
+ ],
+ [
+ 'name' => 'NextToken',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* You do not need to specify this parameter for the first request.'."\n"
+ .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20'],
+ ],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'Deletes one or more forwarding rules at a time.'."\n",
+ 'description' => 'The tasks.'."\n",
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '7BED4F62-3E6E-5E4F-8C53-2D8CCE77F2ED',
+ 'Jobs' => [
+ 'title' => '',
+ 'description' => 'The tasks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ApiName' => ['title' => '', 'description' => 'The name of the operation.'."\n", 'type' => 'string', 'example' => 'CreateLoadBalancer'],
+ 'CreateTime' => ['title' => '', 'description' => 'The timestamp that indicates the start time of the task. 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' => '2134663231234'],
+ 'ErrorCode' => ['title' => '', 'description' => 'If the value of **Status** is Failed, an error code is returned.'."\n", 'type' => 'string', 'example' => '506'],
+ 'ErrorMessage' => ['title' => '', 'description' => 'If the value of **Status** is Failed, an error message is returned.'."\n", 'type' => 'string', 'example' => 'AllocateEipAddress Failed'],
+ 'Id' => ['title' => '', 'description' => 'The task ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B5****'],
+ 'ModifyTime' => ['title' => '', 'description' => 'The timestamp that indicates the end time of the task. 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' => '2144663233315'],
+ 'OperateType' => ['title' => '', 'description' => 'The type of the operation. Valid values:'."\n"
+ ."\n"
+ .'* **Create**'."\n"
+ .'* **Update**'."\n"
+ .'* **Delete**'."\n", 'type' => 'string', 'example' => 'Create'],
+ 'ResourceId' => ['title' => '', 'description' => 'The associated resource ID.'."\n", 'type' => 'string', 'example' => 'alb-o8mszt95oamfjy****'],
+ 'ResourceType' => ['title' => '', 'description' => 'The type of the associated resource. Valid values:'."\n"
+ ."\n"
+ .'* **loadbalancer**: an ALB instance'."\n"
+ .'* **listener**: a listener'."\n"
+ .'* **rule**: a forwarding rule'."\n"
+ .'* **acl**: an ACL'."\n"
+ .'* **securitypolicy**: a security policy'."\n"
+ .'* **servergroup**: a server group'."\n", 'type' => 'string', 'example' => 'loadbalancer'],
+ 'Status' => ['title' => '', 'description' => 'The status of the task. Valid values:'."\n"
+ ."\n"
+ .'* **Succeeded**'."\n"
+ .'* **Failed**'."\n"
+ .'* **Processing**'."\n", 'type' => 'string', 'example' => 'Succeeded'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
+ 'MaxResults' => ['title' => '', 'description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10'],
+ 'NextToken' => ['title' => '', 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* If **NextToken** is empty, no next page exists.'."\n"
+ .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'],
+ 'TotalCount' => ['title' => '', 'description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1000'],
],
+ 'example' => '',
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectStatus.Rule',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.CrossLoadBalancerRules',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- ],
- 403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
- ],
- [
- [
- 'errorCode' => 'ResourceNotFound.Rule',
- 'errorMessage' => 'The specified resource %s is not found.',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Jobs\\": [\\n {\\n \\"ApiName\\": \\"CreateLoadBalancer\\",\\n \\"CreateTime\\": 2134663231234,\\n \\"ErrorCode\\": \\"506\\",\\n \\"ErrorMessage\\": \\"AllocateEipAddress Failed\\",\\n \\"Id\\": \\"365F4154-92F6-4AE4-92F8-7FF34B5****\\",\\n \\"ModifyTime\\": 2144663233315,\\n \\"OperateType\\": \\"Create\\",\\n \\"ResourceId\\": \\"alb-o8mszt95oamfjy****\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"Status\\": \\"Succeeded\\"\\n }\\n ],\\n \\"MaxResults\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"<ListAsynJobsResponse>\\n <Jobs>\\n <ApiName>CreateLoadBalancer</ApiName>\\n <CreateTime>2134663231234</CreateTime>\\n <ErrorCode>506</ErrorCode>\\n <ErrorMessage>AllocateEipAddress Failed</ErrorMessage>\\n <Id>365F4154-92F6-4AE4-92F8-7FF34B5****</Id>\\n <ModifyTime>2144663233315</ModifyTime>\\n <OperateType>Create</OperateType>\\n <ResourceId>alb-o8mszt95oamfjy****</ResourceId>\\n <ResourceType>acl</ResourceType>\\n <Status>Succeeded</Status>\\n </Jobs>\\n <MaxResults>10</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <TotalCount>1000</TotalCount>\\n</ListAsynJobsResponse>","errorExample":""}]',
+ 'title' => 'ListAsynJobs',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListAsynJobs',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
],
],
],
- 'staticInfo' => [
- 'returnType' => 'asynchronous',
- 'callback' => 'Alb::2020-06-16::ListAsynJobs',
- 'callbackInterval' => 1000,
- 'maxCallbackTimes' => 60,
- ],
- 'eventInfo' => [
- 'enable' => false,
- 'eventNames' => [],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"7BED4F62-3E6E-5E4F-8C53-2D8CCE77F2ED\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteRulesResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>7BED4F62-3E6E-5E4F-8C53-2D8CCE77F2ED</RequestId>\\n</DeleteRulesResponse>","errorExample":""}]',
- 'title' => 'DeleteRules',
- 'description' => '**DeleteRules** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListRules](~~214379~~) operation to query the status of forwarding rules.'."\n"
- ."\n"
- .'* If the forwarding rules are in the **Deleting** state, the forwarding rules are being deleted.'."\n"
- .'* If the forwarding rules cannot be found, the forwarding rules are deleted.'."\n",
],
- 'UpdateRuleAttribute' => [
- 'summary' => 'Updates a forwarding rule, such as the match condition, action, and name.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ListHealthCheckTemplates' => [
+ 'summary' => 'Queries health check templates in a region.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeCode' => '177',
- 'abilityTreeNodes' => [
- 'FEATUREslbM7ALO6',
- ],
+ 'operationType' => 'list',
+ 'abilityTreeCode' => '151',
+ 'abilityTreeNodes' => ['FEATUREslb6RAQIN'],
],
'parameters' => [
[
- 'name' => 'RuleId',
+ 'name' => 'NextToken',
'in' => 'query',
- 'schema' => [
- 'title' => '转发规则标识',
- 'description' => 'The ID of the forwarding rule.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'rule-4dp5i6ea****',
- ],
+ 'schema' => ['title' => '', 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* You do not need to specify this parameter for the first request.'."\n"
+ .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The number of entries to return in each call. Valid values: **1** to **100**. Default value: **20**'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '50', 'default' => '20'],
+ ],
+ [
+ 'name' => 'HealthCheckTemplateIds',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The IDs of health check templates.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The IDs of health check templates. You can specify up to 20 IDs in each call. The results are filtered based on the specified IDs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'hct-bp1qjwo61pqz3ahltv****', 'title' => ''],
'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
+ 'maxItems' => 20,
+ 'example' => '',
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'HealthCheckTemplateNames',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
+ 'title' => '',
+ 'description' => 'The health check templates.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The names of health check templates. You can specify up to 10 names in each call. The results are filtered based on the specified names.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''],
'required' => false,
- 'example' => 'false',
+ 'maxItems' => 20,
+ 'example' => '',
],
],
[
- 'name' => 'RuleConditions',
+ 'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '转发规则条件',
- 'description' => 'The match conditions of the forwarding rule.'."\n",
+ 'description' => 'The tags.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The match condition of the forwarding rule.'."\n",
+ 'description' => 'The tags.'."\n",
'type' => 'object',
'properties' => [
- 'CookieConfig' => [
- 'title' => 'Cookie条件配置',
- 'description' => 'The key-value pairs of the cookie.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => 'Cookie键值对列表',
- 'description' => 'The key-value pairs of the cookie.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The key-value pair of the cookie.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => 'Cookie条件键',
- 'description' => 'The cookie key. The key must be 1 to 100 characters in length, and can contain printable characters such as lowercase letters, asterisks (\\*), and question marks (?). The key cannot contain uppercase letters, space characters, or the following special characters: `# [ ] { } \\ | < > & " ;`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Value' => [
- 'title' => 'Cookie条件值',
- 'description' => 'The cookie value. The cookie value must be 1 to 128 characters in length, and can contain lowercase letters, printable ASCII characters, asterisks (\\*), and question marks (?). It cannot contain space characters or the following special characters: `# [ ] { } \\ | < > &`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'HeaderConfig' => [
- 'title' => 'HTTP标头条件配置',
- 'description' => 'The configuration of the header.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头键',
- 'description' => 'The header key. The header key must be 1 to 40 characters in length, and can contain letters, digits, hyphens (-), and underscores (\\_). Cookie and Host are not supported.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Port',
- ],
- 'Values' => [
- 'title' => 'HTTP标头值列表',
- 'description' => 'The header values.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The header value. The header values within a forwarding rule must be unique. The header value must meet the following requirements:'."\n"
- ."\n"
- .'* The header value must be 1 to 128 characters in length.'."\n"
- .'* It can contain asterisks (\\*), question marks (?), and other printable characters whose ASCII values are `larger than or equal to 32 and smaller than 127`. Quotation marks (`"`) are not supported.'."\n"
- .'* The header value cannot start or end with a space character, or end with a backslash (`\\`).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5006',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'HostConfig' => [
- 'title' => '主机名条件配置',
- 'description' => 'The configuration of the hosts.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '主机名列表',
- 'description' => 'The hostnames.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The hostname. The hostname must meet the following requirements:'."\n"
- ."\n"
- .'* The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), and question marks (?).'."\n"
- .'* The hostname contains at least one period (.) but does not start or end with a period (.).'."\n"
- .'* The rightmost domain label can contain only letters, asterisks (\\*), and question marks (?), and cannot contain digits or hyphens (-).'."\n"
- .'* The domain labels do not start or end with a hyphen (-). You can specify asterisks (∗) and question marks (?) anywhere in a domain label.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'www.example.com',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'MethodConfig' => [
- 'title' => 'HTTP请求方法条件配置',
- 'description' => 'The configuration of the request method.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => 'HTTP请求方法列表',
- 'description' => 'The request methods.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The request method.'."\n"
- ."\n"
- .'Valid values: **HEAD**, **GET**, **POST**, **OPTIONS**, **PUT**, **PATCH**, and **DELETE**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'PUT',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'PathConfig' => [
- 'title' => '路径条件配置',
- 'description' => 'The configuration of the forwarding URL.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '路径条件列表',
- 'description' => 'The forwarding URLs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The URL to which requests are forwarded. The URL must meet the following requirements:'."\n"
- ."\n"
- .'* The URL must be 1 to 128 characters in length.'."\n"
- .'* It must start with a forward slash (/) and can contain letters, digits, and the following special characters: `$ - _ . + / & ~ @ :`. It cannot contain the following special characters: `% # ; ! ( ) [ ] ^ , \\ "`. You can use asterisks (\\*) and question marks (?) as wildcards.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'QueryStringConfig' => [
- 'title' => '查询字符串条件配置',
- 'description' => 'The configuration of the query strings.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '查询字符串条件键值对列表',
- 'description' => 'The query strings. You can specify up to 20 query strings.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The query string.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => '查询字符串条件键',
- 'description' => 'The key of the query string. The key must be 1 to 100 characters in length, and can contain printable characters such as lowercase letters, asterisks (\\*), and question marks (?). The key cannot contain uppercase letters, space characters, or the following special characters: `# [ ] { } \\ | < > & "`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Value' => [
- 'title' => '查询字符串条件值',
- 'description' => 'The value of the query string. The value must be 1 to 128 characters in length, and can contain printable characters such as lowercase letters, asterisks (\\*), and question marks (?). The value cannot contain uppercase letters, space characters, or the following special characters: `# [ ] { } \\ | < > & "`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'Type' => [
- 'title' => '条件类型',
- 'description' => 'The type of forwarding rule. You can specify up to seven types of forwarding rule. Valid values:'."\n"
- ."\n"
- .'* **Host**: Requests are forwarded based on hosts.'."\n"
- .'* **Path**: Requests are forwarded based on URLs.'."\n"
- .'* **Header**: Requests are forwarded based on HTTP headers.'."\n"
- .'* **QueryString**: Requests are forwarded based on query strings.'."\n"
- .'* **Method**: Requests are forwarded based on request methods.'."\n"
- .'* **Cookie**: Requests are forwarded based on cookies.'."\n"
- .'* **SourceIp**: Requests are forwarded based on source IP addresses.'."\n"
- .'* **ResponseHeader**: Requests are forwarded based on HTTP response headers.'."\n"
- .'* **ResponseStatusCode**: Requests are forwarded based on response status codes.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Host',
- ],
- 'ResponseStatusCodeConfig' => [
- 'title' => '返回状态码条件',
- 'description' => 'The configuration of the response status codes.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '返回状态码条件',
- 'description' => 'The response status codes.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The response status code.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'ResponseHeaderConfig' => [
- 'title' => '返回HTTP标头',
- 'description' => 'The configuration of headers.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => '返回HTTP标头键',
- 'description' => 'The header key.'."\n"
- ."\n"
- .'* The key must be 1 to 40 characters in length.'."\n"
- .'* It can contain letters, digits, hyphens (-), and underscores (\\_).'."\n"
- .'* Cookie and Host are not supported.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Values' => [
- 'title' => '返回HTTP标头值',
- 'description' => 'The header values.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The header value.'."\n"
- ."\n"
- .'* The header value must be 1 to 128 characters in length.'."\n"
- .'* It can contain printable characters whose ASCII values are `larger than or equal to 32 and smaller than 127`, lowercase letters, asterisks (\\*), and question marks (?). Quotation marks (`"`) are not supported.'."\n"
- .'* The header value cannot start or end with a space character, or end with a backslash (`\\`).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '50006',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'SourceIpConfig' => [
- 'title' => '基于源IP业务流量匹配',
- 'description' => 'Traffic matching based on source IP addresses. You can specify up to five IP addresses, including CIDR blocks.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '基于源IP业务流量匹配',
- 'description' => 'You can add one or more IP addresses, including CIDR blocks.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'You can specify one or more IP addresses, including CIDR blocks.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.0.0/32',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
+ 'Key' => ['description' => 'The tag key. 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' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. 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' => 'product', 'title' => ''],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
'required' => false,
- 'maxItems' => 100,
- 'minItems' => 1,
+ 'title' => '',
+ 'example' => '',
],
],
[
- 'name' => 'RuleActions',
+ 'name' => 'ResourceGroupId',
'in' => 'query',
- 'style' => 'flat',
+ 'schema' => ['description' => 'The resource group ID. You can filter the query results based on the specified ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****', 'title' => ''],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '转发规则动作',
- 'description' => 'The actions of the forwarding rule.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The action of the forwarding rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'FixedResponseConfig' => [
- 'title' => '返回固定内容动作配置',
- 'description' => 'The configuration of the custom response.'."\n",
+ 'title' => 'Schema of Response',
+ 'description' => 'The information about the health check templates.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckTemplates' => [
+ 'title' => '',
+ 'description' => 'The health check templates.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the health check template.'."\n",
'type' => 'object',
'properties' => [
- 'Content' => [
- 'title' => '内容',
- 'description' => 'The content of the response. The content can be up to 1 KB in size, and can contain only ASCII characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'dssacav',
- ],
- 'ContentType' => [
- 'title' => '内容类型',
- 'description' => 'The content type.'."\n"
+ 'HealthCheckConnectPort' => ['title' => '', 'description' => 'The port that is used for health checks.'."\n"
+ ."\n"
+ .'Valid values: \\*\\* 0 to 65535\\*\\*.'."\n"
+ ."\n"
+ .'The default value is **0**, which specifies that the port of a backend server is used for health checks.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '80'],
+ 'HealthCheckHost' => ['title' => '', 'description' => 'The domain name that is used for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **$SERVER_IP** (default): the private IP address of a backend server. If an IP address is specified, or this parameter is not specified, the ALB 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 you set `HealthCheckProtocol` to **HTTP** or **HTTPS**.'."\n", 'type' => 'string', 'example' => '$SERVER_IP'],
+ 'HealthCheckCodes' => [
+ 'title' => '',
+ 'description' => 'The HTTP status codes that indicate healthy backend servers.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The HTTP status code that indicates healthy backend servers.'."\n"
."\n"
- .'Valid values: **text/plain**, **text/css**, **text/html**, **application/javascript**, and **application/json**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'text/plain',
- ],
- 'HttpCode' => [
- 'title' => 'HTTP响应码',
- 'description' => 'The HTTP status code in responses. Valid values: **2xx**, **4xx**, **5xx**. The value must be a numeric string. **x** must be a digit.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP_200',
+ .'* If **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, you can set **HealthCheckCodes** to **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, or **http\\_5xx**. Separate multiple status codes with commas (,).'."\n"
+ .'* If **HealthCheckProtocol** is set to **gRPC**, the valid values of **HealthCheckCodes** are from **0 to 99**. The default value is **0**. Value ranges are supported. You can enter at most 20 value ranges. Separate multiple value ranges with commas (,).'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n", 'type' => 'string', 'example' => 'http_2xx', 'title' => ''],
+ 'example' => '',
],
- ],
- 'required' => false,
- ],
- 'ForwardGroupConfig' => [
- 'title' => '转发组动作配置',
- 'description' => 'The configuration of the server groups.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupTuples' => [
- 'title' => '转发到的目的服务器组列表',
- 'description' => 'The server groups to which requests are forwarded.'."\n",
+ 'HealthCheckHttpVersion' => ['title' => '', 'description' => 'The HTTP version for health checks.'."\n"
+ ."\n"
+ .'Valid values: **HTTP 1.0** and **HTTP 1.1**.'."\n"
+ ."\n"
+ .'Default value: **HTTP 1.1**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set `HealthCheckProtocol` to **HTTP** or **HTTPS**.'."\n", 'type' => 'string', 'example' => 'HTTP 1.0'],
+ 'HealthCheckInterval' => ['title' => '', 'description' => 'The interval at which health checks are performed. Unit: seconds. Valid values: **1 to 50**. Default value: **2**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '5'],
+ 'HealthCheckMethod' => ['title' => '', 'description' => 'The HTTP method that is used for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **HEAD** (default): By default, HTTP and HTTPS health checks use the HEAD method.'."\n"
+ .'* **GET**: If the length of a response exceeds 8 KB, the response is truncated. However, the health check result is not affected.'."\n"
+ .'* **POST**: gRPC health checks use the POST method by default.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n", 'type' => 'string', 'example' => 'HEAD'],
+ 'HealthCheckPath' => ['title' => 'uri', 'description' => 'The URL path that you want to use for health checks.'."\n"
+ ."\n"
+ .'The URL must be 1 to 80 characters in length, and can contain letters, digits, the following special characters: - / . % ? # &, and the following extended characters: `_ ; ~ ! ( ) * [ ] @ $ ^ : \' , +`. The URL must start with a forward slash (/).'."\n", 'type' => 'string', 'example' => '/test/index.html'],
+ 'HealthCheckProtocol' => ['title' => '', 'description' => 'The protocol that is used for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **HTTP** (default): The ALB instance sends HEAD or GET requests, which simulate browser requests, to check whether the backend server is healthy.'."\n"
+ .'* **HTTPS**: HTTPS health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers. HTTPS provides higher security because HTTPS supports data encryption.'."\n"
+ .'* **TCP**: TCP health checks send TCP SYN packets to a backend server to check whether the port of the backend server is reachable.'."\n"
+ .'* **gRPC**: gRPC health checks send POST or GET requests to a backend server to check whether the backend server is healthy.'."\n", 'type' => 'string', 'example' => 'HTTP'],
+ 'HealthCheckTemplateId' => ['title' => '', 'description' => 'The ID of the health check template.'."\n", 'type' => 'string', 'example' => 'hct-bp1qjwo61pqz3ahltv****'],
+ 'HealthCheckTemplateName' => ['title' => '', 'description' => 'The name of the health check template.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 character characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n", 'type' => 'string', 'example' => 'HealthCheckTemplate1'],
+ 'HealthCheckTimeout' => ['title' => '', 'description' => 'The timeout period of a health check response. If a backend Elastic Compute Service (ECS) instance does not respond within the specified timeout period, the ECS instance fails to pass the health check.'."\n"
+ ."\n"
+ .'Valid values: **1 to 300**. Unit: seconds.'."\n"
+ ."\n"
+ .'Default value: **5**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3'],
+ 'HealthyThreshold' => ['title' => '', '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 changes from **fail** to **success**.'."\n"
+ ."\n"
+ .'Valid values: **2 to 10**.'."\n"
+ ."\n"
+ .'Default value: **3**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '4'],
+ 'UnhealthyThreshold' => ['title' => '', '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 changes from **success** to **fail**.'."\n"
+ ."\n"
+ .'Valid values: **2 to 10**.'."\n"
+ ."\n"
+ .'Default value: **3**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '4'],
+ 'Tags' => [
+ 'description' => 'The tags.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The server group to which requests are forwarded.'."\n",
+ 'description' => 'The tags.',
'type' => 'object',
'properties' => [
- 'ServerGroupId' => [
- 'title' => '服务器组标识',
- 'description' => 'The ID of the server group to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'sg--atstuj3rtoptyui****',
- ],
- 'Weight' => [
- 'title' => '权重',
- 'description' => 'The weight of the server group. A larger value specifies a higher weight. A server group with a higher weight receives more requests. Valid values: **0** to **100**.'."\n"
- ."\n"
- .'* If the number of destination server groups is 1, the default weight of the server group is **100**, unless you specify a weight.'."\n"
- .'* If the number of destination server groups is larger than 1, you must specify a weight.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'minimum' => '0',
- 'example' => '30',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- 'ServerGroupStickySession' => [
- 'title' => '服务器组之间会话保持',
- 'description' => 'The configuration of session persistence for server groups.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Enabled' => [
- 'title' => '是否开启会话保持',
- 'description' => 'Specifies whether to enable session persistence. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'Timeout' => [
- 'title' => '超时时间',
- 'description' => 'The timeout period for sessions. Unit: seconds. Valid values: 1 to 86400.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '2',
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag key cannot start with `acs:` or `aliyun`.'."\n", 'type' => 'string', 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. 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' => 'product', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'InsertHeaderConfig' => [
- 'title' => '插入头部动作配置',
- 'description' => 'The configuration of the header to be inserted.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'CoverEnabled' => [
- 'title' => '是否覆盖请求中的值',
- 'description' => 'Specifies whether to overwrite the request header values. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'Key' => [
- 'title' => 'HTTP标头',
- 'description' => 'The key of the header. The key must be 1 to 40 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The header keys specified by **InsertHeaderConfig** must be unique.'."\n"
- ."\n"
- .'> You cannot specify the following header keys: `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `x-forwarded-host`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, and `authority`. The header keys are case-insensitive.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'key',
- ],
- 'Value' => [
- 'title' => 'HTTP标头内容',
- 'description' => 'The value of the header.'."\n"
- ."\n"
- .'* If **ValueType** is set to **SystemDefined**, you can set the Value parameter to one of the following values:'."\n"
- ."\n"
- .' * **ClientSrcPort**: the client port.'."\n"
- .' * **ClientSrcIp**: the IP address of the client.'."\n"
- .' * **Protocol**: the request protocol (HTTP or HTTPS).'."\n"
- .' * **SLBId**: the ID of the ALB instance.'."\n"
- .' * **SLBPort**: the listener port of the ALB instance.'."\n"
- ."\n"
- .'* If **ValueType** is set to **UserDefined**, a custom header value is supported. The header value must be 1 to 128 characters in length, and can contain printable characters whose ASCII values are `greater than or equal to 32 and lower than 127`. You can use asterisks (\\*) and question marks (?) as wildcard characters. Quotation marks (`"`) are not supported. The header value cannot start or end with a space character, or end with a backslash (`\\`).'."\n"
- ."\n"
- .'* If **ValueType** is set to **ReferenceHeader**, you can reference a value from request headers. The value must be 1 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'UserDefined',
- ],
- 'ValueType' => [
- 'title' => '取值类型',
- 'description' => 'The type of the header. Valid values:'."\n"
- ."\n"
- .'* **UserDefined**: a custom header.'."\n"
- .'* **ReferenceHeader**: a header that references one of the request headers.'."\n"
- .'* **SystemDefined**: a system-defined header value.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'UserDefined',
- ],
- ],
- 'required' => false,
- ],
- 'Order' => [
- 'title' => '优先级',
- 'description' => 'The priority of the action. Valid values: **1 to 50000**. A smaller value specifies a higher priority. The actions of a forwarding rule are applied in descending order of priority. This parameter cannot be left empty. The priority of each action within a forwarding rule must be unique. You can specify up to 20 forwarding rule priorities.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
- ],
- 'RedirectConfig' => [
- 'title' => '重定向动作配置',
- 'description' => 'The configuration of the redirect action. You can specify up to 20 redirect actions.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Host' => [
- 'title' => '要跳转的主机地址',
- 'description' => 'The hostname to which requests are redirected. Valid values:'."\n"
- ."\n"
- .'* **${host}** (default): If ${host} is returned, no other character is appended.'."\n"
- ."\n"
- .'* If you want to specify a custom value, make sure that the following requirements are met:'."\n"
- ."\n"
- .' * The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), and question marks (?).'."\n"
- .' * The hostname contains at least one period (.) but does not start or end with a period (.).'."\n"
- .' * The rightmost domain label can contain only letters and wildcard characters. It cannot contain digits or hyphens (-).'."\n"
- .' * The domain labels do not start or end with a hyphen (-).'."\n"
- .' * You can use asterisks (\\*) and question marks (?) anywhere in a domain label as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'www.example.com',
- ],
- 'HttpCode' => [
- 'title' => '跳转方式',
- 'description' => 'The forwarding method. Valid values: **301**, **302**, **303**, **307**, and **308**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '301',
- ],
- 'Path' => [
- 'title' => '要跳转的路径',
- 'description' => 'The URL to which requests are redirected. Valid values:'."\n"
- ."\n"
- .'* Default value: **${path}**. \\*\\*${host}**, **${protocol}**, and **${port}\\*\\* are also supported. Each variable can be specified only once. The preceding variables can be used at the same time or combined with a custom value.'."\n"
- ."\n"
- .'* If you want to specify a custom value, make sure that the following requirements are met:'."\n"
- ."\n"
- .' * The header value must be 1 to 128 characters in length.'."\n"
- .' * It must start with a forward slash (/) and can contain letters, digits, and the following special characters: `$ - _ . + / & ~ @ :`. It does not contain the following special characters: `% # ; ! ( ) [ ] ^ , \\ "`. You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test',
- ],
- 'Port' => [
- 'title' => '要跳转的端口',
- 'description' => 'The port to which requests are redirected. Valid values:'."\n"
- ."\n"
- .'* **${port}** (default): If you set the value to ${port}, you cannot append other characters.'."\n"
- .'* Other valid values: **1 to 63335**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '10',
- ],
- 'Protocol' => [
- 'title' => '要跳转的协议',
- 'description' => 'The redirect protocol. Valid values:'."\n"
- ."\n"
- .'* **${protocol}** (default): If you set the value to ${protocol}, you cannot append other characters.'."\n"
- .'* **HTTP** or **HTTPS**.'."\n"
- ."\n"
- .'> HTTPS listeners support only HTTPS redirects.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP',
- ],
- 'Query' => [
- 'title' => '要跳转的查询字符串',
- 'description' => 'The query string of the URL to which requests are forwarded. Valid values:'."\n"
- ."\n"
- .'* Default value: **${query}**. \\*\\*${host}**, **${protocol}**, and **${port}\\*\\* are also supported. Each variable can be specified only once. The preceding variables can be used at the same time or combined with a custom value.'."\n"
- ."\n"
- .'* If you want to specify a custom value, make sure that the following requirements are met:'."\n"
- ."\n"
- .' * The header value must be 1 to 128 characters in length.'."\n"
- .' * It can contain printable characters, excluding space characters, the special characters `# [ ] { } \\ | < > "`, and uppercase letters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'quert',
+ 'title' => '',
+ 'example' => '',
],
+ 'ResourceGroupId' => ['description' => 'The resource group ID.'."\n", 'type' => 'string', 'example' => 'rg-atstuj3rtop****', 'title' => ''],
],
- 'required' => false,
- ],
- 'RewriteConfig' => [
- 'title' => '内部重定向动作配置',
- 'description' => 'The configuration of the rewrite action.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Host' => [
- 'title' => '主机名',
- 'description' => 'The hostname to which requests are rewritten. Valid values:'."\n"
- ."\n"
- .'* **${host}** (default): If you set the value to ${host}, you cannot append other characters.'."\n"
- ."\n"
- .'* If you want to specify a custom value, make sure that the following requirements are met:'."\n"
- ."\n"
- .' * The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), and question marks (?).'."\n"
- .' * The hostname contains at least one period (.) but does not start or end with a period (.).'."\n"
- .' * The rightmost domain label can contain only letters and wildcard characters. It cannot contain digits or hyphens (-).'."\n"
- .' * The domain labels do not start or end with a hyphen (-). You can use asterisks (\\*) and question marks (?) anywhere in a domain label as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'www.example.com',
- ],
- 'Path' => [
- 'title' => '路径',
- 'description' => 'The URL to which requests are redirected. Valid values:'."\n"
- ."\n"
- .'* Default value: **${path}**. \\*\\*${host}**, **${protocol}**, and **${port}\\*\\* are also supported. Each variable can be specified only once. The preceding variables can be used at the same time or combined with a custom value.'."\n"
- ."\n"
- .'* If you want to specify a custom value, make sure that the following requirements are met:'."\n"
- ."\n"
- .' * The header value must be 1 to 128 characters in length.'."\n"
- .' * It must start with a forward slash (/) and can contain letters, digits, and the following special characters: `$ - _ . + / & ~ @ :`. It does not contain the following special characters: `% # ; ! ( ) [ ] ^ , \\ "`. You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/tsdf',
- ],
- 'Query' => [
- 'title' => '查询',
- 'description' => 'The query string to which requests are redirected. Valid values:'."\n"
- ."\n"
- .'* Default value: **${query}**. \\*\\*${host}**, **${protocol}**, and **${port}\\*\\* are also supported. Each variable can be specified only once. The preceding variables can be used at the same time or combined with a custom value.'."\n"
- ."\n"
- .'* If you want to specify a custom value, make sure that the following requirements are met:'."\n"
- ."\n"
- .' * The header value must be 1 to 128 characters in length.'."\n"
- .' * It can contain printable characters, excluding space characters, the special characters `# [ ] { } \\ | < > "`, and uppercase letters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'quedsa',
- ],
- ],
- 'required' => false,
- ],
- 'Type' => [
- 'title' => '转发规则动作类型',
- 'description' => 'The type of the task. You can specify up to 11 types of action. Valid values:'."\n"
- ."\n"
- .'* **ForwardGroup**: forwards a request to multiple vServer groups.'."\n"
- .'* **Redirect**: redirects requests.'."\n"
- .'* **FixedResponse**: returns a fixed response.'."\n"
- .'* **Rewrite**: rewrites requests.'."\n"
- .'* **InsertHeader**: inserts a header.'."\n"
- .'* **RemoveHeader**: deletes the header of a request.'."\n"
- .'* **TrafficLimit**: throttles traffic.'."\n"
- .'* **trafficMirror**: mirrors network traffic.'."\n"
- .'* **Cors**: forwards requests based on CORS.'."\n"
- ."\n"
- .'The preceding actions can be classified into two types:'."\n"
- ."\n"
- .'* **FinalType**: Each forwarding rule can contain only one FinalType action, which is performed at the end. You can specify only one of **ForwardGroup**, **Redirect**, and **FixedResponse**.'."\n"
- .'* **ExtType**: Each forwarding rule can contain one or more **ExtType** actions, which are performed before the **FinalType** action. If you want to specify an ExtType action, you must also specify a **FinalType** action. You can specify multiple **InsertHeader** actions or one **Rewrite** action.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'ForwardGroup',
- ],
- 'TrafficLimitConfig' => [
- 'title' => '流量限速',
- 'description' => 'The configuration of the action to throttle traffic.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'QPS' => [
- 'description' => 'The number of queries per second (QPS). Value range: **1 to 1,000,000**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '100',
- ],
- 'PerIpQps' => [
- 'description' => 'The number of requests per IP address. Value range: **1 to 1,000,000**.'."\n"
- ."\n"
- .'> If both the **QPS** and **PerIpQps** parameters are specified, make sure that the value of the **QPS** parameter is smaller than the value of the PerIpQps parameter.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '80',
- ],
- ],
- 'required' => false,
- ],
- 'TrafficMirrorConfig' => [
- 'title' => '流量镜像',
- 'description' => 'The configuration of the traffic mirroring action.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'TargetType' => [
- 'title' => '镜像目标类型',
- 'description' => 'The type of destination to which network traffic is mirrored. Valid values:'."\n"
- ."\n"
- .'* **ForwardGroupMirror**: a server group'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'ForwardGroupMirror',
- ],
- 'MirrorGroupConfig' => [
- 'title' => '镜像至服务器组',
- 'description' => 'The server group to which network traffic is mirrored.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupTuples' => [
- 'description' => 'The server group to which traffic is mirrored.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The server group to which traffic is mirrored.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupId' => [
- 'description' => 'The server group ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'srg-00mkgijak0w4qgz9****',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'RemoveHeaderConfig' => [
- 'title' => '去除HTTP标头',
- 'description' => 'The HTTP header to be removed.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头键',
- 'description' => 'The key of the header to be removed. The header key must be 1 to 40 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The header keys specified in RemoveHeader must be unique.'."\n"
- ."\n"
- .'* If Direction is set to Request, the following request headers cannot be removed: `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `x-forwarded-host`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, and `authority`. Request headers are not case-sensitive.'."\n"
- .'* If Direction is set to Response, the following header keys are not supported: `connection`, `upgrade`, `content-length`, and `transfer-encoding`. The header keys are not case-sensitive.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- ],
- 'required' => false,
- ],
- 'CorsConfig' => [
- 'title' => '跨域',
- 'description' => 'The CORS configuration.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AllowOrigin' => [
- 'title' => '允许的访问来源',
- 'description' => 'The trusted origins. You can specify one or more values, or only an asterisk (`*`).'."\n"
- ."\n"
- .'* The value must start with `http://` or `https://`, and be followed by a valid domain name, including top-level wildcard domain names. Example: `http://*.test.abc.example.com`.'."\n"
- .'* You can specify ports for a single value. Valid values: **1** to **65535**.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The trusted origin of CORS requests.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'http://test.com',
- ],
- 'required' => false,
- ],
- 'AllowMethods' => [
- 'title' => '选择跨域访问时允许的HTTP方法',
- 'description' => 'The trusted HTTP methods of CORS requests.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The trusted HTTP method of CORS requests. Valid values:'."\n"
- ."\n"
- .'* **GET**'."\n"
- .'* **POST**'."\n"
- .'* **PUT**'."\n"
- .'* **DELETE**'."\n"
- .'* **HEAD**'."\n"
- .'* **OPTIONS**'."\n"
- .'* **PATCH**'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'GET',
- ],
- 'required' => false,
- ],
- 'AllowHeaders' => [
- 'title' => '允许跨域的Header列表',
- 'description' => 'The trusted headers of CORS requests.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The headers that can be exposed. You can specify the wildcard character (`*`), or one or more values. Separate multiple values with commas (,). Each value can be up to 32 characters in length, and can contain only letters and digits. It cannot start or end with an underscore (\\_) or a hyphen (-).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_123',
- ],
- 'required' => false,
- ],
- 'ExposeHeaders' => [
- 'title' => '允许暴露的Header列表',
- 'description' => 'The headers that can be exposed.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The header that can be exposed. You can specify the wildcard character (`*`), or one or more values. Separate multiple values with commas (,). Each value can be up to 32 characters in length, and can contain only letters and digits. It cannot start or end with an underscore (\\_) or a hyphen (-).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_123',
- ],
- 'required' => false,
- ],
- 'AllowCredentials' => [
- 'title' => '是否允许携带凭证信息',
- 'description' => 'Specifies whether credentials can be carried in CORS requests. Valid values:'."\n"
- ."\n"
- .'* **on**'."\n"
- .'* **off**'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'on',
- ],
- 'MaxAge' => [
- 'title' => '预检请求在浏览器的最大缓存时间',
- 'description' => 'The maximum cache time of dry runs in the browser. Unit: seconds.'."\n"
- ."\n"
- .'Valid values: **-1** to **172800**.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'required' => false,
- 'example' => '1000',
- ],
- ],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
],
- 'required' => false,
+ 'MaxResults' => ['title' => '', 'description' => 'The number of entries returned per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '50'],
+ 'NextToken' => ['title' => '', 'description' => 'The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* If **NextToken** is empty, no next page exists.'."\n"
+ .'* If a value of **NextToken** was returned in the previous query, specify the value to obtain the next set of results.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'],
+ 'TotalCount' => ['title' => '', 'description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1000'],
+ ],
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ ['errorCode' => 'Forbidden.HealthCheckTemplate', 'errorMessage' => 'Authentication has failed for HealthCheckTemplate.', 'description' => ''],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"HealthCheckTemplates\\": [\\n {\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckHost\\": \\"$SERVER_IP\\",\\n \\"HealthCheckCodes\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckHttpVersion\\": \\"HTTP 1.0\\",\\n \\"HealthCheckInterval\\": 5,\\n \\"HealthCheckMethod\\": \\"HEAD\\",\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"HTTP\\",\\n \\"HealthCheckTemplateId\\": \\"hct-bp1qjwo61pqz3ahltv****\\",\\n \\"HealthCheckTemplateName\\": \\"HealthCheckTemplate1\\",\\n \\"HealthCheckTimeout\\": 3,\\n \\"HealthyThreshold\\": 4,\\n \\"UnhealthyThreshold\\": 4,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\"\\n }\\n ],\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"<ListHealthCheckTemplatesResponse>\\n <HealthCheckTemplates>\\n <HealthCheckConnectPort>80</HealthCheckConnectPort>\\n <HealthCheckHost>$_ip</HealthCheckHost>\\n <HealthCheckCodes>http_2xx,http_3xx</HealthCheckCodes>\\n <HealthCheckHttpVersion>HTTP 1.0</HealthCheckHttpVersion>\\n <HealthCheckInterval>5</HealthCheckInterval>\\n <HealthCheckMethod>HEAD</HealthCheckMethod>\\n <HealthCheckPath>/test/index.html</HealthCheckPath>\\n <HealthCheckProtocol>HTTP</HealthCheckProtocol>\\n <HealthCheckTemplateId>hct-bp1qjwo61pqz3ahltv****</HealthCheckTemplateId>\\n <HealthCheckTemplateName>HealthCheckTemplate1</HealthCheckTemplateName>\\n <HealthCheckTimeout>3</HealthCheckTimeout>\\n <HealthyThreshold>4</HealthyThreshold>\\n <UnhealthyThreshold>4</UnhealthyThreshold>\\n </HealthCheckTemplates>\\n <MaxResults>50</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <TotalCount>1000</TotalCount>\\n</ListHealthCheckTemplatesResponse>","errorExample":""}]',
+ 'title' => 'ListHealthCheckTemplates',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'alb:ListHealthCheckTemplates',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/*'],
],
- 'required' => false,
- 'maxItems' => 100,
- 'minItems' => 1,
],
],
+ ],
+ ],
+ 'ListListenerCertificates' => [
+ 'summary' => 'Queries the certificates that are associated with a listener, including additional certificates and the default certificate.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'RuleName',
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'get'],
+ 'parameters' => [
+ [
+ 'name' => 'NextToken',
'in' => 'query',
- 'schema' => [
- 'title' => '转发规则名称',
- 'description' => 'The name of the forwarding rule. 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' => 'rule-instance-test',
- ],
+ 'schema' => ['title' => '', 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* You do not need to specify this parameter for the first request.'."\n"
+ .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
],
[
- 'name' => 'Priority',
+ 'name' => 'MaxResults',
'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The number of entries to return in each call. Valid values: **1 to 100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '50', 'default' => '20'],
+ ],
+ [
+ 'name' => 'ListenerId',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The listener ID. You must specify the ID of an HTTPS listener or a QUIC listener.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-5qnirjhpt******'],
+ ],
+ [
+ 'name' => 'CertificateType',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The type of the certificate. Valid values: **Ca** and **Server**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Server'],
+ ],
+ [
+ 'name' => 'CertificateIds',
+ 'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '转发规则优先级',
- 'description' => 'The priority of the forwarding rule. Valid values: **1 to 10000**. A lower value specifies a higher priority.'."\n"
- ."\n"
- .'> The priorities of the forwarding rules created for the same listener must be unique.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
+ 'title' => '',
+ 'description' => 'The certificates.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The certificate ID.'."\n", 'type' => 'string', 'required' => false, 'example' => '1416****-cn-hangzhou', 'title' => ''],
'required' => false,
- 'example' => '10',
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ 'example' => '',
],
],
],
@@ -13940,1011 +8442,851 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'Updates a forwarding rule.'."\n",
+ 'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F5378-41F6-4AE4-92F8-7FF34B540710',
+ 'MaxResults' => ['title' => '', 'description' => 'The maximum number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '50'],
+ 'NextToken' => ['title' => '', 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* If **NextToken** is empty, no next page exists.'."\n"
+ .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'],
+ 'TotalCount' => ['title' => '', 'description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1000'],
+ 'Certificates' => [
+ 'title' => '',
+ 'description' => 'The certificates.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The certificate.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'CertificateId' => ['title' => '', 'description' => 'The certificate ID. Only server certificates are supported.'."\n", 'type' => 'string', 'example' => '123157******'],
+ 'IsDefault' => ['title' => '', 'description' => 'Indicates whether the certificate is the default certificate of the listener. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'Status' => ['title' => '', 'description' => 'Indicates whether the certificate is associated with the listener. Valid values:'."\n"
+ ."\n"
+ .'* **Associating**'."\n"
+ .'* **Associated**'."\n"
+ .'* **Diassociating**'."\n", 'type' => 'string', 'example' => 'Associating'],
+ 'CertificateType' => ['title' => '', 'description' => 'The type of the certificate.'."\n", 'type' => 'string', 'example' => 'Server'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.Rule',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.GRPCServerGroup',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'Conflict.Priority',
- 'errorMessage' => 'There is already %s having the same configuration with %s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.RuleWildcardsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.RuleActionsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'Mismatch.Protocol',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'Mismatch.VpcId',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.RewriteMissingForwardGroup',
- 'errorMessage' => 'The operation is not allowed because of RewriteMissingForwardGroup.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.Listener',
- 'errorMessage' => 'The specified listener is being configured, please try again later.',
- ],
- [
- 'errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction',
- 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.',
- ],
+ ['errorCode' => 'OperationDenied.HttpListenerNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
],
- 403 => [
- [
- 'errorCode' => 'Forbidden.ServerGroup',
- 'errorMessage' => 'Authentication has failed for ServerGroup.',
- ],
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
- [
- [
- 'errorCode' => 'ResourceNotFound.Rule',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000,\\n \\"Certificates\\": [\\n {\\n \\"CertificateId\\": \\"123157******\\",\\n \\"IsDefault\\": true,\\n \\"Status\\": \\"Associating\\",\\n \\"CertificateType\\": \\"Server\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListListenerCertificatesResponse>\\n <MaxResults>50</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <TotalCount>1000</TotalCount>\\n <Certificates>\\n <CertificateId>12315790343_166f8204689_1714763408_70998****</CertificateId>\\n <IsDefault>true</IsDefault>\\n <Status>Associating</Status>\\n <CertificateType>Server</CertificateType>\\n </Certificates>\\n</ListListenerCertificatesResponse>","errorExample":""}]',
+ 'title' => 'ListListenerCertificates',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListListenerCertificates',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F5378-41F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateRuleAttributeResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F5378-41F6-4AE4-92F8-7FF34B540710</RequestId>\\n</UpdateRuleAttributeResponse>","errorExample":""}]',
- 'title' => 'UpdateRuleAttribute',
- 'description' => '* **UpdateRuleAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListRules](~~214379~~) operation to query the status of a forwarding rule:'."\n"
- ."\n"
- .' * If a forwarding rule is in the **Configuring** state, the forwarding rule is being updated.'."\n"
- .' * If a forwarding rule is in the **Available** state, the forwarding rule is updated.'."\n"
- ."\n"
- .'* You can set **RuleConditions** and **RuleActions** to add conditions and actions to a forwarding rule. Take note of the following limits on the number of conditions and the number of actions in each forwarding rule:'."\n"
- ."\n"
- .' * Number of conditions: You can specify at most 5 for a basic Application Load Balancer (ALB) instance, at most 10 for a standard ALB instance, and at most 10 for a WAF-enabled ALB instance.'."\n"
- .' * Number of actions: You can specify at most 3 for a basic ALB instance, at most 5 for a standard ALB instance, and at most 5 for a WAF-enabled ALB instance.',
],
- 'UpdateRulesAttribute' => [
- 'summary' => 'Modifies the attributes of forwarding rules.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ListListeners' => [
+ 'summary' => 'Queries the listeners in a region.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeCode' => '35808',
- 'abilityTreeNodes' => [
- 'FEATUREslbBIWWMH',
- 'FEATUREslbTXOYED',
- 'FEATUREslbQCCQ6L',
- 'FEATUREslb4T90LL',
- 'FEATUREslbIT4IYN',
- 'FEATUREslbA51OGD',
- 'FEATUREslbUBPZWI',
- 'FEATUREslbGVK35E',
- 'FEATUREslbYG3GCF',
- 'FEATUREslbRBR9GZ',
- 'FEATUREslbMWZQWL',
- 'FEATUREslbJCYSIV',
- 'FEATUREslbY93SFN',
- 'FEATUREslbVUMBEO',
- 'FEATUREslbZ4XFTS',
- 'FEATUREslb2Q6O49',
- ],
- 'autoTest' => true,
- 'tenantRelevance' => 'tenant',
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '190',
+ 'abilityTreeNodes' => ['FEATUREslbM7ALO6', 'FEATUREslbK3ZR0L', 'FEATUREslbN5IE4S'],
],
'parameters' => [
[
- 'name' => 'ClientToken',
+ 'name' => 'NextToken',
'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* You do not need to specify this parameter for the first request.'."\n"
+ .'* If a value is returned for NextToken, you must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I4FmYAXGKPd****'],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The maximum number of entries to return. This parameter is optional. 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, 'example' => '50'],
+ ],
+ [
+ 'name' => 'ListenerIds',
+ 'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The listener IDs. You can specify at most 20 listener IDs.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The listener ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'lsn-o4u54y73wq7b******', 'title' => ''],
'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-426655440000',
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'Rules',
- 'in' => 'formData',
+ 'name' => 'LoadBalancerIds',
+ 'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '转发规则列表',
- 'description' => 'The forwarding rules.'."\n",
+ 'title' => '',
+ 'description' => 'The ALB instance ID. You can specify at most 20 instance IDs.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The ALB instance ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'alb-bd6oylbckp6k9x****', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 21,
+ 'minItems' => 1,
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'ListenerProtocol',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The listener protocol. Valid values:'."\n"
+ ."\n"
+ .'* **HTTP**'."\n"
+ .'* **HTTPS**'."\n"
+ .'* **QUIC**'."\n", 'type' => 'string', 'required' => false, 'example' => 'HTTP'],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The tags.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The forwarding rule.'."\n",
+ 'description' => 'The tags.'."\n",
'type' => 'object',
'properties' => [
- 'Priority' => [
- 'title' => '转发规则优先级',
- 'description' => 'The priority of the forwarding rule.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
- 'RuleName' => [
- 'title' => '转发规则名称',
- 'description' => 'The name of the forwarding rule.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rule-instance-test',
- ],
- 'RuleActions' => [
- 'title' => '转发规则动作',
- 'description' => 'The forwarding rules.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The action of the forwarding rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'FixedResponseConfig' => [
- 'title' => '返回固定内容动作配置',
- 'description' => 'The configuration of the action to return a custom response.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Content' => [
- 'title' => '内容',
- 'description' => 'The content of the response.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'dssacav',
- ],
- 'ContentType' => [
- 'title' => '内容类型',
- 'description' => 'The content type of the response.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'text/plain',
- ],
- 'HttpCode' => [
- 'title' => 'HTTP响应码',
- 'description' => 'The HTTP status code in the response.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '200',
- ],
- ],
- 'required' => false,
- ],
- 'ForwardGroupConfig' => [
- 'title' => '转发组动作配置',
- 'description' => 'The configuration of the action to forward requests to server groups.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupTuples' => [
- 'title' => '转发到的目的服务器组列表',
- 'description' => 'The server groups to which requests are forwarded.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The server group to which requests are forwarded.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServerGroupId' => [
- 'title' => '服务器组标识',
- 'description' => 'The ID of the server group.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'sg-atstuj3rtoptyui****',
- ],
- 'Weight' => [
- 'title' => '权重',
- 'description' => 'The weight of the server group.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'minimum' => '0',
- 'example' => '30',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- 'ServerGroupStickySession' => [
- 'title' => '服务器组之间会话保持',
- 'description' => 'The configuration of session persistence for server groups.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Enabled' => [
- 'title' => '是否开启会话保持',
- 'description' => 'Specifies whether to enable session persistence.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'Timeout' => [
- 'title' => '超时时间',
- 'description' => 'The timeout period for sessions.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '2',
- ],
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'InsertHeaderConfig' => [
- 'title' => '插入头部动作配置',
- 'description' => 'The configuration of the action to insert a header.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'CoverEnabled' => [
- 'title' => '是否覆盖请求中的值',
- 'description' => 'Specifies whether to overwrite the header in the request.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'Key' => [
- 'title' => 'HTTP标头',
- 'description' => 'The key of the HTTP header.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Value' => [
- 'title' => 'HTTP标头内容',
- 'description' => 'The value of the HTTP header.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'UserDefined',
- ],
- 'ValueType' => [
- 'title' => '取值类型',
- 'description' => 'The type of the header value.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'UserDefined',
- ],
- ],
- 'required' => false,
- ],
- 'Order' => [
- 'title' => '优先级',
- 'description' => 'The priority of the action.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'example' => '1',
- ],
- 'RedirectConfig' => [
- 'title' => '重定向动作配置',
- 'description' => 'The configuration of the redirect action.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Host' => [
- 'title' => '要跳转的主机地址',
- 'description' => 'The hostname to which requests are redirected.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'www.example.com',
- ],
- 'HttpCode' => [
- 'title' => '跳转方式',
- 'description' => 'The HTTP status code that indicates the redirect type.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '301',
- ],
- 'Path' => [
- 'title' => '要跳转的路径',
- 'description' => 'The path of the destination to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test',
- ],
- 'Port' => [
- 'title' => '要跳转的端口',
- 'description' => 'The port to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '10',
- ],
- 'Protocol' => [
- 'title' => '要跳转的协议',
- 'description' => 'The protocol of the destination to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP',
- ],
- 'Query' => [
- 'title' => '要跳转的查询字符串',
- 'description' => 'The query string to which requests are redirected.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'quert',
- ],
- ],
- 'required' => false,
- ],
- 'RewriteConfig' => [
- 'title' => '内部重定向动作配置',
- 'description' => 'The configuration of the rewrite action.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Host' => [
- 'title' => '主机名',
- 'description' => 'The hostname of the destination to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'www.example.com',
- ],
- 'Path' => [
- 'title' => '路径',
- 'description' => 'The path to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/tsdf',
- ],
- 'Query' => [
- 'title' => '查询',
- 'description' => 'The query string of the URL to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'quedsa',
- ],
- ],
- 'required' => false,
- ],
- 'Type' => [
- 'title' => '转发规则动作类型',
- 'description' => 'The type of action.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Host',
- ],
- 'TrafficLimitConfig' => [
- 'title' => '流量限速',
- 'description' => 'The configuration of traffic throttling.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'QPS' => [
- 'description' => 'The number of queries per second (QPS).'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '2',
- ],
- 'PerIpQps' => [
- 'description' => 'The number of requests per IP address.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '80',
- ],
- ],
- 'required' => false,
- ],
- 'TrafficMirrorConfig' => [
- 'title' => '流量镜像',
- 'description' => 'The configuration of traffic mirroring.'."\n",
+ 'Key' => ['description' => 'The tag key. 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' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. 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' => 'product', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The information about the listeners.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Listeners' => [
+ 'title' => '',
+ 'description' => 'The listeners.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The listener.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'DefaultActions' => [
+ 'title' => '',
+ 'description' => 'The default actions in the forwarding rules.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The action of the default forwarding rule.'."\n",
'type' => 'object',
'properties' => [
- 'TargetType' => [
- 'title' => '镜像目标类型',
- 'description' => 'The type of the target to which network traffic is mirrored.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'ForwardGroupMirror',
- ],
- 'MirrorGroupConfig' => [
- 'title' => '镜像至服务器组',
- 'description' => 'The configuration of the server group to which traffic is mirrored.'."\n",
+ 'ForwardGroupConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the forwarding rule action. This parameter takes effect only when the action is **ForwardGroup**.'."\n",
'type' => 'object',
'properties' => [
'ServerGroupTuples' => [
- 'description' => 'The server group to which traffic is mirrored.'."\n",
+ 'title' => '',
+ 'description' => 'The server groups to which requests are forwarded.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The server group to which traffic is mirrored.'."\n",
+ 'description' => 'The server group to which requests are forwarded.'."\n",
'type' => 'object',
'properties' => [
- 'ServerGroupId' => [
- 'description' => 'The server group ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'srg-00mkgijak0w4qgz9****',
- ],
+ 'ServerGroupId' => ['title' => '', 'description' => 'The ID of the server group to which requests are forwarded.'."\n", 'type' => 'string', 'example' => 'sgp-i5qt20******'],
],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
+ 'example' => '',
],
],
- 'required' => false,
+ 'example' => '',
],
+ 'Type' => ['title' => '', 'description' => 'The action. **ForwardGroup**: forwards requests to multiple server groups.'."\n", 'type' => 'string', 'example' => 'ForwardGroup'],
],
- 'required' => false,
- ],
- 'RemoveHeaderConfig' => [
- 'title' => '去除HTTP标头',
- 'description' => 'The configuration of the HTTP header to be removed.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头键',
- 'description' => 'The key of the header.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Port',
- ],
- ],
- 'required' => false,
- ],
- 'CorsConfig' => [
- 'title' => '跨域',
- 'description' => 'The cross-origin resource sharing (CORS) configuration.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AllowOrigin' => [
- 'title' => '允许的访问来源',
- 'description' => 'The trusted origins.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The trusted origin.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'http://example.com',
- ],
- 'required' => false,
- ],
- 'AllowMethods' => [
- 'title' => '选择跨域访问时允许的HTTP方法',
- 'description' => 'The trusted HTTP methods of CORS requests.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The trusted HTTP method of CORS requests. Valid values:'."\n"
- ."\n"
- .'* **GET**'."\n"
- .'* **POST**'."\n"
- .'* **PUT**'."\n"
- .'* **DELETE**'."\n"
- .'* **HEAD**'."\n"
- .'* **OPTIONS**'."\n"
- .'* **PATCH**'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'GET',
- ],
- 'required' => false,
- ],
- 'AllowHeaders' => [
- 'title' => '允许跨域的Header列表',
- 'description' => 'The trusted headers of CORS requests.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The trusted header of CORS requests.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_123',
- ],
- 'required' => false,
- ],
- 'ExposeHeaders' => [
- 'title' => '允许暴露的Header列表',
- 'description' => 'The headers that can be exposed.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The header that can be exposed.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test_123',
- ],
- 'required' => false,
- ],
- 'AllowCredentials' => [
- 'title' => '是否允许携带凭证信息',
- 'description' => 'Specifies whether to allow credentials to be carried in CORS requests.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'on',
- ],
- 'MaxAge' => [
- 'title' => '预检请求在浏览器的最大缓存时间',
- 'description' => 'The maximum cache time for dry runs in the browser.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'required' => false,
- 'example' => '1000',
- ],
- ],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
],
- 'required' => true,
- ],
- 'required' => false,
- ],
- 'RuleConditions' => [
- 'title' => '转发规则条件',
- 'description' => 'The match conditions of the forwarding rule.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The match condition of the forwarding rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'CookieConfig' => [
- 'title' => 'Cookie条件配置',
- 'description' => 'The configuration of the cookie.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => 'Cookie键值对列表',
- 'description' => 'The key-value pairs of cookies.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The key-value pair of cookies.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => 'Cookie条件键',
- 'description' => 'The cookie key.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Value' => [
- 'title' => 'Cookie条件值',
- 'description' => 'The cookie value.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'HeaderConfig' => [
- 'title' => 'HTTP标头条件配置',
- 'description' => 'The configuration of the HTTP header.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头键',
- 'description' => 'The key of the header.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Port',
- ],
- 'Values' => [
- 'title' => 'HTTP标头值列表',
- 'description' => 'The values of the HTTP header.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The value of the HTTP header.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5006',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'HostConfig' => [
- 'title' => '主机名条件配置',
- 'description' => 'The match conditions for hostnames.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '主机名列表',
- 'description' => 'The hostnames.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The hostname.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'www.example.com',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'MethodConfig' => [
- 'title' => 'HTTP请求方法条件配置',
- 'description' => 'The configuration of the HTTP request method.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => 'HTTP请求方法列表',
- 'description' => 'The HTTP request methods.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The HTTP request method.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'PUT',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'PathConfig' => [
- 'title' => '查询字符串条件配置',
- 'description' => 'The match conditions for query strings.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '路径条件列表',
- 'description' => 'The paths to which requests are forwarded.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The path to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'QueryStringConfig' => [
- 'title' => '查询字符串条件配置',
- 'description' => 'The match conditions for query strings.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '查询字符串条件键值对列表',
- 'description' => 'The key-value pairs of query strings.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The key-value pair of the query string.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => '查询字符串条件键',
- 'description' => 'The key of the query string.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Value' => [
- 'title' => '查询字符串条件值',
- 'description' => 'The value of the query string.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
- ],
- 'ResponseHeaderConfig' => [
- 'title' => '返回HTTP标头',
- 'description' => 'The HTTP response headers.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => '返回HTTP标头键',
- 'description' => 'The key of the response header.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'Values' => [
- 'title' => '返回HTTP标头值',
- 'description' => 'The values of the response header.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The value of the response header.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5006',
- ],
- 'required' => false,
+ 'GzipEnabled' => ['title' => '', 'description' => 'Indicates whether GZIP compression is enabled to compress specific types of files. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n", 'type' => 'boolean', 'example' => 'false'],
+ 'Http2Enabled' => ['title' => '', 'description' => 'Indicates whether HTTP/2 is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> Only HTTPS listeners support this parameter.'."\n", 'type' => 'boolean', 'example' => 'false'],
+ 'IdleTimeout' => ['title' => '', '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, ALB closes the connection. ALB establishes the connection again when a new connection request is received.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3'],
+ 'ListenerDescription' => ['title' => '', 'description' => 'The name of the listener.'."\n", 'type' => 'string', 'example' => 'HTTP_80'],
+ 'ListenerId' => ['title' => '', 'description' => 'The listener ID.'."\n", 'type' => 'string', 'example' => 'lsn-o4u34y73wq7b******'],
+ 'ListenerPort' => ['title' => '', 'description' => 'The frontend port that is used by the ALB instance. Valid values: **1 to 65535**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '80'],
+ 'ListenerProtocol' => ['title' => '', 'description' => 'The listener protocol of the instance. Valid values:'."\n"
+ ."\n"
+ .'* **HTTP**'."\n"
+ .'* **HTTPS**'."\n"
+ .'* **QUIC**'."\n", 'type' => 'string', 'example' => 'HTTP'],
+ 'ListenerStatus' => ['title' => '', 'description' => 'The status of the listener. Valid values:'."\n"
+ ."\n"
+ .'* **Provisioning**: The listener is being created.'."\n"
+ .'* **Running**: The listener is running.'."\n"
+ .'* **Configuring**: The listener is being configured.'."\n"
+ .'* **Stopped**: The listener is disabled.'."\n", 'type' => 'string', 'example' => 'Running'],
+ 'LoadBalancerId' => ['title' => '', 'description' => 'The ALB instance ID.'."\n", 'type' => 'string', 'example' => 'alb-bd6oylbckp6k9x****'],
+ 'LogConfig' => [
+ 'title' => '',
+ 'description' => 'The logging configurations.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'AccessLogRecordCustomizedHeadersEnabled' => ['title' => '', 'description' => 'Indicates whether custom headers are carried in the access log. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'AccessLogTracingConfig' => [
+ 'title' => '',
+ 'description' => 'The configurations of xtrace.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'TracingEnabled' => ['title' => '', 'description' => 'Indicates whether xtrace is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> This parameter can be set to **true** only when the access log feature of ALB is enabled by setting **AccessLogEnabled** to true.'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'TracingSample' => ['title' => '', 'description' => 'The sampling rate of xtrace. Valid values: **1 to 10000**.'."\n"
+ ."\n"
+ .'> This parameter takes effect when **TracingEnabled** is set to **true**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100'],
+ 'TracingType' => ['title' => '', 'description' => 'The type of xtrace. The value is set to **Zipkin**.'."\n"
+ ."\n"
+ .'> This parameter takes effect when **TracingEnabled** is set to **true**.'."\n", 'type' => 'string', 'example' => 'Zipkin'],
],
+ 'example' => '',
],
- 'required' => false,
],
- 'ResponseStatusCodeConfig' => [
- 'title' => '返回状态码条件',
- 'description' => 'The match conditions for response status codes.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Values' => [
- 'title' => '返回状态码条件',
- 'description' => 'The match conditions.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The match condition.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '301',
- ],
- 'required' => false,
- ],
- ],
- 'required' => false,
+ 'example' => '',
+ ],
+ 'QuicConfig' => [
+ 'title' => '',
+ 'description' => 'The configurations of the QUIC listener associated with the ALB instance.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'QuicListenerId' => ['title' => '', 'description' => 'The ID of the QUIC listener associated with the ALB instance. This parameter is required if the **QuicUpgradeEnabled** parameter is set to **true**. Only HTTPS listeners support this parameter.'."\n"
+ ."\n"
+ .'> The existing listener and QUIC listener must be to the same ALB instance, and the QUIC listener has not been associated with an ALB instance.'."\n", 'type' => 'string', 'example' => 'lsn-o4u54y73wq7b******'],
+ 'QuicUpgradeEnabled' => ['title' => '', 'description' => 'Indicates whether QUIC upgrade is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> Only HTTPS listeners support this parameter.'."\n", 'type' => 'boolean', 'example' => 'true'],
],
- 'Type' => [
- 'title' => '条件类型',
- 'description' => 'The condition type of the forwarding rule.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'ForwardGroup',
+ 'example' => '',
+ ],
+ 'RequestTimeout' => ['title' => '', 'description' => 'The timeout period of a request. Unit: seconds. Valid values: **1 to 180**.'."\n"
+ ."\n"
+ .'If no responses are received from the backend server within the specified timeout period, ALB returns an `HTTP 504` error code to the client.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '34'],
+ 'SecurityPolicyId' => ['title' => '', 'description' => 'The security policy.'."\n"
+ ."\n"
+ .'> Only HTTPS listeners support this parameter.'."\n", 'type' => 'string', 'example' => 'tls_cipher_policy_1_1'],
+ 'XForwardedForConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the `XForward` header.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'XForwardedForClientCertClientVerifyAlias' => ['title' => '', 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertClientVerifyEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name must be 1 to 40 characters in length, and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ ."\n"
+ .'> Only HTTPS listeners support this parameter.'."\n", 'type' => 'string', 'example' => 'test_client-verify-alias_123456'],
+ 'XForwardedForClientCertClientVerifyEnabled' => ['title' => '', 'description' => 'Indicates whether the `X-Forwarded-Clientcert-clientverify` header is used to obtain the verification result of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> Only HTTPS listeners support this parameter.'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'XForwardedForClientCertFingerprintAlias' => ['title' => '', 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertFingerprintEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name must be 1 to 40 characters in length, and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ ."\n"
+ .'> Only HTTPS listeners support this parameter.'."\n", 'type' => 'string', 'example' => 'test_finger-print-alias_123456'],
+ 'XForwardedForClientCertFingerprintEnabled' => ['title' => '', 'description' => 'Indicates whether the `X-Forwarded-Clientcert-fingerprint` header is used to retrieve the fingerprint of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> Only HTTPS listeners support this parameter.'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'XForwardedForClientCertIssuerDNAlias' => ['title' => '', 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertIssuerDNEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name must be 1 to 40 characters in length, and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ ."\n"
+ .'> Only HTTPS listeners support this parameter.'."\n", 'type' => 'string', 'example' => 'test_issue-dn-alias_123456'],
+ 'XForwardedForClientCertIssuerDNEnabled' => ['title' => '', 'description' => 'Indicates whether the `X-Forwarded-Clientcert-issuerdn` header is used to retrieve information about the authority that issues the client certificate. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> Only HTTPS listeners support this parameter.'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'XForwardedForClientCertSubjectDNAlias' => ['title' => '', 'description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertSubjectDNEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name must be 1 to 40 characters in length, and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ ."\n"
+ .'> Only HTTPS listeners support this parameter.'."\n", 'type' => 'string', 'example' => 'test_subject-dn-alias_123456'],
+ 'XForwardedForClientCertSubjectDNEnabled' => ['title' => '', 'description' => 'Indicates whether the `X-Forwarded-Clientcert-subjectdn` header is used to retrieve information about the owner of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> Only HTTPS listeners support this parameter.'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'XForwardedForClientSrcPortEnabled' => ['title' => '', 'description' => 'Indicates whether the `X-Forwarded-Client-Port` header is used to retrieve the client port. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> This parameter is returned only for HTTP and HTTPS listeners.'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'XForwardedForEnabled' => ['title' => '', 'description' => 'Specifies whether to use the `X-Forwarded-For` header to retrieve client IP addresses. Valid values:'."\n"
+ ."\n"
+ .'* **true** (default)'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> * If this parameter is set to **true**, the default value of the **XForwardedForProcessingMode** parameter is **append**. You can change it to **remove**.'."\n"
+ .'> * If this parameter is set to **false**, the `X-Forwarded-For` header in the request is not modified in any way before the request is sent to backend servers.'."\n"
+ .'> * Both HTTP and HTTPS listeners support this parameter.', 'type' => 'boolean', 'example' => 'true'],
+ 'XForwardedForProcessingMode' => ['description' => 'Specifies how the `X-Forwarded-For` header is processed. This parameter takes effect only when **XForwardedForEnabled** is set to **true**. Valid values:'."\n"
+ ."\n"
+ .'* **append** (default)'."\n"
+ .'* **remove**'."\n"
+ ."\n"
+ .'> * If this parameter is set to **append**, ALB appends the IP address of the last hop to the existing `X-Forwarded-For` header in the request before the request is sent to backend servers.'."\n"
+ .'> * If this parameter is set to **remove**, ALB removes the `X-Forwarded-For` header in the request before the request is sent to backend servers, no matter whether the request carries the `X-Forwarded-For` header.'."\n"
+ .'> * Both HTTP and HTTPS listeners support this parameter.', 'type' => 'string', 'example' => 'append', 'title' => ''],
+ 'XForwardedForProtoEnabled' => ['title' => '', 'description' => 'Indicates whether the `X-Forwarded-Proto` header is used to retrieve the listener protocol. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> This parameter is supported by HTTP, HTTPS, and QUIC listeners.'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'XForwardedForSLBIdEnabled' => ['title' => '', 'description' => 'Specifies whether to use the `SLB-ID` header to retrieve the ID of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> This parameter is supported by HTTP, HTTPS, and QUIC listeners.'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'XForwardedForSLBPortEnabled' => ['title' => '', 'description' => 'Indicates whether the `X-Forwarded-Port` header is used to retrieve the listener port of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> This parameter is supported by HTTP, HTTPS, and QUIC listeners.'."\n", 'type' => 'boolean', 'example' => 'true'],
+ 'XForwardedForClientSourceIpsEnabled' => ['description' => 'Indicates whether the X-Forwarded-For header is used to preserver client IP addresses for the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> This parameter is returned only for HTTP and HTTPS listeners.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''],
+ 'XForwardedForClientSourceIpsTrusted' => ['description' => 'The trusted proxy IP address.'."\n"
+ ."\n"
+ .'ALB instances traverse the IP addresses in the `X-Forwarded-For` header from the rightmost IP address to the leftmost IP address. The first IP address that is not on the trusted IP address list is considered the client IP address. Requests from the client IP address are throttled.'."\n", 'type' => 'string', 'example' => '10.1.1.0/24', 'title' => ''],
+ 'XForwardedForHostEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Host` header to retrieve client domain names. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false** (default)'."\n"
+ ."\n"
+ .'> HTTP, HTTPS, and QUIC listeners all support this parameter.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''],
],
- 'SourceIpConfig' => [
- 'title' => '基于源IP业务流量匹配',
- 'description' => 'Traffic matching based on source IP addresses.'."\n",
+ 'example' => '',
+ ],
+ 'Tags' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags.'."\n",
'type' => 'object',
'properties' => [
- 'Values' => [
- 'description' => 'You can add one or more IP addresses, including CIDR blocks.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'You can add one or more IP addresses, including CIDR blocks.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.0.1/32',
- ],
- 'required' => false,
- ],
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n", 'type' => 'string', 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n", 'type' => 'string', 'example' => 'product', 'title' => ''],
],
- 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
+ 'title' => '',
+ 'example' => '',
],
- 'required' => true,
],
- 'required' => false,
- ],
- 'RuleId' => [
- 'title' => '转发规则ID',
- 'description' => 'The ID of the forwarding rule.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'rule-cxjh7vazn2jpnl****',
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
],
- 'required' => true,
+ 'MaxResults' => ['title' => '', 'description' => 'The maximum number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '50'],
+ 'NextToken' => ['title' => '', 'description' => 'The position where the query stopped. If this parameter is not returned, all data is queried.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'],
+ 'TotalCount' => ['title' => '', 'description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1000'],
],
- 'required' => true,
- 'maxItems' => 100,
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Listeners\\": [\\n {\\n \\"DefaultActions\\": [\\n {\\n \\"ForwardGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-i5qt20******\\"\\n }\\n ]\\n },\\n \\"Type\\": \\"ForwardGroup\\"\\n }\\n ],\\n \\"GzipEnabled\\": false,\\n \\"Http2Enabled\\": false,\\n \\"IdleTimeout\\": 3,\\n \\"ListenerDescription\\": \\"HTTP_80\\",\\n \\"ListenerId\\": \\"lsn-o4u34y73wq7b******\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTP\\",\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"LoadBalancerId\\": \\"alb-bd6oylbckp6k9x****\\",\\n \\"LogConfig\\": {\\n \\"AccessLogRecordCustomizedHeadersEnabled\\": true,\\n \\"AccessLogTracingConfig\\": {\\n \\"TracingEnabled\\": true,\\n \\"TracingSample\\": 100,\\n \\"TracingType\\": \\"Zipkin\\"\\n }\\n },\\n \\"QuicConfig\\": {\\n \\"QuicListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"QuicUpgradeEnabled\\": true\\n },\\n \\"RequestTimeout\\": 34,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_1\\",\\n \\"XForwardedForConfig\\": {\\n \\"XForwardedForClientCertClientVerifyAlias\\": \\"test_client-verify-alias_123456\\",\\n \\"XForwardedForClientCertClientVerifyEnabled\\": true,\\n \\"XForwardedForClientCertFingerprintAlias\\": \\"test_finger-print-alias_123456\\",\\n \\"XForwardedForClientCertFingerprintEnabled\\": true,\\n \\"XForwardedForClientCertIssuerDNAlias\\": \\"test_issue-dn-alias_123456\\",\\n \\"XForwardedForClientCertIssuerDNEnabled\\": true,\\n \\"XForwardedForClientCertSubjectDNAlias\\": \\"test_subject-dn-alias_123456\\",\\n \\"XForwardedForClientCertSubjectDNEnabled\\": true,\\n \\"XForwardedForClientSrcPortEnabled\\": true,\\n \\"XForwardedForEnabled\\": true,\\n \\"XForwardedForProcessingMode\\": \\"append\\",\\n \\"XForwardedForProtoEnabled\\": true,\\n \\"XForwardedForSLBIdEnabled\\": true,\\n \\"XForwardedForSLBPortEnabled\\": true,\\n \\"XForwardedForClientSourceIpsEnabled\\": false,\\n \\"XForwardedForClientSourceIpsTrusted\\": \\"10.1.1.0/24\\",\\n \\"XForwardedForHostEnabled\\": false\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"<ListListenersResponse>\\n <Listeners>\\n <DefaultActions>\\n <ForwardGroupConfig>\\n <ServerGroupTuples>\\n <ServerGroupId>rsp-cige6j****</ServerGroupId>\\n </ServerGroupTuples>\\n </ForwardGroupConfig>\\n <Type>ForwardGroup</Type>\\n </DefaultActions>\\n <GzipEnabled>false</GzipEnabled>\\n <Http2Enabled>false</Http2Enabled>\\n <IdleTimeout>3</IdleTimeout>\\n <ListenerDescription>test</ListenerDescription>\\n <ListenerId>lsr-bp1bpn0kn908w4nbw****</ListenerId>\\n <ListenerPort>80</ListenerPort>\\n <ListenerProtocol>HTTP</ListenerProtocol>\\n <ListenerStatus>Running</ListenerStatus>\\n <LoadBalancerId>lb-bp1b6c719dfa08ex*****</LoadBalancerId>\\n <LogConfig>\\n <AccessLogRecordCustomizedHeadersEnabled>true</AccessLogRecordCustomizedHeadersEnabled>\\n <AccessLogTracingConfig>\\n <TracingEnabled>true</TracingEnabled>\\n <TracingSample>100</TracingSample>\\n <TracingType>Zipkin</TracingType>\\n </AccessLogTracingConfig>\\n </LogConfig>\\n <QuicConfig>\\n <QuicListenerId>lsr-bp1bpn908w4nbw****</QuicListenerId>\\n <QuicUpgradeEnabled>true</QuicUpgradeEnabled>\\n </QuicConfig>\\n <RequestTimeout>34</RequestTimeout>\\n <SecurityPolicyId>tls_cipher_policy_1_1</SecurityPolicyId>\\n <XForwardedForConfig>\\n <XForwardedForClientCertClientVerifyAlias>test_client-verify-alias_123456</XForwardedForClientCertClientVerifyAlias>\\n <XForwardedForClientCertClientVerifyEnabled>true</XForwardedForClientCertClientVerifyEnabled>\\n <XForwardedForClientCertFingerprintAlias>test_finger-print-alias_123456</XForwardedForClientCertFingerprintAlias>\\n <XForwardedForClientCertFingerprintEnabled>true</XForwardedForClientCertFingerprintEnabled>\\n <XForwardedForClientCertIssuerDNAlias>test_issue-dn-alias_123456</XForwardedForClientCertIssuerDNAlias>\\n <XForwardedForClientCertIssuerDNEnabled>true</XForwardedForClientCertIssuerDNEnabled>\\n <XForwardedForClientCertSubjectDNAlias>test_subject-dn-alias_123456</XForwardedForClientCertSubjectDNAlias>\\n <XForwardedForClientCertSubjectDNEnabled>true</XForwardedForClientCertSubjectDNEnabled>\\n <XForwardedForClientSrcPortEnabled>true</XForwardedForClientSrcPortEnabled>\\n <XForwardedForEnabled>true</XForwardedForEnabled>\\n <XForwardedForProtoEnabled>true</XForwardedForProtoEnabled>\\n <XForwardedForSLBIdEnabled>true</XForwardedForSLBIdEnabled>\\n <XForwardedForSLBPortEnabled>true</XForwardedForSLBPortEnabled>\\n <XForwardedForClientSourceIpsEnabled>false</XForwardedForClientSourceIpsEnabled>\\n <XForwardedForClientSourceIpsTrusted>10.1.1.0/24</XForwardedForClientSourceIpsTrusted>\\n </XForwardedForConfig>\\n </Listeners>\\n <MaxResults>50</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <TotalCount>1000</TotalCount>\\n</ListListenersResponse>","errorExample":""}]',
+ 'title' => 'ListListeners',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListListeners',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'ListLoadBalancers' => [
+ 'summary' => 'Queries the configurations of load balancer instances.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => ['FEATUREslb6TP8T4'],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NextToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'- You do not need to specify this parameter for the first request.'."\n"
+ ."\n"
+ .'- If a subsequent call is required, set the value to the **NextToken** value returned from the previous call.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **20**.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'ZoneId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the zone where the Application Load Balancer instance is deployed.'."\n"
+ ."\n"
+ .'You can call the [](t2324479.xdita#)operation to query information about the zones.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'cn-hangzhou-a'],
+ ],
+ [
+ 'name' => 'LoadBalancerStatus',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The state of the Application Load Balancer instance. Valid values:'."\n"
+ ."\n"
+ .'- **Inactive**: The instance is disabled. Listeners of the instance do not forward traffic.'."\n"
+ ."\n"
+ .'- **Active**: The instance is running.'."\n"
+ ."\n"
+ .'- **Provisioning**: The instance is being created.'."\n"
+ ."\n"
+ .'- **Configuring**: The instance is being configured.'."\n"
+ ."\n"
+ .'- **CreateFailed**: The instance failed to be created. You are not charged for the instance. You can only delete the instance. The system automatically deletes instances that failed to be created within one day.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Active'],
+ ],
+ [
+ 'name' => 'LoadBalancerBussinessStatus',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The service status of the Application Load Balancer instance. Valid values:'."\n"
+ ."\n"
+ .'- **Abnormal**: The instance is not working as expected.'."\n"
+ ."\n"
+ .'- **Normal**: The instance is working as expected.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Normal'],
+ ],
+ [
+ 'name' => 'LoadBalancerIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The instance IDs. You can specify up to 20 Application Load Balancer instance IDs.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The instance ID.', 'type' => 'string', 'required' => false, 'example' => 'alb-o9ulmq5hgn68jk****', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 21,
'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'LoadBalancerNames',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ 'title' => '',
+ 'description' => 'The instance names. You can specify up to 10 instance names.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The name of the instance.'."\n"
."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
+ .'The name must be 2 to 128 characters in length, start with a letter or a Chinese character, and can contain digits, periods (.), underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'alb-instance-test', 'title' => ''],
'required' => false,
- 'example' => 'false',
+ 'maxItems' => 11,
+ 'minItems' => 1,
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'VpcIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The ID of the virtual private cloud (VPC) to which the Application Load Balancer instance belongs. You can specify up to 10 VPC IDs.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of the VPC to which the Application Load Balancer instance belongs.', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp1b49rqrybk45nio****', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 11,
+ 'minItems' => 1,
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The tags of the instances.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag of the instance.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key of the instance. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n"
+ ."\n"
+ .'The tag key can be up to 64 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'KeyTest'],
+ 'Value' => ['description' => 'The tag value of the instance. You can specify up to 20 tag values. The tag value can be an empty string.'."\n"
+ ."\n"
+ .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'alueTest'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'maxItems' => 21,
+ 'minItems' => 1,
+ 'example' => '',
],
],
+ [
+ 'name' => 'AddressType',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The type of the IP address that the Application Load Balancer instance uses to provide services. Valid values:'."\n"
+ ."\n"
+ .'- **Internet**: The ALB instance uses a public IP address. The domain name of the ALB instance is resolved to the public IP address. Therefore, the ALB instance can be accessed over the Internet.'."\n"
+ ."\n"
+ .'- **Intranet**: The ALB instance uses a private IP address. The domain name of the ALB instance is resolved to the private IP address. Therefore, the ALB instance can be accessed in the VPC where the ALB instance is deployed.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Intranet'],
+ ],
+ [
+ 'name' => 'PayType',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The billing method of the instance. Valid value:'."\n"
+ ."\n"
+ .'**PostPay** (default): The instance is billed on a pay-as-you-go basis.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'PostPay'],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'rg-acfmxazb4ph****'],
+ ],
+ [
+ 'name' => 'AddressIpVersion',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The protocol version. Valid values:'."\n"
+ ."\n"
+ .'- **IPv4**: IPv4'."\n"
+ ."\n"
+ .'- **DualStack**: dual-stack', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'IPv4'],
+ ],
+ [
+ 'name' => 'Ipv6AddressType',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The type of the IPv6 address that the Application Load Balancer instance uses to provide services. Valid values:'."\n"
+ ."\n"
+ .'- **Internet**: The ALB instance uses a public IP address. The domain name of the ALB instance is resolved to the public IP address. Therefore, the ALB instance can be accessed over the Internet.'."\n"
+ ."\n"
+ .'- **Intranet**: The ALB instance uses a private IP address. The domain name of the ALB instance is resolved to the private IP address. Therefore, the ALB instance can be accessed in the VPC where the ALB instance is deployed.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Intranet'],
+ ],
+ [
+ 'name' => 'DNSName',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The domain name.', 'type' => 'string', 'required' => false, 'example' => 'alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com', 'title' => ''],
+ ],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'Schema of Response'."\n",
+ 'description' => 'The configurations of the Application Load Balancer instance.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
+ 'LoadBalancers' => [
+ 'title' => '',
+ 'description' => 'The list of Application Load Balancer instances.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The details of the Application Load Balancer instance.',
+ 'type' => 'object',
+ 'properties' => [
+ 'AccessLogConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the access log.',
+ 'type' => 'object',
+ 'properties' => [
+ 'LogProject' => ['description' => 'The Log Service project.', 'type' => 'string', 'title' => '', 'example' => 'sls-setter'],
+ 'LogStore' => ['description' => 'The Logstore.', 'type' => 'string', 'title' => '', 'example' => 'test'],
+ ],
+ 'example' => '',
+ ],
+ 'AddressAllocatedMode' => ['description' => 'The mode of the IP address. Valid values:'."\n"
+ ."\n"
+ .'- **Fixed**: The ALB instance uses a static IP address.'."\n"
+ ."\n"
+ .'- **Dynamic**: A dynamic IP address is allocated to the ALB instance in each zone.', 'type' => 'string', 'title' => '', 'example' => 'Fixed'],
+ 'AddressType' => ['description' => 'The type of IP address that the ALB instance uses to provide services. Valid values:'."\n"
+ ."\n"
+ .'- **Internet**: The ALB instance uses a public IP address. The domain name of the ALB instance is resolved to the public IP address. Therefore, the ALB instance can be accessed over the Internet.'."\n"
+ ."\n"
+ .'- **Intranet**: The ALB instance uses a private IP address. The domain name of the ALB instance is resolved to the private IP address. Therefore, the ALB instance can be accessed in the VPC where the ALB instance is deployed.', 'type' => 'string', 'title' => '', 'example' => 'Intranet'],
+ 'BandwidthPackageId' => ['description' => 'The ID of the Internet Shared Bandwidth instance that is associated with the Internet-facing ALB instance.', 'type' => 'string', 'title' => '', 'example' => 'cbwp-bp1vevu8h3ieh****'],
+ 'CreateTime' => ['description' => 'The time when the resource was created.', 'type' => 'string', 'title' => '', 'example' => '2022-07-02T02:49:05Z'],
+ 'DNSName' => ['description' => 'The domain name.', 'type' => 'string', 'title' => '', 'example' => 'alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com'],
+ 'DeletionProtectionConfig' => [
+ 'title' => '',
+ 'description' => 'The deletion protection configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Enabled' => ['description' => 'Indicates whether deletion protection is enabled. Valid values:'."\n"
+ ."\n"
+ .'- **true**: enabled.'."\n"
+ ."\n"
+ .'- **false**: disabled.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'EnabledTime' => ['description' => 'The time when deletion protection was enabled.', 'type' => 'string', 'title' => '', 'example' => '2022-08-02T02:49:05Z'],
+ ],
+ 'example' => '',
+ ],
+ 'LoadBalancerBillingConfig' => [
+ 'title' => '',
+ 'description' => 'The billing configuration of the ALB instance.',
+ 'type' => 'object',
+ 'properties' => [
+ 'PayType' => ['description' => 'The billing method. Valid value:'."\n"
+ ."\n"
+ .'**PostPay**: pay-as-you-go.', 'type' => 'string', 'default' => 'PostPay', 'title' => '', 'example' => 'PostPay'],
+ ],
+ 'example' => '',
+ ],
+ 'LoadBalancerBussinessStatus' => ['description' => 'The service status of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'- **Abnormal**: The instance is not working as expected.'."\n"
+ ."\n"
+ .'- **Normal**: The instance is working as expected.', 'type' => 'string', 'title' => '', 'example' => 'Normal'],
+ 'LoadBalancerEdition' => ['description' => 'The edition of the ALB instance. Different editions have different limits and billing methods. Valid values:'."\n"
+ ."\n"
+ .'- **Basic**: Basic Edition.'."\n"
+ ."\n"
+ .'- **Standard**: Standard Edition.'."\n"
+ ."\n"
+ .'- **StandardWithWaf**: WAF-enabled Edition.', 'type' => 'string', 'title' => '', 'example' => 'Standard'],
+ 'LoadBalancerId' => ['description' => 'The ID of the Application Load Balancer instance.', 'type' => 'string', 'title' => '', 'example' => 'alb-o9ulmq5hgn68jk****'],
+ 'LoadBalancerName' => ['description' => 'The name of the ALB instance.', 'type' => 'string', 'title' => '', 'example' => 'alb-instance-test'],
+ 'LoadBalancerOperationLocks' => [
+ 'title' => '',
+ 'description' => 'The configuration of the configuration lock.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The details of the configuration lock.',
+ 'type' => 'object',
+ 'properties' => [
+ 'LockReason' => ['description' => 'The reason for the lock. This parameter is valid only if **LoadBalancerBussinessStatus** is set to **Abnormal**.', 'type' => 'string', 'title' => '', 'example' => ''],
+ 'LockType' => ['description' => 'The type of the lock. Valid values:'."\n"
+ ."\n"
+ .'- **SecurityLocked**: The instance is locked for security reasons.'."\n"
+ ."\n"
+ .'- **RelatedResourceLocked**: The instance is locked due to a correlated resource.'."\n"
+ ."\n"
+ .'- **FinancialLocked**: The instance is locked due to overdue payments.'."\n"
+ ."\n"
+ .'- **ResidualLocked**: The instance is locked because it is faulty.', 'type' => 'string', 'title' => '', 'example' => 'FinancialLocked'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
+ ],
+ 'LoadBalancerStatus' => ['description' => 'The state of the Application Load Balancer instance. Valid values:'."\n"
+ ."\n"
+ .'- **Inactive**: The instance is disabled. Listeners of the instance do not forward traffic.'."\n"
+ ."\n"
+ .'- **Active**: The instance is running.'."\n"
+ ."\n"
+ .'- **Provisioning**: The instance is being created.'."\n"
+ ."\n"
+ .'- **Configuring**: The instance is being configured.'."\n"
+ ."\n"
+ .'- **CreateFailed**: The instance failed to be created.', 'type' => 'string', 'title' => '', 'example' => 'Active'],
+ 'ModificationProtectionConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of modification protection.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Reason' => ['description' => 'The reason for enabling modification protection.'."\n"
+ ."\n"
+ .'The reason must be 2 to 128 characters in length, start with a letter or a Chinese character, and can contain digits, periods (.), underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'This parameter is returned only if **Status** is set to **ConsoleProtection**.', 'type' => 'string', 'title' => '', 'example' => 'Managed Instance'],
+ 'Status' => ['description' => 'The status of modification protection. Valid values:'."\n"
+ ."\n"
+ .'- **NonProtection**: Modification protection is disabled. If you specify a value for **Reason**, the value is cleared.'."\n"
+ ."\n"
+ .'- **ConsoleProtection**: Modification protection is enabled. If you specify a value for **Reason**, the value takes effect.'."\n"
+ ."\n"
+ .'> If you set the value to **ConsoleProtection**, you cannot modify the instance configuration in the Application Load Balancer console. However, you can call API operations to modify the instance configuration.', 'type' => 'string', 'title' => '', 'example' => 'ConsoleProtection'],
+ ],
+ 'example' => '',
+ ],
+ 'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'title' => '', 'example' => 'rg-atstuj3rtop****'],
+ 'Tags' => [
+ 'title' => '',
+ 'description' => 'The list of tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key of the instance.', 'type' => 'string', 'title' => '', 'example' => 'KeyTest'],
+ 'Value' => ['description' => 'The tag value of the instance.', 'type' => 'string', 'title' => '', 'example' => 'alueTest'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
+ ],
+ 'VpcId' => ['description' => 'The ID of the VPC to which the Application Load Balancer instance belongs.', 'type' => 'string', 'title' => '', 'example' => 'vpc-bp1b49rqryhk45nio****'],
+ 'AddressIpVersion' => ['description' => 'The protocol version. Valid values:'."\n"
+ ."\n"
+ .'- **IPv4**: IPv4'."\n"
+ ."\n"
+ .'- **DualStack**: dual-stack', 'type' => 'string', 'title' => '', 'example' => 'DualStack'],
+ 'Ipv6AddressType' => ['description' => 'The type of the IPv6 address that the Application Load Balancer instance uses to provide services. Valid values:'."\n"
+ ."\n"
+ .'- **Internet**: The ALB instance uses a public IP address. The domain name of the ALB instance is resolved to the public IP address. Therefore, the ALB instance can be accessed over the Internet.'."\n"
+ ."\n"
+ .'- **Intranet**: The ALB instance uses a private IP address. The domain name of the ALB instance is resolved to the private IP address. Therefore, the ALB instance can be accessed in the VPC where the ALB instance is deployed.', 'type' => 'string', 'title' => '', 'example' => 'Intranet'],
+ 'SecurityGroupIds' => [
+ 'description' => 'The security groups to which the Application Load Balancer instance is added.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The security group to which the Application Load Balancer instance is added.', 'type' => 'string', 'example' => 'sg-2zejdtxxpu8c9tny****', 'title' => ''],
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
+ 'MaxResults' => ['description' => 'The number of entries returned on each page.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '20'],
+ 'NextToken' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'- If **NextToken** is empty, it indicates that no next query is to be sent.'."\n"
+ ."\n"
+ .'- If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.', 'type' => 'string', 'title' => '', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'],
+ 'TotalCount' => ['description' => 'The number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'],
],
+ 'example' => '',
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.Rule',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.GRPCServerGroup',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'Conflict.Priority',
- 'errorMessage' => 'There is already %s having the same configuration with %s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.RuleWildcardsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.RuleActionsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'Mismatch.Protocol',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'Mismatch.VpcId',
- 'errorMessage' => 'The %s is mismatched for %s and %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.ServiceManagedResource',
- 'errorMessage' => 'The operation is not allowed because the current resource of %s is managed resource.',
- ],
- [
- 'errorCode' => 'OperationDenied.ListenerIdInconsistent',
- 'errorMessage' => 'The operation is not allowed because of ListenerIdInconsistent.',
- ],
- [
- 'errorCode' => 'IllegalParam.Priority',
- 'errorMessage' => 'The param of Priority is illegal.',
- ],
- [
- 'errorCode' => 'OperationDenied.MirrorActionSupportHttpGroupOnly',
- 'errorMessage' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.',
- ],
- [
- 'errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction',
- 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Rule',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"LoadBalancers\\": [\\n {\\n \\"AccessLogConfig\\": {\\n \\"LogProject\\": \\"sls-setter\\",\\n \\"LogStore\\": \\"test\\"\\n },\\n \\"AddressAllocatedMode\\": \\"Fixed\\",\\n \\"AddressType\\": \\"Intranet\\",\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"DNSName\\": \\"alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\",\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"EnabledTime\\": \\"2022-08-02T02:49:05Z\\"\\n },\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"LoadBalancerBussinessStatus\\": \\"Normal\\",\\n \\"LoadBalancerEdition\\": \\"Standard\\",\\n \\"LoadBalancerId\\": \\"alb-o9ulmq5hgn68jk****\\",\\n \\"LoadBalancerName\\": \\"alb-instance-test\\",\\n \\"LoadBalancerOperationLocks\\": [\\n {\\n \\"LockReason\\": \\"\\",\\n \\"LockType\\": \\"FinancialLocked\\"\\n }\\n ],\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"ModificationProtectionConfig\\": {\\n \\"Reason\\": \\"Managed Instance\\",\\n \\"Status\\": \\"ConsoleProtection\\"\\n },\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"alueTest\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqryhk45nio****\\",\\n \\"AddressIpVersion\\": \\"DualStack\\",\\n \\"Ipv6AddressType\\": \\"Intranet\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-2zejdtxxpu8c9tny****\\"\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"TotalCount\\": 100\\n}","type":"json"}]',
+ 'title' => 'ListLoadBalancers',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListLoadBalancers',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/*'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
],
- 'staticInfo' => [
- 'returnType' => 'asynchronous',
- 'callback' => 'Alb::2020-06-16::ListAsynJobs',
- 'callbackInterval' => 1000,
- 'maxCallbackTimes' => 60,
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateRulesAttributeResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateRulesAttributeResponse>","errorExample":""}]',
- 'title' => 'UpdateRulesAttribute',
- 'description' => '**UpdateRulesAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListRules](~~214379~~) operation to query the status of the task.'."\n"
- ."\n"
- .'* If a forwarding rule is in the **Configuring** state, the forwarding rule is being updated.'."\n"
- ."\n"
- .'* If a forwarding rule is in the **Available** state, the forwarding rule is updated.'."\n"
- ."\n"
- .'* You can set **RuleConditions** and **RuleActions** to add conditions and actions to a forwarding rule. Take note of the following limits on the maximum number of conditions and the maximum number of actions in each forwarding rule:'."\n"
- ."\n"
- .' * Limits on conditions: 5 for a basic Application Load Balancer (ALB) instance, 10 for a standard ALB instance, and 10 for a WAF-enabled ALB instance.'."\n"
- .' * Limits on actions: 3 for a basic ALB instance, 5 for a standard ALB instance, and 5 for a WAF-enabled ALB instance.'."\n",
],
'ListRules' => [
- 'summary' => 'Queries the forwarding rules in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -14956,57 +9298,42 @@
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeNodes' => [
- 'FEATUREslbM7ALO6',
- ],
+ 'abilityTreeNodes' => ['FEATUREslbM7ALO6'],
],
'parameters' => [
[
'name' => 'NextToken',
'in' => 'query',
- 'schema' => [
- 'title' => '用来标记当前开始读取的位置,置空表示从头开始。',
- 'description' => 'The starting point of the current query. If you do not specify this parameter, the query starts from the beginning.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
+ 'schema' => ['description' => 'The token that is used to retrieve the next page of results. Valid values:'."\n"
+ ."\n"
+ .'- You do not need to set this parameter for the first query.'."\n"
+ ."\n"
+ .'- For a subsequent query, set this parameter to the value of **NextToken** from the previous response.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => '', 'required' => false],
],
[
'name' => 'MaxResults',
'in' => 'query',
- 'schema' => [
- 'title' => '本次读取的最大数据记录数量,此参数为可选参数,取值1-100,用户传入为空时,默认为20。',
- 'description' => 'The maximum number of entries to return.'."\n"
- ."\n"
- .'Valid values: **1 to 100**.'."\n"
- ."\n"
- .'Default value: **20**. If you do not specify this parameter, the default value is used.'."\n"
- ."\n"
- .'> This parameter is optional.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '20',
- ],
+ 'schema' => ['description' => 'The maximum number of entries to return.'."\n"
+ ."\n"
+ .'Valid values: 1 to **100**.'."\n"
+ ."\n"
+ .'Default value: **20**.'."\n"
+ ."\n"
+ .'> This parameter is optional.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => '', 'required' => false],
],
[
'name' => 'RuleIds',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '转发规则ID列表,N最大支持20',
- 'description' => 'The forwarding rules.'."\n",
+ 'title' => '',
+ 'description' => 'The IDs of the forwarding rules. You can specify up to 20 forwarding rule IDs.',
'type' => 'array',
- 'items' => [
- 'description' => 'The forwarding rule ID. You can specify up to 20 IDs in each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rule-sada',
- ],
+ 'items' => ['description' => 'The forwarding rule ID.', 'type' => 'string', 'required' => false, 'example' => 'rule-sada******', 'title' => ''],
'required' => false,
'maxItems' => 20,
'minItems' => 1,
+ 'example' => '',
],
],
[
@@ -15014,17 +9341,13 @@
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '监听ID列表',
- 'description' => 'The listener IDs.'."\n",
+ 'title' => '',
+ 'description' => 'The listener IDs. You can specify up to 20 listener IDs.',
'type' => 'array',
- 'items' => [
- 'description' => 'The listener ID. You can specify up to 20 IDs in each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'lsn-i35udpz3pxsmnf****',
- ],
+ 'items' => ['description' => 'The listener ID.', 'type' => 'string', 'required' => false, 'example' => 'lsn-i35udpz3pxsmnf****', 'title' => ''],
'required' => false,
'maxItems' => 20,
+ 'example' => '',
],
],
[
@@ -15032,929 +9355,731 @@
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '实例ID列表',
- 'description' => 'The Application Load Balancer (ALB) instance IDs.'."\n",
+ 'title' => '',
+ 'description' => 'The SLB instance IDs. You can specify up to 20 instance IDs.',
'type' => 'array',
- 'items' => [
- 'description' => 'The ALB instance ID. You can specify up to 20 IDs in each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'alb-x30o38azsuj0sx****',
- ],
+ 'items' => ['description' => 'The SLB instance ID.', 'type' => 'string', 'required' => false, 'example' => 'alb-x30o38azsuj0sx****', 'title' => ''],
'required' => false,
'maxItems' => 20,
+ 'example' => '',
],
],
[
'name' => 'Direction',
'in' => 'query',
- 'schema' => [
- 'title' => '转发规则方向',
- 'description' => 'The direction to which the forwarding rule is applied. Valid values:'."\n"
- ."\n"
- .'* **Request** (default): The forwarding rule is applied to the client requests received by ALB.'."\n"
- .'* **Response**: The forwarding rule is applied to the responses returned by backend servers.'."\n"
- ."\n"
- .'> You cannot set this parameter to Response if you use basic ALB instances.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Request',
- ],
+ 'schema' => ['description' => 'The direction of the forwarding rule. Valid values:'."\n"
+ ."\n"
+ .'- **Request** (default): The forwarding rule is applied to requests. Application Load Balancer (ALB) matches conditions in the requests sent from clients and performs the specified actions.'."\n"
+ ."\n"
+ .'- **Response**: The forwarding rule is applied to responses. ALB matches conditions in the responses sent from backend servers and performs the specified actions.'."\n"
+ ."\n"
+ .'> Basic ALB instances do not support the Response type.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Request'],
],
[
'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The tag.'."\n",
+ 'description' => 'The tags.',
'type' => 'array',
'items' => [
- 'description' => '',
+ 'description' => 'The tag.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The tag key. The tag key can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'product',
- ],
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length. It cannot start with \\`aliyun\\` or \\`acs:\\`, and cannot contain \\`http\\://\\` or \\`https\\://\\`.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length. It cannot start with \\`aliyun\\` or \\`acs:\\`, and cannot contain \\`http\\://\\` or \\`https\\://\\`.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
'required' => false,
'maxItems' => 20,
+ 'title' => '',
+ 'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The forwarding rules.'."\n",
+ 'title' => '',
+ 'description' => 'The forwarding rules.',
'type' => 'object',
'properties' => [
- 'MaxResults' => [
- 'title' => '本次请求所返回的最大记录条数。',
- 'description' => 'The maximum number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '50',
- ],
- 'NextToken' => [
- 'title' => '用来表示当前调用返回读取到的位置,空代表数据已经读取完毕。',
- 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
+ 'MaxResults' => ['description' => 'The maximum number of entries returned per page.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '50'],
+ 'NextToken' => ['description' => 'The token that is used to retrieve the next page of results. Valid values:'."\n"
+ ."\n"
+ .'- If **NextToken** is empty, no more results are returned.'."\n"
+ ."\n"
+ .'- If **NextToken** has a value, it is the token for the next query.', 'type' => 'string', 'title' => '', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876F******'],
'Rules' => [
- 'title' => '转发规则列表',
- 'description' => 'The details about the forwarding rule.'."\n",
+ 'title' => '',
+ 'description' => 'The list of forwarding rules.',
'type' => 'array',
'items' => [
- 'description' => 'The forwarding rule.'."\n",
+ 'description' => 'The forwarding rule.',
'type' => 'object',
'properties' => [
- 'ListenerId' => [
- 'title' => '监听ID',
- 'description' => 'The ID of the listener that is associated with the forwarding rule.'."\n",
- 'type' => 'string',
- 'example' => 'lsn-i35udpz3pxsmnf****',
- ],
- 'LoadBalancerId' => [
- 'title' => '实例ID',
- 'description' => 'The ID of the Application Load Balancer (ALB) instance that is associated with the forwarding rule.'."\n",
- 'type' => 'string',
- 'example' => 'alb-x30o38azsuj0sx****',
- ],
- 'Priority' => [
- 'title' => '转发规则优先级',
- 'description' => 'The priority of the forwarding rule. Valid values: **1 to 10000**. A smaller value indicates a higher priority.'."\n"
- ."\n"
- .'> The priority of each forwarding rule added to a listener must be unique.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
+ 'ListenerId' => ['description' => 'The ID of the listener to which the forwarding rule belongs.', 'type' => 'string', 'title' => '', 'example' => 'lsn-i35udpz3pxsmnf****'],
+ 'LoadBalancerId' => ['description' => 'The ID of the SLB instance to which the forwarding rule belongs.', 'type' => 'string', 'title' => '', 'example' => 'alb-x30o38azsuj0sx****'],
+ 'Priority' => ['description' => 'The priority of the rule. A smaller value indicates a higher priority. Valid values: 1 to **10000**.'."\n"
+ ."\n"
+ .'> The priority of each rule must be unique within a listener.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'],
'RuleActions' => [
- 'title' => '转发规则动作',
- 'description' => 'The action of the forwarding rule.'."\n",
+ 'title' => '',
+ 'description' => 'The actions of the forwarding rule.',
'type' => 'array',
'items' => [
- 'description' => 'The action of the forwarding rule.'."\n",
+ 'description' => 'The action of the forwarding rule.',
'type' => 'object',
'properties' => [
'FixedResponseConfig' => [
- 'title' => '返回固定内容动作配置',
- 'description' => 'The configuration of the custom response.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the fixed response.',
'type' => 'object',
'properties' => [
- 'Content' => [
- 'title' => '内容',
- 'description' => 'The content of the custom response. The content can be up to 1 KB in size, and can contain only ASCII characters.'."\n",
- 'type' => 'string',
- 'example' => 'dssacav',
- ],
- 'ContentType' => [
- 'title' => '内容类型',
- 'description' => 'The format of the response.'."\n"
- ."\n"
- .'Valid values: **text/plain**, **text/css**, **text/html**, **application/javascript**, and **application/json**.'."\n",
- 'type' => 'string',
- 'example' => 'text/plain',
- ],
- 'HttpCode' => [
- 'title' => 'HTTP响应码',
- 'description' => 'The HTTP status code in responses. Valid values: **HTTP\\_2xx**, **HTTP\\_4xx**, and **HTTP\\_5xx**. **x** is a digit.'."\n",
- 'type' => 'string',
- 'example' => 'HTTP_2xx',
- ],
+ 'Content' => ['description' => 'The fixed response. The response can be up to 1 KB in length and can contain only ASCII characters.', 'type' => 'string', 'title' => '', 'example' => 'dssacav'],
+ 'ContentType' => ['description' => 'The format of the fixed response.'."\n"
+ ."\n"
+ .'Valid values: **text/plain**, **text/css**, **text/html**, **application/javascript**, and **application/json**.', 'type' => 'string', 'title' => '', 'example' => 'text/plain'],
+ 'HttpCode' => ['description' => 'The HTTP status code of the response. Only **HTTP\\_2xx**, **HTTP\\_4xx**, and **HTTP\\_5xx** are supported. **x** is a digit.', 'type' => 'string', 'title' => '', 'example' => 'HTTP_2xx'],
],
+ 'example' => '',
],
'ForwardGroupConfig' => [
- 'title' => '转发组动作配置',
- 'description' => 'The configurations of the server groups.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the forwarding group.',
'type' => 'object',
'properties' => [
'ServerGroupTuples' => [
- 'title' => '转发到的目的服务器组列表',
- 'description' => 'The server groups to which requests are forwarded.'."\n",
+ 'title' => '',
+ 'description' => 'The destination server groups.',
'type' => 'array',
'items' => [
- 'description' => 'The server group to which requests are forwarded.'."\n",
+ 'description' => 'The destination server group.',
'type' => 'object',
'properties' => [
- 'ServerGroupId' => [
- 'title' => '服务器组标识',
- 'description' => 'The server group to which requests are forwarded.'."\n",
- 'type' => 'string',
- 'example' => 'sg-atstuj3rtoptyui****',
- ],
- 'Weight' => [
- 'title' => '当ServerGroupTuple.N数量大于1时,可配置每个服务器组的权重',
- 'description' => 'The weight of the server group. Valid values: **0** to **100**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
+ 'ServerGroupId' => ['description' => 'The ID of the destination server group.', 'type' => 'string', 'title' => '', 'example' => 'sgp-atstuj3rtoptyui****'],
+ 'Weight' => ['description' => 'The weight. Valid values: **0** to **100**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'],
],
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
],
'ServerGroupStickySession' => [
- 'title' => '服务器组间会话保持配置',
- 'description' => 'The session persistence configurations of the server group.'."\n",
+ 'title' => '',
+ 'description' => 'The session persistence settings for the server groups.',
'type' => 'object',
'properties' => [
- 'Enabled' => [
- 'title' => '当ServerGroupTuple.N数量大于1时,可选是否开启在服务器组间的会话保持',
- 'description' => 'If the value of N in ServerGroupTuple.N is larger than 1, you can enable or disable session persistence for server groups.'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'Timeout' => [
- 'title' => '当Enabled=True时,可以配置会话保持的超时时间',
- 'description' => 'If Enabled is set to True, you can specify a session persistence timeout period.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '100',
- ],
+ 'Enabled' => ['description' => 'Specifies whether to enable session persistence among server groups. This parameter is available when multiple server groups are specified in \\`ServerGroupTuples\\`.', 'type' => 'boolean', 'title' => '', 'example' => ''],
+ 'Timeout' => ['description' => 'The timeout period for session persistence. This parameter is available when \\`Enabled\\` is set to \\`true\\`.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'],
],
+ 'example' => '',
],
],
+ 'example' => '',
],
'InsertHeaderConfig' => [
- 'title' => '插入头部动作配置',
- 'description' => 'The key of the header to be inserted.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the header to be inserted.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头',
- 'description' => 'The key of the header. The header key must be 1 to 40 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The header key specified in `InsertHeader` must be unique.'."\n"
- ."\n"
- .'> **Cookie** and **Host** are not supported.'."\n",
- 'type' => 'string',
- 'example' => 'key',
- ],
- 'Value' => [
- 'title' => 'HTTP标头内容',
- 'description' => 'The value of the header to be inserted.'."\n"
- ."\n"
- .'* If **ValueType** is set to **SystemDefined**, you can set the Value parameter to one of the following values:'."\n"
- ."\n"
- .' * **ClientSrcPort**: the client port.'."\n"
- .' * **ClientSrcIp**: the IP address of the client.'."\n"
- .' * **Protocol**: the request protocol (HTTP or HTTPS).'."\n"
- .' * **SLBId**: the ID of the ALB instance.'."\n"
- .' * **SLBPort**: the listener port.'."\n"
- ."\n"
- .'* If **ValueType** is set to **UserDefined**, you can specify a custom header value. The header value must be 1 to 128 characters in length, and can contain wildcard characters, such as asterisks (\\*) and question marks (?), and printable characters whose ASCII values are `larger than or equal to 32 and smaller than 127`. The header value cannot start or end with a space character.'."\n"
- ."\n"
- .'* If **ValueType** is set to **ReferenceHeader**, you can reference a value from a request header. The header value must be 1 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n",
- 'type' => 'string',
- 'example' => 'ClientSrcPort',
- ],
- 'ValueType' => [
- 'title' => '取值类型',
- 'description' => 'The type of the header value. Valid values:'."\n"
- ."\n"
- .'* **UserDefined**: a user-defined header value.'."\n"
- .'* **ReferenceHeader**: a header value that is referenced from a request header.'."\n"
- .'* **SystemDefined:** a system-defined header value.'."\n",
- 'type' => 'string',
- 'example' => 'SystemDefined',
- ],
+ 'Key' => ['description' => 'The key of the header to be inserted. The key must be 1 to 40 characters in length. It can contain letters, digits, underscores (\\_), and hyphens (-). The header key in `InsertHeader` cannot be the same as the key of a header that has been inserted.'."\n"
+ ."\n"
+ .'> You cannot set the key to **Cookie** or **Host**.', 'type' => 'string', 'title' => '', 'example' => 'key'],
+ 'Value' => ['description' => 'The value of the header to be inserted.'."\n"
+ ."\n"
+ .'- **ValueType** is set to **SystemDefined**, you can set the value to:'."\n"
+ ."\n"
+ .' - **ClientSrcPort**: the client port.'."\n"
+ ."\n"
+ .' - **ClientSrcIp**: the client IP address.'."\n"
+ ."\n"
+ .' - **Protocol**: the protocol of the client request (HTTP or HTTPS).'."\n"
+ ."\n"
+ .' - **SLBId**: the ID of the Application Load Balancer instance.'."\n"
+ ."\n"
+ .' - **SLBPort**: the listening port of the Application Load Balancer instance.'."\n"
+ ."\n"
+ .'- If **ValueType** is set to **UserDefined**: you can specify a custom header value. The value must be 1 to 128 characters in length. It can contain printable characters with ASCII values from `ch >= 32 && ch < 127`. It can also contain wildcard characters, including asterisks (\\*) and question marks (?). The value cannot start or end with a space.'."\n"
+ ."\n"
+ .'- If **ValueType** is set to **ReferenceHeader**: you can reference a field in the request header. The value must be 1 to 128 characters in length. It can contain lowercase letters, digits, hyphens (-), and underscores (\\_).', 'type' => 'string', 'title' => '', 'example' => 'ClientSrcPort'],
+ 'ValueType' => ['description' => 'The type of the header value. Valid values:'."\n"
+ ."\n"
+ .'- **UserDefined**: a user-defined value.'."\n"
+ ."\n"
+ .'- **ReferenceHeader**: a value that is referenced from a field in the request header.'."\n"
+ ."\n"
+ .'- **SystemDefined**: a system-defined value.', 'type' => 'string', 'title' => '', 'example' => 'SystemDefined'],
],
+ 'example' => '',
],
- 'Order' => [
- 'title' => '优先级',
- 'description' => 'The priority of the action. Valid values: **1 to 50000**. A smaller value indicates a higher priority. The actions of a forwarding rule are applied in descending order of priority. This parameter cannot empty. The priority of each action within a forwarding rule must be unique.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
+ 'Order' => ['description' => 'The order of the action. Valid values: 1 to 50000. A smaller value indicates a higher priority. The value of this parameter cannot be the same as the value of **Order** for other actions of the same rule.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'],
'RedirectConfig' => [
- 'title' => '重定向动作配置',
- 'description' => 'The configuration of the redirect action.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the redirection.',
'type' => 'object',
'properties' => [
- 'Host' => [
- 'title' => '要跳转的主机地址',
- 'description' => 'The hostname to which requests are redirected. Valid values:'."\n"
- ."\n"
- .'* **${host}** (default): If ${host} is returned, no other characters are appended.'."\n"
- ."\n"
- .'* A custom value. Make sure that the custom value meets the following requirements:'."\n"
- ."\n"
- .' * The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), and question marks (?).'."\n"
- .' * The hostname must contain at least one period (.) but cannot start or end with a period (.).'."\n"
- .' * The rightmost domain label can contain only letters and wildcard characters. It cannot contain digits or hyphens (-).'."\n"
- .' * The domain labels cannot start or end with a hyphen (-).'."\n"
- .' * You can use asterisks (\\*) and question marks (?) anywhere in a domain label as wildcard characters.'."\n",
- 'type' => 'string',
- 'example' => 'www.example.com',
- ],
- 'HttpCode' => [
- 'title' => '跳转方式',
- 'description' => 'The forwarding method. Valid values: **301**, **302**, **303**, **307**, and **308**.'."\n",
- 'type' => 'string',
- 'example' => '301',
- ],
- 'Path' => [
- 'title' => '要跳转的路径',
- 'description' => 'The URL to which requests are redirected. Valid values:'."\n"
- ."\n"
- .'* **${path}** (default): You can reference \\*\\*${host}**, **${protocol}**, and**${port}**. The URL can consist of **${host}**,**${protocol}**, and **${port}\\*\\*. Each variable can be used only once. The preceding variables can be used at the same time or combined with a custom value.'."\n"
- ."\n"
- .'* A custom value. Make sure that the custom value meets the following requirements:'."\n"
- ."\n"
- .' * The URL must be 1 to 128 characters in length.'."\n"
- .' * It must start with a forward slash (/) and can contain letters, digits, and the following special characters: `$ - _ .+ / & ~ @ :`. It cannot contain the following special characters: `" % # ; ! ( ) [ ] ^ , "`. You can use asterisks (\\*) and question marks (?) as wildcard characters.'."\n",
- 'type' => 'string',
- 'example' => '/test',
- ],
- 'Port' => [
- 'title' => '要跳转的端口',
- 'description' => 'The port to which requests are redirected. Valid values:'."\n"
- ."\n"
- .'* **${port}** (default): If ${port} is returned, no other characters are appended.'."\n"
- .'* Other valid values: **1 to 63335**.'."\n",
- 'type' => 'string',
- 'example' => '10',
- ],
- 'Protocol' => [
- 'title' => '要跳转的协议',
- 'description' => 'The redirect protocol. Valid values:'."\n"
- ."\n"
- .'* **${protocol}** (default): If ${protocol} is returned, no other characters are appended.'."\n"
- .'* **HTTP** or **HTTPS**'."\n"
- ."\n"
- .'> HTTPS listeners supports only HTTPS redirects.'."\n",
- 'type' => 'string',
- 'example' => 'HTTP',
- ],
- 'Query' => [
- 'title' => '要跳转的查询字符串',
- 'description' => 'The query string of the URL to which requests are redirected. The query string must be 1 to 128 characters in length, and can contain printable characters, excluding uppercase letters and the following special characters: `# [ ] { } \\ | < > &`.'."\n",
- 'type' => 'string',
- 'example' => 'quert',
- ],
+ 'Host' => ['description' => 'The destination host to which requests are redirected. Valid values:'."\n"
+ ."\n"
+ .'- **${host}** (default): If you set the value to ${host}, you cannot add other characters to the value.'."\n"
+ ."\n"
+ .'- A value that meets the following requirements:'."\n"
+ ."\n"
+ .' - The host must be 3 to 128 characters in length. It can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), and question marks (?).'."\n"
+ ."\n"
+ .' - The host must contain at least one period (.). A period (.) cannot be the first or last character.'."\n"
+ ."\n"
+ .' - The rightmost domain label can contain only letters and wildcard characters. It cannot contain digits or hyphens (-).'."\n"
+ ."\n"
+ .' - The domain labels cannot start or end with a hyphen (-).'."\n"
+ ."\n"
+ .' - You can use asterisks (\\*) and question marks (?) anywhere in a domain label.', 'type' => 'string', 'title' => '', 'example' => 'www.example.com'],
+ 'HttpCode' => ['description' => 'The redirection method. Valid values: **301**, **302**, **303**, **307**, and **308**.', 'type' => 'string', 'title' => '', 'example' => '301'],
+ 'Path' => ['description' => 'The destination path to which requests are redirected. Valid values:'."\n"
+ ."\n"
+ .'- **${path}** (default): You can reference **${host}**, **${protocol}**, and **${port}**. Each variable can be used at most once. You can use these variables together or combine them with a string.'."\n"
+ ."\n"
+ .'- A value that meets the following requirements:'."\n"
+ ."\n"
+ .' - The value must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .' - It must start with a forward slash (/). It can contain letters, digits, and the following special characters: `$-_.+/&~@:`. It cannot contain the following special characters: `“%#;!()[]^,” `. It can contain asterisks (\\*) and question marks (?).', 'type' => 'string', 'title' => '', 'example' => '/test'],
+ 'Port' => ['description' => 'The destination port to which requests are redirected. Valid values:'."\n"
+ ."\n"
+ .'- **${port}** (default): If you set the value to ${port}, you cannot add other characters to the value.'."\n"
+ ."\n"
+ .'- 1 to **63335**.', 'type' => 'string', 'title' => '', 'example' => '10'],
+ 'Protocol' => ['description' => 'The destination protocol to which requests are redirected. Valid values:'."\n"
+ ."\n"
+ .'- **${protocol}** (default): If you set the value to ${protocol}, you cannot add other characters to the value.'."\n"
+ ."\n"
+ .'- **HTTP** or **HTTPS**.'."\n"
+ ."\n"
+ .'> HTTPS listeners support only HTTPS.', 'type' => 'string', 'title' => '', 'example' => 'HTTP'],
+ 'Query' => ['description' => 'The query string of the destination to which requests are redirected. The query string must be 1 to 128 characters in length. It can contain lowercase letters and printable characters. It cannot contain `#[]{}\\|<>&`.', 'type' => 'string', 'title' => '', 'example' => 'quert'],
],
+ 'example' => '',
],
'RemoveHeaderConfig' => [
- 'title' => '去除HTTP标头',
- 'description' => 'The HTTP header to be removed.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration for removing a header.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头',
- 'description' => 'The key of the header to be removed. The header key must be 1 to 40 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The header keys specified in RemoveHeader must be unique.'."\n"
- ."\n"
- .'* If Direction is set to Request, the specified headers are removed from requests. The following header keys are not supported (not case-sensitive): `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, and `authority`.'."\n"
- .'* If Direction is set to Response, the specified headers are removed from responses. The following header keys are not supported (not case-sensitive): `connection`, `upgrade`, `content-length`, and `transfer-encoding`.'."\n",
- 'type' => 'string',
- 'example' => 'key',
- ],
+ 'Key' => ['description' => 'The key of the header to be removed. The key must be 1 to 40 characters in length. It can contain letters, digits, underscores (\\_), and hyphens (-). The header key in RemoveHeader cannot be the same as the key of a header that has been removed.'."\n"
+ ."\n"
+ .'- If Direction is set to Request, you cannot remove the following headers (case-insensitive): `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, and `authority`.'."\n"
+ ."\n"
+ .'- If Direction is set to Response, you cannot remove the following headers (case-insensitive): `connection`, `upgrade`, `content-length`, and `transfer-encoding`.', 'type' => 'string', 'title' => '', 'example' => 'key'],
],
+ 'example' => '',
],
'RewriteConfig' => [
- 'title' => '内部重定向动作配置',
- 'description' => 'The configuration of the rewrite action.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the rewrite.',
'type' => 'object',
'properties' => [
- 'Host' => [
- 'title' => '主机名',
- 'description' => 'The hostname to which requests are redirected. Valid values:'."\n"
- ."\n"
- .'* **${host}** (default): If ${host} is returned, no other characters are appended.'."\n"
- ."\n"
- .'* A custom value. Make sure that the custom value meets the following requirements:'."\n"
- ."\n"
- .' * The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), and question marks (?).'."\n"
- .' * The hostname must contain at least one period (.) but cannot start or end with a period (.).'."\n"
- .' * The rightmost domain label can contain only letters and wildcard characters. It cannot contain digits or hyphens (-).'."\n"
- .' * The domain labels cannot start or end with a hyphen (-).'."\n"
- .' * You can use asterisks (\\*) and question marks (?) anywhere in a domain label as wildcard characters.'."\n",
- 'type' => 'string',
- 'example' => 'www.example.com',
- ],
- 'Path' => [
- 'title' => '路径',
- 'description' => 'The URL to which requests are redirected. The URL must be 1 to 128 characters in length, and can contain letters, digits, asterisks (\\*), question marks (?), and the following special characters: `$ - _ . + / & ~ @ :`. It must start with a forward slash (/) and does not contain the following special characters: `" % # ; ! ( ) [ ] ^ , "`.'."\n",
- 'type' => 'string',
- 'example' => '/tsdf',
- ],
- 'Query' => [
- 'title' => '查询',
- 'description' => 'The query string of the URL to which requests are redirected. The query string must be 1 to 128 characters in length, and can contain printable characters, excluding uppercase letters and the following special characters: `# [ ] { } \\ | < > &`.'."\n",
- 'type' => 'string',
- 'example' => 'quedsa',
- ],
+ 'Host' => ['description' => 'The destination host to which requests are redirected. Valid values:'."\n"
+ ."\n"
+ .'- **${host}** (default): If you set the value to ${host}, you cannot add other characters to the value.'."\n"
+ ."\n"
+ .'- A value that meets the following requirements:'."\n"
+ ."\n"
+ .' - The host must be 3 to 128 characters in length. It can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), and question marks (?).'."\n"
+ ."\n"
+ .' - The host must contain at least one period (.). A period (.) cannot be the first or last character.'."\n"
+ ."\n"
+ .' - The rightmost domain label can contain only letters and wildcard characters. It cannot contain digits or hyphens (-).'."\n"
+ ."\n"
+ .' - The domain labels cannot start or end with a hyphen (-).'."\n"
+ ."\n"
+ .' - You can use asterisks (\\*) and question marks (?) anywhere in a domain label.', 'type' => 'string', 'title' => '', 'example' => 'www.example.com'],
+ 'Path' => ['description' => 'The destination path to which requests are redirected. The path must be 1 to 128 characters in length. It must start with a forward slash (/). It can contain letters, digits, asterisks (\\*), question marks (?), and the following special characters: `$-_.+/&~@:`. It cannot contain `“%#;!()[]^,” `.', 'type' => 'string', 'title' => '', 'example' => '/tsdf'],
+ 'Query' => ['description' => 'The query string of the destination to which requests are redirected. The query string must be 1 to 128 characters in length. It can contain lowercase letters and printable characters. It cannot contain `#[]{}\\|<>&`.', 'type' => 'string', 'title' => '', 'example' => 'quedsa'],
],
+ 'example' => '',
],
'TrafficMirrorConfig' => [
- 'title' => '流量镜像Action对应的配置,type为TrafficMirror时必填且有效',
- 'description' => 'The configuration of traffic mirroring.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of traffic mirroring.',
'type' => 'object',
'properties' => [
- 'TargetType' => [
- 'title' => '流量镜像的目的,可以是服务器组',
- 'description' => 'The destination to which traffic is mirrored. The destination can be a server group.'."\n",
- 'type' => 'string',
- 'example' => 'ForwardGroupMirror',
- ],
+ 'TargetType' => ['description' => 'The destination of traffic mirroring. The value can be \\`ForwardGroupMirror\\`.', 'type' => 'string', 'title' => '', 'example' => 'ForwardGroupMirror'],
'MirrorGroupConfig' => [
- 'title' => 'TargetType为服务器组时必选,目标服务器组',
- 'description' => 'The configuration of the server group to which traffic is mirrored.'."\n",
+ 'title' => '',
+ 'description' => 'The server group to which traffic is mirrored.',
'type' => 'object',
'properties' => [
'ServerGroupTuples' => [
- 'description' => 'The server group to which traffic is mirrored.'."\n",
+ 'description' => 'The server groups to which traffic is mirrored.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
- 'ServerGroupId' => [
- 'description' => 'The ID of the server group.'."\n",
- 'type' => 'string',
- 'example' => 'srg-00mkgijak0w4qgz9****',
- ],
- 'Weight' => [
- 'description' => 'The weight of the server group. Valid values: **0** to **100**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
+ 'ServerGroupId' => ['description' => 'The server group ID.', 'type' => 'string', 'example' => 'sgp-00mkgijak0w4qgz9****', 'title' => ''],
+ 'Weight' => ['description' => 'The weight. Valid values: **0** to **100**.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
],
+ 'title' => '',
+ 'example' => '',
],
],
+ 'example' => '',
],
],
+ 'example' => '',
],
'TrafficLimitConfig' => [
- 'description' => 'The configuration of traffic throttling.'."\n",
+ 'description' => 'The configuration of throttling.',
'type' => 'object',
'properties' => [
- 'QPS' => [
- 'description' => 'The number of queries per second (QPS). Valid values: **1** to **100000**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '4',
- ],
- 'PerIpQps' => [
- 'description' => 'The number of requests per IP address. Valid values: **1 to 100000**.'."\n"
- ."\n"
- .'> If both the **QPS** and **PerIpQps** parameters are specified, the value of the **QPS** parameter is smaller than the value of the PerIpQps parameter.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '80',
- ],
+ 'QPS' => ['description' => 'The queries per second (QPS). Valid values: **1** to **100000**.', 'type' => 'integer', 'format' => 'int32', 'example' => '4', 'title' => ''],
+ 'PerIpQps' => ['description' => 'The QPS of a single IP address. Valid values: 1 to **100000**.'."\n"
+ ."\n"
+ .'> If you set both QPS and **PerIpQps**, the value of **PerIpQps** must be smaller than the value of **QPS**.', 'type' => 'integer', 'format' => 'int32', 'example' => '80', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
- 'Type' => [
- 'title' => '转发规则动作类型',
- 'description' => 'The action. Valid values:'."\n"
- ."\n"
- .'* **ForwardGroup**: distributes requests to multiple vServer groups.'."\n"
- .'* **Redirect**: redirects requests.'."\n"
- .'* **FixedResponse**: returns a custom response.'."\n"
- .'* **Rewrite**: rewrites requests.'."\n"
- .'* **InsertHeader**: inserts headers.'."\n"
- .'* **RemoveHeaderConfig**: removes headers.'."\n"
- .'* **TrafficLimitConfig**: throttles network traffic.'."\n"
- .'* **TrafficMirrorConfig**: mirrors network traffic.'."\n"
- .'* **CorsConfig**: forwards requests based on CORS.'."\n"
- ."\n"
- .'The preceding actions can be classified into two broad types:'."\n"
- ."\n"
- .'* **FinalType**: Each forwarding rule can contain only one FinalType action, which is performed at the end. You can specify only one of **ForwardGroup**, **Redirect**, and **FixedResponse**.'."\n"
- .'* **ExtType**: Each forwarding rule can contain one or more **ExtType** actions, which are performed before the **FinalType** action. If you want to specify an ExtType action, you must also specify a **FinalType** action. You can specify multiple **InsertHeader** actions or one **Rewrite** action.'."\n",
- 'type' => 'string',
- 'example' => 'ForwardGroup',
- ],
+ 'Type' => ['description' => 'The type of the action. Valid values:'."\n"
+ ."\n"
+ .'- **ForwardGroup**: forwards requests to multiple vServer groups.'."\n"
+ ."\n"
+ .'- **Redirect**: redirects requests.'."\n"
+ ."\n"
+ .'- **FixedResponse**: returns a fixed response.'."\n"
+ ."\n"
+ .'- **Rewrite**: rewrites a request.'."\n"
+ ."\n"
+ .'- **InsertHeader**: inserts a header.'."\n"
+ ."\n"
+ .'- **RemoveHeaderConfig**: removes a header.'."\n"
+ ."\n"
+ .'- **TrafficLimitConfig**: throttles traffic.'."\n"
+ ."\n"
+ .'- **TrafficMirrorConfig**: mirrors traffic.'."\n"
+ ."\n"
+ .'- **CorsConfig**: enables cross-origin resource sharing (CORS).', 'type' => 'string', 'title' => '', 'example' => 'ForwardGroup'],
'CorsConfig' => [
- 'title' => '跨域',
- 'description' => 'The CORS configuration.'."\n",
+ 'title' => '',
+ 'description' => 'The CORS configuration.',
'type' => 'object',
'properties' => [
'AllowOrigin' => [
- 'title' => '允许的访问来源',
- 'description' => 'The allowed origins of CORS requests.'."\n",
+ 'title' => '',
+ 'description' => 'The allowed origins.',
'type' => 'array',
- 'items' => [
- 'description' => 'The allowed origin of CORS requests. One or more values are supported. Asterisks (`*`) can be used as wildcard characters. The value cannot be only an asterisk (`*`).'."\n"
- ."\n"
- .'* Each value must start with `http://` or `https://` and must be followed by a valid domain name or a wildcard top-level domain name, such as `*.test.abc.example.com`.'."\n"
- .'* You can specify a port in each value or leave the port empty. Valid values: **1** to **65535**.'."\n",
- 'type' => 'string',
- 'example' => 'http://test.com',
- ],
+ 'items' => ['description' => 'The allowed origins. You can set the value to `*` or specify one or more values. The value cannot be `*`.'."\n"
+ ."\n"
+ .'- A value must start with `http://` or `https://`, followed by a valid domain name or a level-1 wildcard domain name, such as `*.test.abc.example.com`.'."\n"
+ ."\n"
+ .'- You can specify a port or not. The port number must be within the range of **1** to **65535**.', 'type' => 'string', 'example' => 'http://test.com', 'title' => ''],
+ 'example' => '',
],
'AllowMethods' => [
- 'title' => '选择跨域访问时允许的HTTP方法',
- 'description' => 'The allowed HTTP methods of CORS requests.'."\n",
+ 'title' => '',
+ 'description' => 'The allowed HTTP methods for cross-origin requests.',
'type' => 'array',
- 'items' => [
- 'description' => 'The allowed HTTP method of CORS requests. Valid values:'."\n"
- ."\n"
- .'* **GET**'."\n"
- .'* **POST**'."\n"
- .'* **PUT**'."\n"
- .'* **DELETE**'."\n"
- .'* **HEAD**'."\n"
- .'* **OPTIONS**'."\n"
- .'* **PATCH**'."\n",
- 'type' => 'string',
- 'example' => 'GET',
- ],
+ 'items' => ['description' => 'The allowed HTTP methods for cross-origin requests. Valid values:'."\n"
+ ."\n"
+ .'- **GET**'."\n"
+ ."\n"
+ .'- **POST**'."\n"
+ ."\n"
+ .'- **PUT**'."\n"
+ ."\n"
+ .'- **DELETE**'."\n"
+ ."\n"
+ .'- **HEAD**'."\n"
+ ."\n"
+ .'- **OPTIONS**'."\n"
+ ."\n"
+ .'- **PATCH**', 'type' => 'string', 'example' => 'GET', 'title' => ''],
+ 'example' => '',
],
'AllowHeaders' => [
- 'title' => '允许跨域的Header列表',
- 'description' => 'The allowed headers of CORS requests.'."\n",
+ 'title' => '',
+ 'description' => 'The allowed headers for cross-origin requests.',
'type' => 'array',
- 'items' => [
- 'description' => 'The allowed headers of CORS requests. One or more values are supported. Asterisks (`*`) can be used as wildcard characters. Multiple values are separated by commas (,). Each value can be up to 32 characters in length, and can contain only letters and digits. It cannot start or end with an underscore (\\_) or a hyphen (-).'."\n",
- 'type' => 'string',
- 'example' => 'test_123',
- ],
+ 'items' => ['description' => 'The allowed headers for cross-origin requests. You can set the value to `*` or specify one or more values. Multiple values are separated by commas (,). A value can contain letters, digits, and the following special characters: underscores (\\_) and hyphens (-). An underscore (\\_) or a hyphen (-) cannot be the first or last character. The value can be up to 32 characters in length.', 'type' => 'string', 'example' => 'test_123', 'title' => ''],
+ 'example' => '',
],
'ExposeHeaders' => [
- 'title' => '允许暴露的Header列表',
- 'description' => 'The headers that can be exposed.'."\n",
+ 'title' => '',
+ 'description' => 'The headers that can be exposed to the browser.',
'type' => 'array',
- 'items' => [
- 'description' => 'The headers that can be exposed. One or more values are supported. Asterisks (`*`) can be used as wildcard characters. Multiple values are separated by commas (,). Each value can be up to 32 characters in length, and can contain only letters and digits. It cannot start or end with an underscore (\\_) or a hyphen (-).'."\n",
- 'type' => 'string',
- 'example' => 'test_123',
- ],
- ],
- 'AllowCredentials' => [
- 'title' => '是否允许携带凭证信息',
- 'description' => 'Indicates whether credentials can be carried in CORS requests. Valid values:'."\n"
- ."\n"
- .'* **on**'."\n"
- .'* **off**'."\n",
- 'type' => 'string',
- 'example' => 'on',
- ],
- 'MaxAge' => [
- 'title' => '预检请求在浏览器的最大缓存时间',
- 'description' => 'The maximum cache time of dry runs in the browser. Unit: seconds.'."\n"
- ."\n"
- .'Valid values: **-1** to **172800**.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '1000',
+ 'items' => ['description' => 'The headers that can be exposed to the browser. You can set the value to `*` or specify one or more values. Multiple values are separated by commas (,). A value can contain letters, digits, and the following special characters: underscores (\\_) and hyphens (-). An underscore (\\_) or a hyphen (-) cannot be the first or last character. The value can be up to 32 characters in length.', 'type' => 'string', 'example' => 'test_123', 'title' => ''],
+ 'example' => '',
],
+ 'AllowCredentials' => ['description' => 'Specifies whether the browser can send credentials. Valid values:'."\n"
+ ."\n"
+ .'- **on**'."\n"
+ ."\n"
+ .'- **off**', 'type' => 'string', 'title' => '', 'example' => 'on'],
+ 'MaxAge' => ['description' => 'The maximum cache time of preflight requests in the browser. Unit: seconds.'."\n"
+ ."\n"
+ .'Valid values: **-1** to **172800**.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1000'],
],
+ 'example' => '',
],
],
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
],
'RuleConditions' => [
- 'title' => '转发规则条件',
- 'description' => 'The conditions of the forwarding rule.'."\n",
+ 'title' => '',
+ 'description' => 'The conditions of the forwarding rule.',
'type' => 'array',
'items' => [
- 'description' => 'The match condition of the forwarding rule.'."\n",
+ 'description' => 'The condition of the forwarding rule.',
'type' => 'object',
'properties' => [
'CookieConfig' => [
- 'title' => 'Cookie条件配置',
- 'description' => 'The key-value pairs of the cookie.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the cookie.',
'type' => 'object',
'properties' => [
'Values' => [
- 'title' => 'Cookie键值对列表',
- 'description' => 'The cookie value.'."\n",
+ 'title' => '',
+ 'description' => 'The cookie values.',
'type' => 'array',
'items' => [
- 'description' => 'The value of the cookie.'."\n",
+ 'description' => 'The cookie value.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => 'Cookie条件键',
- 'description' => 'The cookie key. The cookie key must be 1 to 100 characters in length, and can contain lowercase letters, printable ASCII characters, asterisks (\\*), and question marks (?). It cannot contain space characters or the following special characters: `# [ ] { } \\ | < > &`.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- 'Value' => [
- 'title' => 'Cookie条件值',
- 'description' => 'The cookie value. The cookie value must be 1 to 128 characters in length, and can contain lowercase letters, printable ASCII characters, asterisks (\\*), and question marks (?). It cannot contain space characters or the following special characters: `# [ ] { } \\ | < > &`.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
+ 'Key' => ['description' => 'The key of the cookie. The key must be 1 to 100 characters in length. It can contain lowercase letters, printable characters, asterisks (\\*), and question marks (?). It cannot contain spaces or the following special characters: `#[]{}\\|<>&`.', 'type' => 'string', 'title' => '', 'example' => 'test'],
+ 'Value' => ['description' => 'The value of the cookie. The value must be 1 to 128 characters in length. It can contain lowercase letters, printable characters, asterisks (\\*), and question marks (?). It cannot contain spaces or the following special characters: `#[]{}\\|<>&`.', 'type' => 'string', 'title' => '', 'example' => 'test'],
],
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
],
],
+ 'example' => '',
],
'HeaderConfig' => [
- 'title' => 'HTTP标头条件配置',
- 'description' => 'The configuration of the header.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the header.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => 'HTTP标头键',
- 'description' => 'The key of the header. The header key must be 1 to 40 characters in length. It can contain letters, digits, hyphens (-), and underscores (\\_). Cookie and Host are not supported.'."\n",
- 'type' => 'string',
- 'example' => 'Port',
- ],
+ 'Key' => ['description' => 'The key of the header. The key must be 1 to 40 characters in length. It can contain letters, digits, hyphens (-), and underscores (\\_). You cannot set the key to Cookie or Host.', 'type' => 'string', 'title' => '', 'example' => 'Port'],
'Values' => [
- 'title' => 'HTTP标头值列表',
- 'description' => 'The value of the header.'."\n",
+ 'title' => '',
+ 'description' => 'The header values.',
'type' => 'array',
- 'items' => [
- 'description' => 'The value of the header. The header value must be 1 to 128 characters in length. It can contain printable characters whose ASCII values are `larger than or equal to 32 and smaller than 127`, lowercase letters, asterisks (\\*), and question marks (?). The value cannot start or end with a space character.'."\n",
- 'type' => 'string',
- 'example' => '5006',
- ],
+ 'items' => ['description' => 'The value of the header. The value must be 1 to 128 characters in length. It can contain printable characters with ASCII values from `ch >= 32 && ch < 127`, lowercase letters, asterisks (\\*), and question marks (?). The value cannot start or end with a space.', 'type' => 'string', 'example' => '5006', 'title' => ''],
+ 'example' => '',
],
],
+ 'example' => '',
],
'HostConfig' => [
- 'title' => '主机名条件配置',
- 'description' => 'The configuration of the hosts.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the host.',
'type' => 'object',
'properties' => [
'Values' => [
- 'title' => '主机名列表',
- 'description' => 'The hostnames.'."\n",
+ 'title' => '',
+ 'description' => 'The hostnames.',
'type' => 'array',
- 'items' => [
- 'description' => 'The hostname. The hostname must meet the following requirements:'."\n"
- ."\n"
- .'* The domain name must be 3 to 128 characters in length, and can contain letters, digits, hyphens (-), periods (.), asterisks (\\*), and question marks (?).'."\n"
- .'* The hostname must contain at least one period (.) but cannot start or end with a period (.).'."\n"
- .'* The rightmost domain label can contain only letters, asterisks (\\*), and question marks (?), and cannot contain digits or hyphens (-).'."\n"
- .'* The domain labels cannot start or end with a hyphen (-). You can specify asterisks (∗) and question marks (?) anywhere in a domain label.'."\n",
- 'type' => 'string',
- 'example' => 'www.example.com',
- ],
+ 'items' => ['description' => 'The hostname. Naming conventions:'."\n"
+ ."\n"
+ .'- The domain name must be 3 to 128 characters in length. It can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), and question marks (?).'."\n"
+ ."\n"
+ .'- The domain name must contain at least one period (.). A period (.) cannot be the first or last character.'."\n"
+ ."\n"
+ .'- The rightmost domain label can contain only letters, asterisks (\\*), and question marks (?). It cannot contain digits or hyphens (-).'."\n"
+ ."\n"
+ .'- The other domain labels cannot start or end with a hyphen (-). You can use asterisks (\\*) and question marks (?) anywhere in a domain label.', 'type' => 'string', 'example' => 'www.example.com', 'title' => ''],
+ 'example' => '',
],
],
+ 'example' => '',
],
'MethodConfig' => [
- 'title' => 'HTTP请求方法条件配置',
- 'description' => 'The configurations of the request methods.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the request method.',
'type' => 'object',
'properties' => [
'Values' => [
- 'title' => 'HTTP请求方法列表',
- 'description' => 'The request methods.'."\n",
+ 'title' => '',
+ 'description' => 'The request methods.',
'type' => 'array',
- 'items' => [
- 'description' => 'The request method.'."\n"
- ."\n"
- .'Valid values: **HEAD**, **GET**, **POST**, **OPTIONS**, **PUT**, **PATCH**, and **DELETE**.'."\n",
- 'type' => 'string',
- 'example' => 'PUT',
- ],
+ 'items' => ['description' => 'The request method.'."\n"
+ ."\n"
+ .'Valid values: **HEAD**, **GET**, **POST**, **OPTIONS**, **PUT**, **PATCH**, and **DELETE**.', 'type' => 'string', 'example' => 'PUT', 'title' => ''],
+ 'example' => '',
],
],
+ 'example' => '',
],
'PathConfig' => [
- 'title' => '路径条件配置',
- 'description' => 'The configurations of the forwarding URLs.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the path.',
'type' => 'object',
'properties' => [
'Values' => [
- 'title' => '路径条件列表',
- 'description' => 'The URLs to which requests are forwarded.'."\n",
+ 'title' => '',
+ 'description' => 'The paths.',
'type' => 'array',
- 'items' => [
- 'description' => 'The URL to which requests are forwarded. The URL must be 1 to 128 characters in length, and can contain letters, digits, asterisks (\\*), question marks (?), and the following special characters: `$ - _ . + / & ~ @ :`. It must start with a forward slash (/) and cannot contain the following special characters: `" % # ; ! ( ) [ ] ^ , "`.'."\n",
- 'type' => 'string',
- 'example' => '/test',
- ],
+ 'items' => ['description' => 'The path. The path must be 1 to 128 characters in length. It must start with a forward slash (/). It can contain letters, digits, asterisks (\\*), question marks (?), and the following special characters: `$-_.+/&~@:`. It cannot contain `“%#;!()[]^,” `.', 'type' => 'string', 'example' => '/test', 'title' => ''],
+ 'example' => '',
],
],
+ 'example' => '',
],
'QueryStringConfig' => [
- 'title' => '查询字符串条件配置',
- 'description' => 'The configurations of the query strings.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the query string.',
'type' => 'object',
'properties' => [
'Values' => [
- 'title' => '查询字符串条件键值对列表',
- 'description' => 'The query string.'."\n",
+ 'title' => '',
+ 'description' => 'The query strings.',
'type' => 'array',
'items' => [
- 'description' => 'The query string.'."\n",
+ 'description' => 'The query string.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => '查询字符串条件键',
- 'description' => 'They key of the query string. The key must be 1 to 100 characters in length, and can contain lowercase letters, printable ASCII characters, asterisks (\\*), and question marks (?). It cannot contain space characters or the following special characters: `# [ ] { } \\ | < > &`.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- 'Value' => [
- 'title' => '查询字符串条件值',
- 'description' => 'The value of the query string. The value must be 1 to 128 characters in length, and can contain lowercase letters, printable ASCII characters, asterisks (\\*), and question marks (?). It cannot contain space characters or the following special characters: `# [ ] { } \\ | < > &`.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
+ 'Key' => ['description' => 'The key of the query string. The key must be 1 to 100 characters in length. It can contain lowercase letters, printable characters, asterisks (\\*), and question marks (?). It cannot contain spaces or the following special characters: `#[]{}\\|<>&`.', 'type' => 'string', 'title' => '', 'example' => 'test'],
+ 'Value' => ['description' => 'The value of the query string. The value must be 1 to 128 characters in length. It can contain lowercase letters, printable characters, asterisks (\\*), and question marks (?). It cannot contain spaces or the following special characters: `#[]{}\\|<>&`.', 'type' => 'string', 'title' => '', 'example' => 'test'],
],
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
],
],
+ 'example' => '',
],
'SourceIpConfig' => [
- 'title' => '源IP业务流量匹配',
- 'description' => 'Traffic matching based on source IP addresses.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the source IP address.',
'type' => 'object',
'properties' => [
'Values' => [
- 'title' => '需要匹配的源IP列表',
- 'description' => 'The source IP addresses.'."\n",
+ 'title' => '',
+ 'description' => 'The source IP addresses to match.',
'type' => 'array',
- 'items' => [
- 'description' => 'You can specify one or more IP addresses, including CIDR blocks.'."\n"
- ."\n"
- .'Each forwarding rule supports at most five source IP addresses, including CIDR blocks.'."\n",
- 'type' => 'string',
- 'example' => '192.168.XX.XX/32',
- ],
+ 'items' => ['description' => 'Specify one or more IP addresses or CIDR blocks.'."\n"
+ ."\n"
+ .'You can specify up to five source IP addresses for each forwarding rule.', 'type' => 'string', 'example' => '192.168.XX.XX/32', 'title' => ''],
+ 'example' => '',
],
],
+ 'example' => '',
],
'ResponseStatusCodeConfig' => [
- 'title' => '返回状态码条件',
- 'description' => 'The configurations of the response status codes.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the response status code.',
'type' => 'object',
'properties' => [
'Values' => [
- 'title' => '返回状态码条件列表',
- 'description' => 'The response status codes.'."\n",
+ 'title' => '',
+ 'description' => 'The response status codes.',
'type' => 'array',
- 'items' => [
- 'description' => 'The response status code.'."\n",
- 'type' => 'string',
- 'example' => '200',
- ],
+ 'items' => ['description' => 'The response status code.', 'type' => 'string', 'example' => '200', 'title' => ''],
+ 'example' => '',
],
],
+ 'example' => '',
],
'ResponseHeaderConfig' => [
- 'title' => '返回HTTP标头',
- 'description' => 'The HTTP header in responses.'."\n",
+ 'title' => '',
+ 'description' => 'The configuration of the response HTTP header.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => '返回HTTP标头键',
- 'description' => 'The key of the HTTP header. The header key must be 1 to 40 characters in length, It can contain letters, digits, hyphens (-), and underscores (\\_). Cookie and Host are not supported.'."\n",
- 'type' => 'string',
- 'example' => 'key',
- ],
+ 'Key' => ['description' => 'The key of the response HTTP header. The key must be 1 to 40 characters in length. It can contain letters, digits, hyphens (-), and underscores (\\_). You cannot set the key to Cookie or Host.', 'type' => 'string', 'title' => '', 'example' => 'key'],
'Values' => [
- 'title' => '返回HTTP标头值',
- 'description' => 'The values of the HTTP header.'."\n",
+ 'title' => '',
+ 'description' => 'The values of the response HTTP header.',
'type' => 'array',
- 'items' => [
- 'description' => 'The value of the HTTP header. The header value must be 1 to 128 characters in length,'."\n",
- 'type' => 'string',
- 'example' => 'value',
- ],
+ 'items' => ['description' => 'The value of the response HTTP header. The value must be 1 to 128 characters in length.', 'type' => 'string', 'example' => 'value', 'title' => ''],
+ 'example' => '',
],
],
+ 'example' => '',
],
- 'Type' => [
- 'title' => '条件类型',
- 'description' => 'The type of forwarding rule. Valid values:'."\n"
- ."\n"
- .'* **Host**: Responses are forwarded based on hosts.'."\n"
- .'* **Path**: Responses are forwarded based on URLs.'."\n"
- .'* **Header**: Responses are forwarded based on HTTP headers.'."\n"
- .'* **QueryString**: Responses are forwarded based on query strings.'."\n"
- .'* **Method**: Responses are forwarded based on request methods.'."\n"
- .'* **Cookie**: Responses are forwarded based on cookies.'."\n"
- .'* **SourceIp**: Responses are forwarded based on source IP addresses.'."\n",
- 'type' => 'string',
- 'example' => 'Host',
- ],
+ 'Type' => ['description' => 'The type of the forwarding rule. Valid values:'."\n"
+ ."\n"
+ .'- **Host**: a host.'."\n"
+ ."\n"
+ .'- **Path**: a path.'."\n"
+ ."\n"
+ .'- **Header**: an HTTP header.'."\n"
+ ."\n"
+ .'- **QueryString**: a query string.'."\n"
+ ."\n"
+ .'- **Method**: a request method.'."\n"
+ ."\n"
+ .'- **Cookie**: a cookie.'."\n"
+ ."\n"
+ .'- **SourceIp**: a source IP address.', 'type' => 'string', 'title' => '', 'example' => 'Host'],
],
'required' => true,
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
],
- 'RuleId' => [
- 'title' => '转发规则标识',
- 'description' => 'The ID of the forwarding rule.'."\n",
- 'type' => 'string',
- 'example' => 'rule-bpn0kn908w4nbw****',
- ],
- 'RuleName' => [
- 'title' => '转发规则名称',
- 'description' => 'The name of the forwarding rule. The name must be 2 to 128 letters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n",
- 'type' => 'string',
- 'example' => 'rule-instance-test',
- ],
- 'RuleStatus' => [
- 'title' => '转发规则状态',
- 'description' => 'The status of the forwarding rule. Valid values:'."\n"
- ."\n"
- .'* **Provisioning**: The forwarding rule is being created.'."\n"
- .'* **Configuring**: The forwarding rule is being modified.'."\n"
- .'* **Available**: The forwarding rule is available.'."\n",
- 'type' => 'string',
- 'example' => 'Available',
- ],
- 'Direction' => [
- 'title' => '转发规则方向',
- 'description' => 'The direction to which the forwarding rule is applied. Valid values:'."\n"
- ."\n"
- .'* Request (default): The forwarding rule is applied to requests. The forwarding action is performed on packets that are forwarded from clients to ALB.'."\n"
- .'* Responses: The forwarding rule is applied to responses. The forwarding action is performed on packets that are returned from backend servers to ALB.'."\n"
- ."\n"
- .'> Basic ALB instances support only the Response direction.'."\n",
- 'type' => 'string',
- 'example' => 'Request',
- ],
+ 'RuleId' => ['description' => 'The forwarding rule ID.', 'type' => 'string', 'title' => '', 'example' => 'rule-bpn0kn908w4nbw****'],
+ 'RuleName' => ['description' => 'The name of the forwarding rule. The name must be 2 to 128 characters in length, start with a letter or a Chinese character, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).', 'type' => 'string', 'title' => '', 'example' => 'rule-instance-test'],
+ 'RuleStatus' => ['description' => 'The status of the forwarding rule. Valid values:'."\n"
+ ."\n"
+ .'- **Provisioning**: The rule is being created.'."\n"
+ ."\n"
+ .'- **Configuring**: The rule is being modified.'."\n"
+ ."\n"
+ .'- **Available**: The rule is running.', 'type' => 'string', 'title' => '', 'example' => 'Available'],
+ 'Direction' => ['description' => 'The direction of the forwarding rule. Valid values:'."\n"
+ ."\n"
+ .'- Request (default): The forwarding rule is applied to requests. ALB matches conditions in the requests sent from clients and performs the specified actions.'."\n"
+ ."\n"
+ .'- Response: The forwarding rule is applied to responses. ALB matches conditions in the responses sent from backend servers and performs the specified actions.'."\n"
+ ."\n"
+ .'> Basic ALB instances do not support the Response type.', 'type' => 'string', 'title' => '', 'example' => 'Request'],
'Tags' => [
- 'description' => 'The tags.'."\n",
+ 'description' => 'The tags.',
'type' => 'array',
'items' => [
- 'description' => '',
+ 'description' => 'The tag.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The tag key. The tag key can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'example' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'example' => 'product',
- ],
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length. It cannot start with \\`aliyun\\` or \\`acs:\\`, and cannot contain \\`http\\://\\` or \\`https\\://\\`.', 'type' => 'string', 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length. It cannot start with \\`aliyun\\` or \\`acs:\\`, and cannot contain \\`http\\://\\` or \\`https\\://\\`.', 'type' => 'string', 'example' => 'product', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
+ 'title' => '',
+ 'example' => '',
],
],
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
],
- 'TotalCount' => [
- 'title' => '本次请求条件下的数据总量。',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1000',
- ],
+ 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1000'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876F******\\",\\n \\"Rules\\": [\\n {\\n \\"ListenerId\\": \\"lsn-i35udpz3pxsmnf****\\",\\n \\"LoadBalancerId\\": \\"alb-x30o38azsuj0sx****\\",\\n \\"Priority\\": 1,\\n \\"RuleActions\\": [\\n {\\n \\"FixedResponseConfig\\": {\\n \\"Content\\": \\"dssacav\\",\\n \\"ContentType\\": \\"text/plain\\",\\n \\"HttpCode\\": \\"HTTP_2xx\\"\\n },\\n \\"ForwardGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"Weight\\": 2\\n }\\n ],\\n \\"ServerGroupStickySession\\": {\\n \\"Enabled\\": true,\\n \\"Timeout\\": 100\\n }\\n },\\n \\"InsertHeaderConfig\\": {\\n \\"Key\\": \\"key\\",\\n \\"Value\\": \\"ClientSrcPort\\",\\n \\"ValueType\\": \\"SystemDefined\\"\\n },\\n \\"Order\\": 1,\\n \\"RedirectConfig\\": {\\n \\"Host\\": \\"www.example.com\\",\\n \\"HttpCode\\": \\"301\\",\\n \\"Path\\": \\"/test\\",\\n \\"Port\\": \\"10\\",\\n \\"Protocol\\": \\"HTTP\\",\\n \\"Query\\": \\"quert\\"\\n },\\n \\"RemoveHeaderConfig\\": {\\n \\"Key\\": \\"key\\"\\n },\\n \\"RewriteConfig\\": {\\n \\"Host\\": \\"www.example.com\\",\\n \\"Path\\": \\"/tsdf\\",\\n \\"Query\\": \\"quedsa\\"\\n },\\n \\"TrafficMirrorConfig\\": {\\n \\"TargetType\\": \\"ForwardGroupMirror\\",\\n \\"MirrorGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-00mkgijak0w4qgz9****\\",\\n \\"Weight\\": 2\\n }\\n ]\\n }\\n },\\n \\"TrafficLimitConfig\\": {\\n \\"QPS\\": 4,\\n \\"PerIpQps\\": 80\\n },\\n \\"Type\\": \\"ForwardGroup\\",\\n \\"CorsConfig\\": {\\n \\"AllowOrigin\\": [\\n \\"http://test.com\\"\\n ],\\n \\"AllowMethods\\": [\\n \\"GET\\"\\n ],\\n \\"AllowHeaders\\": [\\n \\"test_123\\"\\n ],\\n \\"ExposeHeaders\\": [\\n \\"test_123\\"\\n ],\\n \\"AllowCredentials\\": \\"on\\",\\n \\"MaxAge\\": 1000\\n }\\n }\\n ],\\n \\"RuleConditions\\": [\\n {\\n \\"CookieConfig\\": {\\n \\"Values\\": [\\n {\\n \\"Key\\": \\"test\\",\\n \\"Value\\": \\"test\\"\\n }\\n ]\\n },\\n \\"HeaderConfig\\": {\\n \\"Key\\": \\"Port\\",\\n \\"Values\\": [\\n \\"5006\\"\\n ]\\n },\\n \\"HostConfig\\": {\\n \\"Values\\": [\\n \\"www.example.com\\"\\n ]\\n },\\n \\"MethodConfig\\": {\\n \\"Values\\": [\\n \\"PUT\\"\\n ]\\n },\\n \\"PathConfig\\": {\\n \\"Values\\": [\\n \\"/test\\"\\n ]\\n },\\n \\"QueryStringConfig\\": {\\n \\"Values\\": [\\n {\\n \\"Key\\": \\"test\\",\\n \\"Value\\": \\"test\\"\\n }\\n ]\\n },\\n \\"SourceIpConfig\\": {\\n \\"Values\\": [\\n \\"192.168.XX.XX/32\\"\\n ]\\n },\\n \\"ResponseStatusCodeConfig\\": {\\n \\"Values\\": [\\n \\"200\\"\\n ]\\n },\\n \\"ResponseHeaderConfig\\": {\\n \\"Key\\": \\"key\\",\\n \\"Values\\": [\\n \\"value\\"\\n ]\\n },\\n \\"Type\\": \\"Host\\"\\n }\\n ],\\n \\"RuleId\\": \\"rule-bpn0kn908w4nbw****\\",\\n \\"RuleName\\": \\"rule-instance-test\\",\\n \\"RuleStatus\\": \\"Available\\",\\n \\"Direction\\": \\"Request\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"<ListRulesResponse>\\n <MaxResults>50</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <Rules>\\n <ListenerId>lsn-i35udpz3pxsmnf****</ListenerId>\\n <LoadBalancerId>alb-x30o38azsuj0sx****</LoadBalancerId>\\n <Priority>1</Priority>\\n <RuleActions>\\n <FixedResponseConfig>\\n <Content>dssacav</Content>\\n <ContentType>text/plain</ContentType>\\n <HttpCode>HTTP_2xx</HttpCode>\\n </FixedResponseConfig>\\n <ForwardGroupConfig>\\n <ServerGroupTuples>\\n <ServerGroupId>sg-atstuj3rtoptyui****</ServerGroupId>\\n <Weight>2</Weight>\\n </ServerGroupTuples>\\n </ForwardGroupConfig>\\n <InsertHeaderConfig>\\n <Key>key</Key>\\n <Value>ClientSrcPort</Value>\\n <ValueType>SystemDefined</ValueType>\\n </InsertHeaderConfig>\\n <Order>1</Order>\\n <RedirectConfig>\\n <Host>www.example.com</Host>\\n <HttpCode>301</HttpCode>\\n <Path>/test</Path>\\n <Port>10</Port>\\n <Protocol>HTTP</Protocol>\\n <Query>quert</Query>\\n </RedirectConfig>\\n <RewriteConfig>\\n <Host>www.example.com</Host>\\n <Path>/tsdf</Path>\\n <Query>quedsa</Query>\\n </RewriteConfig>\\n <TrafficMirrorConfig>\\n <MirrorGroupConfig>\\n <ServerGroupTuples>\\n <ServerGroupId>srg-00mkgijak0w4qgz9****</ServerGroupId>\\n <Weight>2</Weight>\\n </ServerGroupTuples>\\n </MirrorGroupConfig>\\n </TrafficMirrorConfig>\\n <TrafficLimitConfig>\\n <QPS>4</QPS>\\n <PerIpQps>80</PerIpQps>\\n </TrafficLimitConfig>\\n <Type>ForwardGroup</Type>\\n <CorsConfig>\\n <AllowOrigin>http://test.com</AllowOrigin>\\n <AllowMethods>GET</AllowMethods>\\n <AllowHeaders>test_123</AllowHeaders>\\n <ExposeHeaders>test_123</ExposeHeaders>\\n <AllowCredentials>on</AllowCredentials>\\n <MaxAge>1000</MaxAge>\\n </CorsConfig>\\n </RuleActions>\\n <RuleConditions>\\n <CookieConfig>\\n <Values>\\n <Key>test</Key>\\n <Value>test</Value>\\n </Values>\\n </CookieConfig>\\n <HeaderConfig>\\n <Key>Port</Key>\\n <Values>5006</Values>\\n </HeaderConfig>\\n <HostConfig>\\n <Values>www.example.com</Values>\\n </HostConfig>\\n <MethodConfig>\\n <Values>PUT</Values>\\n </MethodConfig>\\n <PathConfig>\\n <Values>/test</Values>\\n </PathConfig>\\n <QueryStringConfig>\\n <Values>\\n <Key>test</Key>\\n <Value>test</Value>\\n </Values>\\n </QueryStringConfig>\\n <SourceIpConfig>\\n <Values>192.168.XX.XX/32</Values>\\n </SourceIpConfig>\\n <Type>Host</Type>\\n </RuleConditions>\\n <RuleId>rule-bpn0kn908w4nbw****</RuleId>\\n <RuleName>rule-instance-test</RuleName>\\n <RuleStatus>Available</RuleStatus>\\n </Rules>\\n <TotalCount>1000</TotalCount>\\n</ListRulesResponse>","errorExample":""}]',
'title' => 'ListRules',
- ],
- 'AssociateAdditionalCertificatesWithListener' => [
- 'summary' => 'Associates additional certificates with a listener.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ 'summary' => 'This operation queries the forwarding rules in a specified region.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListRules',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876F******\\",\\n \\"Rules\\": [\\n {\\n \\"ListenerId\\": \\"lsn-i35udpz3pxsmnf****\\",\\n \\"LoadBalancerId\\": \\"alb-x30o38azsuj0sx****\\",\\n \\"Priority\\": 1,\\n \\"RuleActions\\": [\\n {\\n \\"FixedResponseConfig\\": {\\n \\"Content\\": \\"dssacav\\",\\n \\"ContentType\\": \\"text/plain\\",\\n \\"HttpCode\\": \\"HTTP_2xx\\"\\n },\\n \\"ForwardGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"Weight\\": 2\\n }\\n ],\\n \\"ServerGroupStickySession\\": {\\n \\"Enabled\\": false,\\n \\"Timeout\\": 100\\n }\\n },\\n \\"InsertHeaderConfig\\": {\\n \\"Key\\": \\"key\\",\\n \\"Value\\": \\"ClientSrcPort\\",\\n \\"ValueType\\": \\"SystemDefined\\"\\n },\\n \\"Order\\": 1,\\n \\"RedirectConfig\\": {\\n \\"Host\\": \\"www.example.com\\",\\n \\"HttpCode\\": \\"301\\",\\n \\"Path\\": \\"/test\\",\\n \\"Port\\": \\"10\\",\\n \\"Protocol\\": \\"HTTP\\",\\n \\"Query\\": \\"quert\\"\\n },\\n \\"RemoveHeaderConfig\\": {\\n \\"Key\\": \\"key\\"\\n },\\n \\"RewriteConfig\\": {\\n \\"Host\\": \\"www.example.com\\",\\n \\"Path\\": \\"/tsdf\\",\\n \\"Query\\": \\"quedsa\\"\\n },\\n \\"TrafficMirrorConfig\\": {\\n \\"TargetType\\": \\"ForwardGroupMirror\\",\\n \\"MirrorGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-00mkgijak0w4qgz9****\\",\\n \\"Weight\\": 2\\n }\\n ]\\n }\\n },\\n \\"TrafficLimitConfig\\": {\\n \\"QPS\\": 4,\\n \\"PerIpQps\\": 80\\n },\\n \\"Type\\": \\"ForwardGroup\\",\\n \\"CorsConfig\\": {\\n \\"AllowOrigin\\": [\\n \\"http://test.com\\"\\n ],\\n \\"AllowMethods\\": [\\n \\"GET\\"\\n ],\\n \\"AllowHeaders\\": [\\n \\"test_123\\"\\n ],\\n \\"ExposeHeaders\\": [\\n \\"test_123\\"\\n ],\\n \\"AllowCredentials\\": \\"on\\",\\n \\"MaxAge\\": 1000\\n }\\n }\\n ],\\n \\"RuleConditions\\": [\\n {\\n \\"CookieConfig\\": {\\n \\"Values\\": [\\n {\\n \\"Key\\": \\"test\\",\\n \\"Value\\": \\"test\\"\\n }\\n ]\\n },\\n \\"HeaderConfig\\": {\\n \\"Key\\": \\"Port\\",\\n \\"Values\\": [\\n \\"5006\\"\\n ]\\n },\\n \\"HostConfig\\": {\\n \\"Values\\": [\\n \\"www.example.com\\"\\n ]\\n },\\n \\"MethodConfig\\": {\\n \\"Values\\": [\\n \\"PUT\\"\\n ]\\n },\\n \\"PathConfig\\": {\\n \\"Values\\": [\\n \\"/test\\"\\n ]\\n },\\n \\"QueryStringConfig\\": {\\n \\"Values\\": [\\n {\\n \\"Key\\": \\"test\\",\\n \\"Value\\": \\"test\\"\\n }\\n ]\\n },\\n \\"SourceIpConfig\\": {\\n \\"Values\\": [\\n \\"192.168.XX.XX/32\\"\\n ]\\n },\\n \\"ResponseStatusCodeConfig\\": {\\n \\"Values\\": [\\n \\"200\\"\\n ]\\n },\\n \\"ResponseHeaderConfig\\": {\\n \\"Key\\": \\"key\\",\\n \\"Values\\": [\\n \\"value\\"\\n ]\\n },\\n \\"Type\\": \\"Host\\"\\n }\\n ],\\n \\"RuleId\\": \\"rule-bpn0kn908w4nbw****\\",\\n \\"RuleName\\": \\"rule-instance-test\\",\\n \\"RuleStatus\\": \\"Available\\",\\n \\"Direction\\": \\"Request\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 1000\\n}","type":"json"}]',
+ ],
+ 'ListSecurityPolicies' => [
+ 'summary' => 'Queries custom security policies in a region.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- ],
+ 'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
- 'name' => 'ListenerId',
+ 'name' => 'ResourceGroupId',
'in' => 'query',
- 'schema' => [
- 'title' => '监听Id',
- 'description' => 'The listener ID. This parameter is supported only by HTTPS and QUIC listeners.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
+ 'schema' => ['title' => '', 'description' => 'The resource group ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'],
],
[
- 'name' => 'Certificates',
+ 'name' => 'NextToken',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* You do not need to specify this parameter for the first request.'."\n"
+ .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '50', 'default' => '20'],
+ ],
+ [
+ 'name' => 'SecurityPolicyNames',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '证书列表',
- 'description' => 'The extended validation certificates that you want to add to the listener.'."\n",
+ 'title' => '',
+ 'description' => 'The names of the security policies. You can specify up to 10 names.'."\n",
'type' => 'array',
- 'items' => [
- 'description' => 'The additional certificate.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'CertificateId' => [
- 'title' => '证书Id',
- 'description' => 'The ID of the certificate. Only server certificates are supported.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cert-123',
- ],
- ],
- 'required' => false,
- ],
- 'required' => true,
- 'maxItems' => 15,
+ 'items' => ['description' => 'The name of the security policy. You can specify up to 10 names.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test-secrity', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 10,
'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'SecurityPolicyIds',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等Token',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The security policy IDs. You can specify at most 20 security policies.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of the security policy that you want to query. You can specify at most 20 security policy IDs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sp-bp1bpn0kn9****', 'title' => ''],
'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'Tag',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => 'dryRun',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
+ 'description' => 'The tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key. 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' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. 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' => 'product', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => false,
- 'example' => 'true',
+ 'title' => '',
+ 'example' => '',
],
],
],
@@ -15962,170 +10087,160 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The operation to add an additional certificate to an HTTPS or QUIC listener.'."\n",
+ 'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
+ 'MaxResults' => ['title' => '', 'description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '50'],
+ 'NextToken' => ['title' => '', 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* If **NextToken** is empty, no next page exists.'."\n"
+ .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'],
+ 'SecurityPolicies' => [
+ 'title' => '',
+ 'description' => 'The supported security policies.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The supported security policy.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Ciphers' => [
+ 'title' => '',
+ 'description' => 'The supported cipher suites.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The supported cipher suites are determined by the value of **TLSVersions**.'."\n"
+ ."\n"
+ .'* TLSv1.0 and TLSv1.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"
+ .'* TLSv1.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"
+ .'* TLSv1.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', 'title' => ''],
+ 'example' => '',
+ ],
+ 'ResourceGroupId' => ['title' => '', 'description' => 'The ID of the resource group.'."\n", 'type' => 'string', 'example' => 'rg-atstuj3rtop****'],
+ 'SecurityPolicyId' => ['title' => '', 'description' => 'The ID of the security policy.'."\n", 'type' => 'string', 'example' => 'sp-9cdjz6o******'],
+ 'SecurityPolicyName' => ['title' => '', 'description' => 'The name of the security policy.'."\n", 'type' => 'string', 'example' => 'test-secrity'],
+ 'SecurityPolicyStatus' => ['title' => '', 'description' => 'The status of the security policy. Valid values:'."\n"
+ ."\n"
+ .'* **Configuring**'."\n"
+ .'* **Available**'."\n", 'type' => 'string', 'example' => 'Available'],
+ 'TLSVersions' => [
+ 'title' => '',
+ 'description' => 'The supported TLS protocol versions.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The supported TLS versions. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.'."\n", 'type' => 'string', 'example' => 'TLSv1.1', 'title' => ''],
+ 'example' => '',
+ ],
+ 'CreateTime' => ['description' => 'The time when the ACL was created. The time follows the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => '2023-02-15T07:37:33Z', 'title' => ''],
+ 'Tags' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n", 'type' => 'string', 'example' => 'env', 'title' => ''],
+ 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n", 'type' => 'string', 'example' => 'product', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
+ 'TotalCount' => ['title' => '', 'description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1000'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.DefaultCertificateUsed',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationFailed.DefaultCertificateNotFound',
- 'errorMessage' => 'The operation failed because of %s.',
- ],
- [
- 'errorCode' => 'ResourceAlreadyAssociated.Certificate',
- 'errorMessage' => 'The specified resource %s is already associated.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerCertificatesNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'OperationDenied.HttpListenerNotSupport',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'InvalidParameter',
- 'errorMessage' => 'Invalid parameter, please check the parameter input.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.Listener',
- 'errorMessage' => 'The specified resource %s is configuring, please try again later.',
- ],
- ],
403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication has failed for LoadBalancer.',
- ],
+ ['errorCode' => 'Forbidden.SecurityPolicy', 'errorMessage' => 'Authentication has failed for SecurityPolicy.', 'description' => ''],
],
- [
- [
- 'errorCode' => 'ResourceNotFound.Certificate',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"Ciphers\\": [\\n \\"ECDHE-ECDSA-AES128-SHA\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"SecurityPolicyId\\": \\"sp-9cdjz6o******\\",\\n \\"SecurityPolicyName\\": \\"test-secrity\\",\\n \\"SecurityPolicyStatus\\": \\"Available\\",\\n \\"TLSVersions\\": [\\n \\"TLSv1.1\\"\\n ],\\n \\"CreateTime\\": \\"2023-02-15T07:37:33Z\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"<ListSecurityPoliciesResponse>\\n <MaxResults>50</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <SecurityPolicies>\\n <Ciphers>ECDHE-ECDSA-AES128-SHA</Ciphers>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <SecurityPolicyId>rg-atstuj3rtop****</SecurityPolicyId>\\n <SecurityPolicyName>test-secrity</SecurityPolicyName>\\n <SecurityPolicyStatus>Available</SecurityPolicyStatus>\\n <TLSVersions>TLSv1.1</TLSVersions>\\n </SecurityPolicies>\\n <TotalCount>1000</TotalCount>\\n</ListSecurityPoliciesResponse>","errorExample":""}]',
+ 'title' => 'ListSecurityPolicies',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'alb:ListSecurityPolicies',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/*'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"<AssociateAdditionalCertificatesWithListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</AssociateAdditionalCertificatesWithListenerResponse>","errorExample":""}]',
- 'title' => 'AssociateAdditionalCertificatesWithListener',
- 'description' => '**AssociateAdditionalCertificatesWithListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetListenerAttribute](~~2254865~~) operation to query the status of the task:'."\n"
- ."\n"
- .'* If the HTTPS or QUIC listener is in the **Associating** state, the additional certificates are being associated.'."\n"
- .'* If the HTTPS or QUIC listener is in the **Associated** state, the additional certificates are associated.'."\n",
],
- 'DissociateAdditionalCertificatesFromListener' => [
- 'summary' => 'Disassociates additional certificates from a listener.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ListSecurityPolicyRelations' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'ListenerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '监听Id',
- 'description' => 'The listener ID. You must specify the ID of an HTTPS listener or a QUIC listener.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
- ],
- [
- 'name' => 'Certificates',
+ 'name' => 'SecurityPolicyIds',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '证书列表',
- 'description' => 'The additional certificates. Only server certificates are supported. You can specify at most 20 certificates.'."\n",
+ 'title' => '',
+ 'description' => 'The security policy IDs. You can specify up to five IDs.',
'type' => 'array',
- 'items' => [
- 'description' => 'The additional certificate.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'CertificateId' => [
- 'title' => '证书Id',
- 'description' => 'The certificate ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '12315790343_166f8204689_1714763408_70998****',
- ],
- ],
- 'required' => false,
- ],
+ 'items' => ['description' => 'The security policy ID. You can specify up to five IDs.', 'type' => 'string', 'example' => 'sp-n0kn923****', 'required' => false, 'title' => ''],
'required' => true,
- 'maxItems' => 15,
+ 'maxItems' => 5,
'minItems' => 1,
- ],
- ],
- [
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '幂等Token',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
- ],
- [
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => 'dryRun',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a **2xx HTTP** status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
+ 'example' => '',
],
],
],
@@ -16133,69 +10248,74 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The operation to disassociate additional certificates from an HTTPS or QUIC listener.'."\n",
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF******'],
+ 'SecrityPolicyRelations' => [
+ 'title' => '',
+ 'description' => 'The security policies and the listeners that are associated with the security policies.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The security policy and the listeners that are associated with the security policy.',
+ 'type' => 'object',
+ 'properties' => [
+ 'RelatedListeners' => [
+ 'title' => '',
+ 'description' => 'The listeners that are associated with the security policy.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The listener that is associated with the security policy.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ListenerId' => ['description' => 'The listener ID.', 'type' => 'string', 'example' => 'lsn-0bfuc****', 'title' => ''],
+ 'ListenerPort' => ['description' => 'The listener port.', 'type' => 'integer', 'format' => 'int64', 'example' => '80', 'title' => ''],
+ 'ListenerProtocol' => ['description' => 'The listener protocol.', 'type' => 'string', 'example' => 'HTTPS', 'title' => ''],
+ 'LoadBalancerId' => ['description' => 'The Server Load Balancer (SLB) instance ID.', 'type' => 'string', 'example' => 'alb-umwzbz6******', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
+ ],
+ 'SecurityPolicyId' => ['description' => 'The security policy ID.', 'type' => 'string', 'example' => 'sp-bp1bpn0kn9****', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'OperationDenied.HttpListenerNotSupport',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'OperationDenied.DefaultCertificateUsed',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'ResourceNotAssociated.Certificate',
- 'errorMessage' => 'The specified resource %s is not associated.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.Listener',
- 'errorMessage' => 'The specified resource of %s is being configured, please try again later.',
- ],
- ],
404 => [
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'title' => 'ListSecurityPolicyRelations',
+ 'summary' => 'Queries the listeners that are associated with security policies.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListSecurityPolicyRelations',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicy}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B******\\"\\n}","errorExample":""},{"type":"xml","example":"<DissociateAdditionalCertificatesFromListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</DissociateAdditionalCertificatesFromListenerResponse>","errorExample":""}]',
- 'title' => 'DissociateAdditionalCertificatesFromListener',
- 'description' => '**DissociateAdditionalCertificatesFromListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListListenerCertificates](~~214354~~) operation to query the status of the task. - If an additional certificate is in the **Dissociating** state, the additional certificate is being disassociated. - If an additional certificate is in the **Dissociated** state, the additional certificate is disassociated.'."\n",
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\",\\n \\"SecrityPolicyRelations\\": [\\n {\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-0bfuc****\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTPS\\",\\n \\"LoadBalancerId\\": \\"alb-umwzbz6******\\"\\n }\\n ],\\n \\"SecurityPolicyId\\": \\"sp-bp1bpn0kn9****\\"\\n }\\n ]\\n}","type":"json"}]',
],
- 'ListListenerCertificates' => [
- 'summary' => 'Queries the certificates that are associated with a listener, including additional certificates and the default certificate.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ListServerGroupServers' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -16205,76 +10325,77 @@
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '167',
+ 'abilityTreeNodes' => ['FEATUREslbULKWF1'],
],
'parameters' => [
[
'name' => 'NextToken',
'in' => 'query',
- 'schema' => [
- 'title' => '分页查询标识',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* You do not need to specify this parameter for the first request.'."\n"
- .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
+ 'schema' => ['description' => 'The token that determines the start of the next query. Valid values:'."\n"
+ ."\n"
+ .'- Leave this parameter empty for the first query.'."\n"
+ ."\n"
+ .'- For subsequent queries, set this parameter to the `NextToken` value from the previous API call.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXG****'],
],
[
'name' => 'MaxResults',
'in' => 'query',
- 'schema' => [
- 'title' => '查询数量',
- 'description' => 'The number of entries to return in each call. Valid values: **1 to 100**. Default value: **20**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '50',
- 'default' => '20',
- ],
+ 'schema' => ['description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **20**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '1000', 'minimum' => '1', 'default' => '20', 'title' => '', 'required' => false, 'example' => '50'],
],
[
- 'name' => 'ListenerId',
+ 'name' => 'ServerGroupId',
'in' => 'query',
- 'schema' => [
- 'title' => '监听Id',
- 'description' => 'The listener ID. You must specify the ID of an HTTPS listener or a QUIC listener.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
+ 'schema' => ['description' => 'The ID of the server group.', 'type' => 'string', 'required' => false, 'example' => 'sgp-cb25e2i2vr******', 'title' => ''],
],
[
- 'name' => 'CertificateType',
+ 'name' => 'ServerIds',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '证书类型',
- 'description' => 'The type of the certificate. Valid values: **Ca** and **Server**.'."\n",
- 'type' => 'string',
+ 'description' => 'The server IDs.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of the server. You can specify up to 40 server IDs in each call.'."\n"
+ ."\n"
+ .'- If the server group is of the **Instance** type, this parameter specifies the ID of an Elastic Compute Service (ECS) instance, an elastic network interface (ENI), or an elastic container instance (ECI).'."\n"
+ ."\n"
+ .'- If the server group is of the **Ip** type, this parameter specifies an IP address.'."\n"
+ ."\n"
+ .'- If the server group is of the **Fc** type, this parameter specifies the Alibaba Cloud Resource Name (ARN) of a Function Compute function.', 'type' => 'string', 'example' => 'i-bp1e0u8f10by57wl****', 'required' => false, 'title' => ''],
'required' => false,
- 'example' => 'Server',
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ 'title' => '',
+ 'example' => '',
],
],
[
- 'name' => 'CertificateIds',
+ 'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '证书id列表',
- 'description' => 'The certificates.'."\n",
+ 'description' => 'The tags. You can specify up to 10 tags in a request.',
'type' => 'array',
'items' => [
- 'description' => 'The certificate ID.'."\n",
- 'type' => 'string',
+ 'description' => 'The tags. You can specify up to 10 tags in a request.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key. You can specify up to 10 tag keys.'."\n"
+ ."\n"
+ .'The tag key can be up to 64 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'Test', 'title' => '', 'required' => false],
+ 'Value' => ['description' => 'The tag value. You can specify up to 10 tag values.'."\n"
+ ."\n"
+ .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'Test', 'title' => '', 'required' => false],
+ ],
'required' => false,
- 'example' => '103705******',
+ 'title' => '',
+ 'example' => '',
],
'required' => false,
- 'maxItems' => 20,
- 'minItems' => 1,
+ 'title' => '',
+ 'example' => '',
],
],
],
@@ -16282,1192 +10403,1078 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The returned data.',
'type' => 'object',
'properties' => [
- 'MaxResults' => [
- 'title' => '本次查询返回记录数量',
- 'description' => 'The maximum number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '50',
- ],
- 'NextToken' => [
- 'title' => '分页查询标识',
- 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
- 'TotalCount' => [
- 'title' => '总记录数',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1000',
- ],
- 'Certificates' => [
- 'title' => '监听SSL证书列表',
- 'description' => 'The certificates.'."\n",
+ 'MaxResults' => ['description' => 'The maximum number of entries returned on each page.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '50'],
+ 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'- If **NextToken** is empty, no next page exists.'."\n"
+ ."\n"
+ .'- If a value is returned for **NextToken**, the value is the token that determines the start of the next query.', 'type' => 'string', 'title' => '', 'example' => 'caeba0bbb2be03f8****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF*****'],
+ 'Servers' => [
+ 'title' => '',
+ 'description' => 'The list of servers.',
'type' => 'array',
'items' => [
- 'description' => 'The certificate.'."\n",
+ 'description' => 'The details of the backend server.',
'type' => 'object',
'properties' => [
- 'CertificateId' => [
- 'title' => '证书Id',
- 'description' => 'The certificate ID. Only server certificates are supported.'."\n",
- 'type' => 'string',
- 'example' => '12315790343_166f8204689_1714763408_70998****',
- ],
- 'IsDefault' => [
- 'title' => '是否为默认证书',
- 'description' => 'Indicates whether the certificate is the default certificate of the listener. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'Status' => [
- 'title' => '证书状态',
- 'description' => 'Indicates whether the certificate is associated with the listener. Valid values:'."\n"
- ."\n"
- .'* **Associating**'."\n"
- .'* **Associated**'."\n"
- .'* **Diassociating**'."\n",
- 'type' => 'string',
- 'example' => 'Associating',
- ],
- 'CertificateType' => [
- 'title' => '证书类型',
- 'description' => 'The type of the certificate.'."\n",
- 'type' => 'string',
- 'example' => 'Server',
- ],
+ 'Description' => ['description' => 'The description of the backend server.', 'type' => 'string', 'example' => 'test', 'title' => ''],
+ 'Port' => ['description' => 'The port used by the backend server. Valid values: **1** to **65535**.', 'type' => 'integer', 'format' => 'int32', 'example' => '80', 'title' => ''],
+ 'ServerId' => ['description' => 'The ID of the backend server.'."\n"
+ ."\n"
+ .'> If **ServerType** is **Fc**, **ServerId** is the ARN of a Function Compute function.', 'type' => 'string', 'example' => 'i-bp1f9kdprbgy9uiu****', 'title' => ''],
+ 'ServerIp' => ['description' => 'The IP address of the server.', 'type' => 'string', 'example' => '192.168.XX.XX', 'title' => ''],
+ 'ServerType' => ['description' => 'The type of the backend server.', 'type' => 'string', 'example' => 'Ecs', 'title' => ''],
+ 'Status' => ['description' => 'The status of the backend server. Valid values:'."\n"
+ ."\n"
+ .'- **Adding**: The server is being added.'."\n"
+ ."\n"
+ .'- **Available**: The server is available.'."\n"
+ ."\n"
+ .'- **Configuring**: The server is being configured.'."\n"
+ ."\n"
+ .'- **Removing**: The server is being removed.', 'type' => 'string', 'example' => 'Available', 'title' => ''],
+ 'Weight' => ['description' => 'The weight of the backend server. A server with a higher weight receives more requests.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
+ 'ServerGroupId' => ['description' => 'The ID of the server group.', 'type' => 'string', 'example' => 'sgp-qy042e1jabmprh****', 'title' => ''],
+ 'RemoteIpEnabled' => ['description' => 'Indicates whether the remote IP address feature is enabled. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
+ 'example' => '',
],
+ 'TotalCount' => ['description' => 'The total number of entries that match the query conditions.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '3'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'OperationDenied.HttpListenerNotSupport',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
+ 403 => [
+ ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication has failed for ServerGroup.', 'description' => ''],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ 'title' => 'ListServerGroupServers',
+ 'summary' => 'Lists the servers in a server group.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListServerGroupServers',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000,\\n \\"Certificates\\": [\\n {\\n \\"CertificateId\\": \\"123157******\\",\\n \\"IsDefault\\": true,\\n \\"Status\\": \\"Associating\\",\\n \\"CertificateType\\": \\"Server\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListListenerCertificatesResponse>\\n <MaxResults>50</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <TotalCount>1000</TotalCount>\\n <Certificates>\\n <CertificateId>12315790343_166f8204689_1714763408_70998****</CertificateId>\\n <IsDefault>true</IsDefault>\\n <Status>Associating</Status>\\n <CertificateType>Server</CertificateType>\\n </Certificates>\\n</ListListenerCertificatesResponse>","errorExample":""}]',
- 'title' => 'ListListenerCertificates',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"caeba0bbb2be03f8****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF*****\\",\\n \\"Servers\\": [\\n {\\n \\"Description\\": \\"test\\",\\n \\"Port\\": 80,\\n \\"ServerId\\": \\"i-bp1f9kdprbgy9uiu****\\",\\n \\"ServerIp\\": \\"192.168.XX.XX\\",\\n \\"ServerType\\": \\"Ecs\\",\\n \\"Status\\": \\"Available\\",\\n \\"Weight\\": 100,\\n \\"ServerGroupId\\": \\"sgp-qy042e1jabmprh****\\",\\n \\"RemoteIpEnabled\\": true\\n }\\n ],\\n \\"TotalCount\\": 3\\n}","type":"json"}]',
],
- 'DetachCommonBandwidthPackageFromLoadBalancer' => [
- 'summary' => 'Disassociates an Internet Shared Bandwidth instance from an Application Load Balancer (ALB) instance.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ListServerGroups' => [
+ 'summary' => 'Retrieves a list of server groups.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '166',
+ 'abilityTreeNodes' => ['FEATUREslbULKWF1', 'FEATUREslbVRSQEA'],
],
'parameters' => [
[
- 'name' => 'ClientToken',
+ 'name' => 'ServerGroupIds',
'in' => 'query',
- 'allowEmptyValue' => false,
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等参数',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The server group IDs. You can specify up to 20 IDs in a single request.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The server group ID.', 'type' => 'string', 'required' => false, 'example' => 'sgp-atstuj3rtop****', 'title' => ''],
'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-426655440000',
- ],
- ],
- [
- 'name' => 'RegionId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '地域ID',
- 'description' => 'The region ID of the ALB instance.'."\n"
- ."\n"
- .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cn-hangzhou',
- ],
- ],
- [
- 'name' => 'LoadBalancerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '实例ID',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-d676fho813rmu3****',
- ],
- ],
- [
- 'name' => 'BandwidthPackageId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '带宽包ID',
- 'description' => 'The EIP bandwidth plan ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cbwp-bp1pzf0ym72pu3y76****',
+ 'maxItems' => 20,
+ 'example' => '',
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'ServerGroupNames',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '预校验',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
+ 'title' => '',
+ 'description' => 'The server group names. You can specify up to 10 names in a single request.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The server group name.', 'type' => 'string', 'required' => false, 'example' => 'Group3', 'title' => ''],
'required' => false,
- 'example' => 'true',
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The response parameters.',
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '2EF39708-974B-5E74-AFF5-3445263035A8',
- ],
- 'JobId' => [
- 'title' => '异步任务ID',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- ],
- ],
- ],
- ],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectBusinessStatus.CommonBandwidthPackage',
- 'errorMessage' => 'The business status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.CommonBandwidthPackage',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- ],
- 403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
- ],
- [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
+ 'maxItems' => 10,
+ 'example' => '',
],
],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2EF39708-974B-5E74-AFF5-344******\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DetachCommonBandwidthPackageFromLoadBalancerResponse>\\n <RequestId>2EF39708-974B-5E74-AFF5-3445263035A8</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DetachCommonBandwidthPackageFromLoadBalancerResponse>","errorExample":""}]',
- 'title' => 'DetachCommonBandwidthPackageFromLoadBalancer',
- 'description' => '**DetachCommonBandwidthPackageFromLoadBalancer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetLoadBalancerAttribute](~~214359~~) operation to query the status of the task.'."\n"
- ."\n"
- .'* If an ALB instance is in the **Configuring** state, the EIP bandwidth plan is being disassociated from the ALB instance.'."\n"
- .'* If an ALB instance is in the **Active** state, the EIP bandwidth plan is disassociated from the ALB instance.'."\n",
- ],
- 'AttachCommonBandwidthPackageToLoadBalancer' => [
- 'summary' => 'Associates an Internet Shared Bandwidth instance with an Application Load Balancer (ALB) instance.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
[
- 'AK' => [],
- ],
- ],
- 'operationType' => 'readAndWrite',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeNodes' => [
- 'FEATUREslbZBWWR9',
+ 'name' => 'ResourceGroupId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The resource group ID.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'rg-atstuj3rtop****'],
],
- ],
- 'parameters' => [
[
- 'name' => 'ClientToken',
+ 'name' => 'NextToken',
'in' => 'query',
- 'allowEmptyValue' => false,
- 'schema' => [
- 'title' => '幂等参数',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-426655440000',
- ],
+ 'schema' => ['description' => 'The token used for the next query.'."\n"
+ ."\n"
+ .'- If this is your first query or no next query is to be sent, you can leave this parameter empty.'."\n"
+ ."\n"
+ .'- If a subsequent query is to be sent, set this parameter to the value of **NextToken** from the previous API response.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXG****'],
],
[
- 'name' => 'RegionId',
+ 'name' => 'MaxResults',
'in' => 'query',
- 'schema' => [
- 'title' => '地域ID',
- 'description' => 'The region ID of the ALB instance.'."\n"
- ."\n"
- .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cn-hangzhou',
- ],
+ 'schema' => ['description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **20**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '1', 'default' => '20', 'title' => '', 'required' => false, 'example' => '20'],
],
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'VpcId',
'in' => 'query',
- 'schema' => [
- 'title' => '实例ID',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-d676fho813rmu3****',
- ],
+ 'schema' => ['title' => '', 'description' => 'The ID of the virtual private cloud (VPC).', 'type' => 'string', 'example' => 'vpc-bp15zckdt37pq72zv****', 'required' => false],
],
[
- 'name' => 'BandwidthPackageId',
+ 'name' => 'ServerGroupType',
'in' => 'query',
- 'schema' => [
- 'title' => '带宽包ID',
- 'description' => 'The EIP bandwidth plan ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cbwp-bp1pzf0ym72pu3y76****',
- ],
+ 'schema' => ['description' => 'The type of the server group. Valid values:'."\n"
+ ."\n"
+ .'- **Instance**: allows you to add servers of the ECS, ENI, and ECI types.'."\n"
+ ."\n"
+ .'- **Ip**: allows you to add servers with specified IP addresses.'."\n"
+ ."\n"
+ .'- **Fc**: allows you to add Function Compute functions as backend servers.'."\n"
+ ."\n"
+ .'- If you do not specify this parameter, the system queries server groups of all types.', 'type' => 'string', 'example' => 'Instance', 'title' => '', 'required' => false],
],
[
- 'name' => 'DryRun',
+ 'name' => 'Tag',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false**(default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
+ 'title' => '',
+ 'description' => 'The tags. You can specify up to 10 tags in a single request.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A tag that consists of a key-value pair.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key.'."\n"
+ ."\n"
+ .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and it cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'Test', 'title' => '', 'required' => false],
+ 'Value' => ['description' => 'The tag value.'."\n"
+ ."\n"
+ .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and it cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'Test', 'title' => '', 'required' => false],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => false,
- 'example' => 'true',
+ 'example' => 'Instance',
],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The response parameters.',
+ 'title' => '',
+ 'description' => 'The data structure that is returned.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '2EF39708-974B-5E74-AFF5-3445263035A8',
- ],
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
+ 'MaxResults' => ['description' => 'The number of entries returned per page.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '50'],
+ 'NextToken' => ['description' => 'The token used to retrieve the next page of results. Valid values:'."\n"
+ ."\n"
+ .'- If **NextToken** is empty, no more results are available.'."\n"
+ ."\n"
+ .'- If a value is returned, use it to retrieve the next page of results.', 'type' => 'string', 'title' => '', 'example' => 'caeba0bbb2be03f8****'],
+ 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876******'],
+ 'ServerGroups' => [
+ 'title' => '',
+ 'description' => 'The list of server groups.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The list of server groups.',
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckConfig' => [
+ 'title' => '',
+ 'description' => 'The health check configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckConnectPort' => ['description' => 'The port on the backend server used for health checks. Valid values: **0** to **65535**.'."\n"
+ ."\n"
+ .'If the value is **0**, the backend server port is used for health checks.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '80'],
+ 'HealthCheckEnabled' => ['description' => 'Indicates whether health checks are enabled. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enabled.'."\n"
+ ."\n"
+ .'- **false**: Disabled.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
+ 'HealthCheckHost' => ['description' => 'The domain name that is used for health checks.'."\n"
+ ."\n"
+ .'- **The private IP address of the backend server** (Default): The private IP address of the backend server is used for health checks.'."\n"
+ ."\n"
+ .'- **A custom domain name**: Specify a domain name that meets the following requirements:'."\n"
+ ."\n"
+ .' - The domain name must be 1 to 80 characters in length.'."\n"
+ ."\n"
+ .' - It can contain lowercase letters, digits, hyphens (-), and periods (.).'."\n"
+ ."\n"
+ .' - It must contain at least one period (.). The period (.) cannot be the first or last character.'."\n"
+ ."\n"
+ .' - The rightmost domain label can contain only letters and cannot contain digits or hyphens (-).'."\n"
+ ."\n"
+ .' - The hyphen (-) cannot be the first or last character.'."\n"
+ ."\n"
+ .'> This parameter is valid only when `HealthCheckProtocol` is set to `HTTP`, `HTTPS`, or `gRPC`.', 'type' => 'string', 'title' => '', 'example' => 'www.example.com'],
+ 'HealthCheckCodes' => [
+ 'title' => '',
+ 'description' => 'The list of status codes that indicate a successful health check.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The status code that indicates a successful health check.'."\n"
+ ."\n"
+ .'- If **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, valid values for **HealthCheckCodes** are **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**. Separate multiple values with commas (,).'."\n"
+ ."\n"
+ .'- If **HealthCheckProtocol** is set to **gRPC**, the valid status code range for **HealthCheckCodes** is **0** to **99**. You can specify up to 20 value ranges. Separate multiple ranges with commas (,).'."\n"
+ ."\n"
+ .'> This parameter is valid only when **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'example' => 'http_2xx', 'title' => ''],
+ 'example' => '',
+ ],
+ 'HealthCheckHttpVersion' => ['description' => 'The HTTP version that is used for health checks.'."\n"
+ ."\n"
+ .'Valid values: **HTTP1.0** or **HTTP1.1**.'."\n"
+ ."\n"
+ .'> This parameter is valid only when **HealthCheckProtocol** is set to **HTTP** or **HTTPS**.', 'type' => 'string', 'title' => '', 'example' => 'HTTP1.1'],
+ 'HealthCheckInterval' => ['description' => 'The interval at which health checks are performed, in seconds. Valid values: **1** to **50**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '5'],
+ 'HealthCheckMethod' => ['description' => 'The health check method. Valid values:'."\n"
+ ."\n"
+ .'- **GET**: If the response body exceeds 8 KB, it is truncated. This does not affect the health check result.'."\n"
+ ."\n"
+ .'- **POST**: gRPC health checks use the POST method by default.'."\n"
+ ."\n"
+ .'- **HEAD**: HTTP and HTTPS health checks use the HEAD method by default.'."\n"
+ ."\n"
+ .'> This parameter is valid only when **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'title' => '', 'example' => 'HEAD'],
+ 'HealthCheckPath' => ['title' => '', 'description' => 'The path that is used for health checks.'."\n"
+ ."\n"
+ .'> This parameter is valid only when **HealthCheckProtocol** is set to **HTTP** or **HTTPS**.', 'type' => 'string', 'example' => '/test/index.html'],
+ 'HealthCheckProtocol' => ['description' => 'The protocol that is used for health checks. Valid values:'."\n"
+ ."\n"
+ .'- **HTTP**: The load balancer sends HEAD or GET requests to check the health of the backend server.'."\n"
+ ."\n"
+ .'- **HTTPS**: The load balancer sends HEAD or GET requests to check the health of the backend server. HTTPS provides higher security than HTTP because data is encrypted.'."\n"
+ ."\n"
+ .'- **TCP**: The load balancer sends SYN packets to check whether the port of the backend server is reachable.'."\n"
+ ."\n"
+ .'- **gRPC**: The load balancer sends POST or GET requests to check the health of the backend server.', 'type' => 'string', 'title' => '', 'example' => 'HTTP'],
+ 'HealthCheckTimeout' => ['description' => 'The timeout for a health check response, in seconds. If a backend server does not respond within this timeout, the health check fails.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '3'],
+ 'HealthyThreshold' => ['description' => 'The number of consecutive successful health checks required for a backend server to change its status from **unhealthy** to **healthy**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '4'],
+ 'UnhealthyThreshold' => ['description' => 'The number of consecutive failed health checks required for a backend server to change its status from **healthy** to **unhealthy**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '4'],
+ ],
+ 'example' => '',
+ ],
+ 'Protocol' => ['description' => 'The backend protocol. Valid values:'."\n"
+ ."\n"
+ .'- **HTTP**: can be associated with HTTPS, HTTP, and QUIC listeners.'."\n"
+ ."\n"
+ .'- **HTTPS**: can be associated with HTTPS listeners.'."\n"
+ ."\n"
+ .'- **GRPC**: can be associated with HTTPS and QUIC listeners.', 'type' => 'string', 'title' => '', 'example' => 'HTTP'],
+ 'RelatedLoadBalancerIds' => [
+ 'title' => '',
+ 'description' => 'The IDs of the associated load balancer instances.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of the associated load balancer instance.', 'type' => 'string', 'example' => 'alb-n5qw04uq8savfe****', 'title' => ''],
+ 'example' => '',
+ ],
+ 'ResourceGroupId' => ['description' => 'The resource group ID.', 'type' => 'string', 'title' => '', 'example' => 'rg-atstuj3rtop****'],
+ 'Scheduler' => ['description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'- **Wrr**: weighted round robin. Backend servers with higher weights receive more requests.'."\n"
+ ."\n"
+ .'- **Wlc**: weighted least connections. The load balancer considers both the weight and the number of active connections for each backend server. If weights are the same, the backend server with the fewest active connections is selected.'."\n"
+ ."\n"
+ .'- **Sch**: consistent hashing. Requests with the same hash key are routed to the same backend server. By default, the hash key is the source IP address. If `UchConfig` is configured, the hash key is a URL parameter.', 'type' => 'string', 'title' => '', 'example' => 'Wrr'],
+ 'ServerGroupId' => ['description' => 'The server group ID.', 'type' => 'string', 'title' => '', 'example' => 'sgp-cige6j****'],
+ 'ServerGroupName' => ['description' => 'The server group name.', 'type' => 'string', 'title' => '', 'example' => 'Group3'],
+ 'ServerGroupStatus' => ['description' => 'The status of the server group. Valid values:'."\n"
+ ."\n"
+ .'- **Creating**: The server group is being created.'."\n"
+ ."\n"
+ .'- **Available**: The server group is available.'."\n"
+ ."\n"
+ .'- **Configuring**: The server group is being updated.', 'type' => 'string', 'title' => '', 'example' => 'Available'],
+ 'ServerGroupType' => ['description' => 'The type of the server group. Valid values:'."\n"
+ ."\n"
+ .'- **Instance**: an instance-type server group to which you can add ECS instances, elastic network interfaces (ENIs), and ECI instances.'."\n"
+ ."\n"
+ .'- **IP**: an IP-based server group.'."\n"
+ ."\n"
+ .'- **Function Compute**: a Function Compute-based server group.', 'type' => 'string', 'title' => '', 'example' => 'Instance'],
+ 'StickySessionConfig' => [
+ 'title' => '',
+ 'description' => 'The sticky session configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Cookie' => ['title' => '', 'description' => 'The cookie that is configured on the backend server.', 'type' => 'string', 'example' => 'B490B5EBF6F3CD402E515D22BCDA****'],
+ 'CookieTimeout' => ['description' => 'The timeout period of the cookie, in seconds. Valid values: **1** to **86400**.'."\n"
+ ."\n"
+ .'> This parameter takes effect when **StickySessionEnabled** is set to **true** and **StickySessionType** is set to **Insert**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1000'],
+ 'StickySessionEnabled' => ['description' => 'Specifies whether to enable sticky sessions. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enabled.'."\n"
+ ."\n"
+ .'- **false**: Disabled.', 'type' => 'boolean', 'title' => '', 'example' => 'false'],
+ 'StickySessionType' => ['description' => 'The method that is used to manage cookies. Valid values:'."\n"
+ ."\n"
+ .'- **Insert**: Inserts a cookie.'."\n"
+ .' When a client makes its first request, the load balancer inserts a `SERVERID` cookie into the response. Subsequent requests from the client will include this cookie, and the load balancer will route these requests to the same backend server.'."\n"
+ ."\n"
+ .'- **Server**: Rewrites a cookie.'."\n"
+ .' If the load balancer detects a user-defined cookie, it overwrites the original cookie in the response. Subsequent requests from the client will include the new cookie, and the load balancer will route these requests to the same backend server.', 'type' => 'string', 'title' => '', 'example' => 'Insert'],
+ ],
+ 'example' => '',
+ ],
+ 'VpcId' => ['description' => 'The ID of the VPC.', 'type' => 'string', 'title' => '', 'example' => 'vpc-bp15zckdt37pq72zv****'],
+ 'Tags' => [
+ 'title' => '',
+ 'description' => 'The list of tags that are associated with the server group.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The list of tags that are associated with the server group.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'title' => '', 'example' => 'Test'],
+ 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'title' => '', 'example' => 'Test'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
+ ],
+ 'ConfigManagedEnabled' => ['description' => 'Specifies whether to enable configuration management. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enabled.'."\n"
+ ."\n"
+ .'- **false**: Disabled.', 'type' => 'boolean', 'title' => '', 'example' => 'false'],
+ 'UpstreamKeepaliveEnabled' => ['description' => 'Specifies whether to enable backend keep-alive connections. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enabled.'."\n"
+ ."\n"
+ .'- **false**: Disabled.', 'type' => 'boolean', 'title' => '', 'example' => 'false'],
+ 'Ipv6Enabled' => ['description' => 'Specifies whether IPv6 is enabled. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enabled.'."\n"
+ ."\n"
+ .'- **false**: Disabled.', 'type' => 'boolean', 'title' => '', 'example' => 'false'],
+ 'ServerCount' => ['description' => 'The number of backend servers in the server group.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'ServiceName' => ['description' => 'The service name.', 'type' => 'string', 'title' => '', 'example' => 'test'],
+ 'UchConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of URL-based consistent hashing.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Type' => ['description' => 'The type of the parameter. The value must be `QueryString`.', 'type' => 'string', 'example' => 'QueryString', 'title' => ''],
+ 'Value' => ['description' => 'The value of the consistent hashing parameter.', 'type' => 'string', 'example' => 'abc', 'title' => ''],
+ ],
+ 'example' => '',
+ ],
+ 'CreateTime' => ['description' => 'The time when the server group was created.', 'type' => 'string', 'example' => '2022-07-02T02:49:05Z', 'title' => ''],
+ 'ConnectionDrainConfig' => [
+ 'description' => 'The connection draining configuration.'."\n"
+ ."\n"
+ .'If you enable connection draining, the load balancer allows existing connections to be processed within a specified period of time after a backend server is removed or fails a health check.'."\n"
+ ."\n"
+ .'> - A basic instance does not support connection draining. Only standard instances and WAF-enabled instances support this feature.'."\n"
+ .'>'."\n"
+ .'> - Connection draining is supported by instance and IP-based server groups, but not by Function Compute-based server groups.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ConnectionDrainEnabled' => ['description' => 'Specifies whether to enable connection draining. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enabled.'."\n"
+ ."\n"
+ .'- **false**: Disabled.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
+ 'ConnectionDrainTimeout' => ['description' => 'The timeout period for connection draining.', 'type' => 'integer', 'format' => 'int32', 'example' => '300', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'SlowStartConfig' => [
+ 'title' => '',
+ 'description' => 'The slow start configuration.'."\n"
+ ."\n"
+ .'After you enable slow start, the load balancer warms up newly added backend servers for a specified period of time. The number of requests that are routed to these servers increases linearly during the warm-up period.'."\n"
+ ."\n"
+ .'> - A basic instance does not support slow start. Only standard instances and WAF-enabled instances support this feature.'."\n"
+ .'>'."\n"
+ .'> - Instance and IP-based server groups support slow start. Function Compute-based server groups do not.'."\n"
+ .'>'."\n"
+ .'> - You can enable slow start only when the scheduling algorithm is weighted round robin.',
+ 'type' => 'object',
+ 'properties' => [
+ 'SlowStartEnabled' => ['description' => 'Specifies whether to enable slow start. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enabled.'."\n"
+ ."\n"
+ .'- **false**: Disabled.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
+ 'SlowStartDuration' => ['description' => 'The slow start duration, in seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'title' => ''],
+ ],
+ 'example' => '',
+ ],
+ 'CrossZoneEnabled' => ['description' => 'Specifies whether to enable cross-zone load balancing for the server group. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enabled. (Default)'."\n"
+ ."\n"
+ .'- **false**: Disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
+ 'IpVersionAffinityMode' => ['type' => 'string', 'example' => 'Affinity', 'description' => '', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
+ 'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1000'],
],
+ 'example' => '',
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectBusinessStatus.CommonBandwidthPackage',
- 'errorMessage' => 'The business status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.CommonBandwidthPackage',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.CommonBandwidthPackage',
- 'errorMessage' => 'The specified resource %s is not found.',
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'title' => 'ListServerGroups',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListServerGroups',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/*'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2EF39708-974B-5E74-AFF5-3445******\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<AttachCommonBandwidthPackageToLoadBalancerResponse>\\n <RequestId>2EF39708-974B-5E74-AFF5-3445263035A8</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</AttachCommonBandwidthPackageToLoadBalancerResponse>","errorExample":""}]',
- 'title' => 'AttachCommonBandwidthPackageToLoadBalancer',
- 'description' => '**AttachCommonBandwidthPackageToLoadBalancer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [GetLoadBalancerAttribute](~~214362~~) to query the status of the task.'."\n"
- ."\n"
- .'* If the ALB instance is in the **Configuring** state, the EIP bandwidth plan is being associated with the ALB instance.'."\n"
- .'* If the ALB instance is in the **Active** state, the EIP bandwidth plan is associated with the ALB instance.'."\n",
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"caeba0bbb2be03f8****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\",\\n \\"ServerGroups\\": [\\n {\\n \\"HealthCheckConfig\\": {\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckEnabled\\": true,\\n \\"HealthCheckHost\\": \\"www.example.com\\",\\n \\"HealthCheckCodes\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.1\\",\\n \\"HealthCheckInterval\\": 5,\\n \\"HealthCheckMethod\\": \\"HEAD\\",\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"HTTP\\",\\n \\"HealthCheckTimeout\\": 3,\\n \\"HealthyThreshold\\": 4,\\n \\"UnhealthyThreshold\\": 4\\n },\\n \\"Protocol\\": \\"HTTP\\",\\n \\"RelatedLoadBalancerIds\\": [\\n \\"alb-n5qw04uq8savfe****\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Scheduler\\": \\"Wrr\\",\\n \\"ServerGroupId\\": \\"sgp-cige6j****\\",\\n \\"ServerGroupName\\": \\"Group3\\",\\n \\"ServerGroupStatus\\": \\"Available\\",\\n \\"ServerGroupType\\": \\"Instance\\",\\n \\"StickySessionConfig\\": {\\n \\"Cookie\\": \\"B490B5EBF6F3CD402E515D22BCDA****\\",\\n \\"CookieTimeout\\": 1000,\\n \\"StickySessionEnabled\\": false,\\n \\"StickySessionType\\": \\"Insert\\"\\n },\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"ConfigManagedEnabled\\": false,\\n \\"UpstreamKeepaliveEnabled\\": false,\\n \\"Ipv6Enabled\\": false,\\n \\"ServerCount\\": 1,\\n \\"ServiceName\\": \\"test\\",\\n \\"UchConfig\\": {\\n \\"Type\\": \\"QueryString\\",\\n \\"Value\\": \\"abc\\"\\n },\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"ConnectionDrainConfig\\": {\\n \\"ConnectionDrainEnabled\\": false,\\n \\"ConnectionDrainTimeout\\": 300\\n },\\n \\"SlowStartConfig\\": {\\n \\"SlowStartEnabled\\": false,\\n \\"SlowStartDuration\\": 30\\n },\\n \\"CrossZoneEnabled\\": true,\\n \\"IpVersionAffinityMode\\": \\"Affinity\\"\\n }\\n ],\\n \\"TotalCount\\": 1000\\n}","type":"json"}]',
],
- 'DisableLoadBalancerAccessLog' => [
- 'summary' => 'Disables the access log feature for a Application Load Balancer (ALB) instance.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ListSystemSecurityPolicies' => [
+ 'summary' => 'Queries system security policies in a region.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
- ],
- 'parameters' => [
- [
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
- ."\n"
- .'* If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- ],
- [
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- ],
- [
- 'name' => 'LoadBalancerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '实例id',
- 'description' => 'The SLB instance ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lb-bp1b6c719dfa08ex*****',
- ],
- ],
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '272',
+ 'abilityTreeNodes' => ['FEATUREslb39XGK4'],
+ 'tenantRelevance' => 'publicInformation',
],
+ 'parameters' => [],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'title' => '',
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
+ 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'],
+ 'SecurityPolicies' => [
+ 'title' => '',
+ 'description' => 'The security policies.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The details about the security policy.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Ciphers' => [
+ 'title' => '',
+ 'description' => 'The supported cipher suite.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The supported cipher suites are determined by the value of **TLSVersions**.'."\n"
+ ."\n"
+ .'- TLSv1.0 and TLSv1.1 support the following cipher suites:'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES128-SHA'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES256-SHA'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES128-SHA'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES256-SHA'."\n"
+ ."\n"
+ .' - AES128-SHA'."\n"
+ ."\n"
+ .' - AES256-SHA'."\n"
+ ."\n"
+ .' - DES-CBC3-SHA'."\n"
+ ."\n"
+ .'- TLSv1.2 supports the following cipher suites:'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES128-SHA'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES256-SHA'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES128-SHA'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES256-SHA'."\n"
+ ."\n"
+ .' - AES128-SHA'."\n"
+ ."\n"
+ .' - AES256-SHA'."\n"
+ ."\n"
+ .' - DES-CBC3-SHA'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES128-GCM-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES256-GCM-SHA384'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES128-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES256-SHA384'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES128-GCM-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES256-GCM-SHA384'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES128-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES256-SHA384'."\n"
+ ."\n"
+ .' - AES128-GCM-SHA256'."\n"
+ ."\n"
+ .' - AES256-GCM-SHA384'."\n"
+ ."\n"
+ .' - AES128-SHA256'."\n"
+ ."\n"
+ .' - AES256-SHA256'."\n"
+ ."\n"
+ .'- TLSv1.3 supports the following cipher suites:'."\n"
+ ."\n"
+ .' - TLS\\_AES\\_128\\_GCM\\_SHA256'."\n"
+ ."\n"
+ .' - TLS\\_AES\\_256\\_GCM\\_SHA384'."\n"
+ ."\n"
+ .' - TLS\\_CHACHA20\\_POLY1305\\_SHA256'."\n"
+ ."\n"
+ .' - TLS\\_AES\\_128\\_CCM\\_SHA256'."\n"
+ ."\n"
+ .' - TLS\\_AES\\_128\\_CCM\\_8\\_SHA256', 'type' => 'string', 'example' => 'ECDHE-ECDSA-AES128-SHA', 'title' => ''],
+ 'example' => '',
+ ],
+ 'SecurityPolicyId' => ['description' => 'The ID of the security policy.', 'type' => 'string', 'example' => 'tls_cipher_policy_1_0', 'title' => ''],
+ 'TLSVersions' => [
+ 'title' => '',
+ 'description' => 'The supported TLS protocol versions.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The supported TLS versions. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.', 'type' => 'string', 'example' => 'TLSv1.0', 'title' => ''],
+ 'example' => '',
+ ],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
],
+ 'example' => '',
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'OperationDenied.AccessLogDisabled',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring.LoadBalancer',
- 'errorMessage' => 'The specified resource of %s is being configured, please try again later.',
- ],
- ],
- 403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
- ],
- [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource of %s is not found.',
- ],
- ],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableLoadBalancerAccessLogResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</DisableLoadBalancerAccessLogResponse>","errorExample":""}]',
- 'title' => 'DisableLoadBalancerAccessLog',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"Ciphers\\": [\\n \\"ECDHE-ECDSA-AES128-SHA\\"\\n ],\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_0\\",\\n \\"TLSVersions\\": [\\n \\"TLSv1.0\\"\\n ]\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'ListSystemSecurityPolicies',
+ 'changeSet' => [],
+ 'ramActions' => [],
],
- 'EnableLoadBalancerAccessLog' => [
- 'summary' => 'Enables the access log feature for an Application Load Balancer (ALB) instance.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ListTagKeys' => [
+ 'summary' => 'Queries tag keys.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- 'abilityTreeCode' => '205',
- 'abilityTreeNodes' => [
- 'FEATUREslb4A6LP3',
- ],
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'ClientToken',
+ 'name' => 'NextToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'schema' => ['title' => '', 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* You do not need to specify this parameter for the first request.'."\n"
+ .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
],
[
- 'name' => 'DryRun',
+ 'name' => 'MaxResults',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['title' => '', 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '20', 'default' => '20'],
],
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'ResourceType',
'in' => 'query',
- 'schema' => [
- 'title' => '实例id',
- 'description' => 'The ALB instance ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-bd6oylbckp6k9x****',
- ],
+ 'schema' => ['title' => '', 'description' => 'The type of the resource. Valid values:'."\n"
+ ."\n"
+ .'* **acl**: an access control list (ACL)'."\n"
+ .'* **loadbalancer**: an Application Load Balancer (ALB) instance'."\n"
+ .'* **securitypolicy**: a security policy'."\n"
+ .'* **servergroup**: a server group'."\n", 'type' => 'string', 'required' => true, 'example' => 'loadbalancer'],
],
[
- 'name' => 'LogProject',
+ 'name' => 'Category',
'in' => 'query',
- 'schema' => [
- 'title' => '日志Project',
- 'description' => 'The project to which the access log is shipped.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'sls-setter',
- ],
+ 'schema' => ['title' => '', 'description' => 'The type of the tag.'."\n"
+ ."\n"
+ .'Valid values: **Custom**, **System**, and **All**.'."\n"
+ ."\n"
+ .'Default value: **All**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'System'],
],
[
- 'name' => 'LogStore',
+ 'name' => 'Keyword',
'in' => 'query',
- 'schema' => [
- 'title' => '日志Store',
- 'description' => 'The Logstore to which the access log is shipped.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'test',
- ],
+ 'schema' => ['title' => '', 'description' => 'The tag key. 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' => 'test'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The tag key.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FD******',
- ],
- 'JobId' => [
- 'title' => 'jobId of the request',
- 'description' => 'The ID of the asynchronous job.'."\n",
- 'type' => 'string',
- 'example' => 'ff7713ca-5818-4120-85e3-0bf9fr******',
+ 'MaxResults' => ['title' => '', 'description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'],
+ 'NextToken' => ['title' => '', 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* If **NextToken** is empty, no next page exists.'."\n"
+ .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'],
+ 'TagKeys' => [
+ 'title' => '',
+ 'description' => 'The tag keys.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag key.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Category' => ['title' => '', 'description' => 'The type of the tag.'."\n"
+ ."\n"
+ .'Valid values: **Custom**, **System**, and **All**.'."\n"
+ ."\n"
+ .'Default value: **All**.'."\n", 'type' => 'string', 'example' => 'System'],
+ 'TagKey' => ['title' => '', 'description' => 'The tag that matches all filter conditions.'."\n", 'type' => 'string', 'example' => 'test'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
],
+ 'TotalCount' => ['title' => '', 'description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10'],
],
+ 'example' => '',
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'OperationDenied.AccessLogEnabled',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.LoadBalancer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- ],
- 403 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
- ],
- [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\",\\n \\"TagKeys\\": [\\n {\\n \\"Category\\": \\"System\\",\\n \\"TagKey\\": \\"test\\"\\n }\\n ],\\n \\"TotalCount\\": 10\\n}","errorExample":""},{"type":"xml","example":"<ListTagKeysResponse>\\n <MaxResults>20</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <TagKeys>\\n <Category>System</Category>\\n <TagKey>test</TagKey>\\n </TagKeys>\\n <TotalCount>10</TotalCount>\\n</ListTagKeysResponse>","errorExample":""}]',
+ 'title' => 'ListTagKeys',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListTagKeys',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\",\\n \\"JobId\\": \\"ff7713ca-5818-4120-85e3-0bf9******\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableLoadBalancerAccessLogResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</EnableLoadBalancerAccessLogResponse>","errorExample":""}]',
- 'title' => 'EnableLoadBalancerAccessLog',
],
- 'CreateHealthCheckTemplate' => [
- 'summary' => 'Creates a health check template in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ListTagResources' => [
+ 'summary' => 'Queries the tags of resources.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- 'abilityTreeCode' => '149',
- 'abilityTreeNodes' => [
- 'FEATUREslb6RAQIN',
- ],
- 'tenantRelevance' => 'publicInformation',
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'ClientToken',
+ 'name' => 'NextToken',
'in' => 'query',
- 'allowEmptyValue' => false,
- 'schema' => [
- 'title' => '幂等参数',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['title' => '', 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* You do not need to specify this parameter for the first request.'."\n"
+ .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
],
[
- 'name' => 'HealthCheckTemplateName',
+ 'name' => 'MaxResults',
'in' => 'query',
- 'schema' => [
- 'title' => '名称',
- 'description' => 'The name of the health check template.'."\n"
- ."\n"
- .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'HealthCheckTemplate1',
- ],
+ 'schema' => ['title' => '', 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '20', 'default' => '20'],
],
[
- 'name' => 'HealthCheckConnectPort',
+ 'name' => 'ResourceType',
'in' => 'query',
- 'schema' => [
- 'title' => '端口号',
- 'description' => 'The port that is used for health checks.'."\n"
- ."\n"
- .'Valid values: **0 to 65535**.'."\n"
- ."\n"
- .'Default value: **0**. If you set the value to 0, the port of a backend server is used for health checks.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '80',
- ],
+ 'schema' => ['title' => '', 'description' => 'The type of the resource. Valid values:'."\n"
+ ."\n"
+ .'* **acl**: an access control list (ACL)'."\n"
+ .'* **loadbalancer**: an Application Load Balancer (ALB) instance'."\n"
+ .'* **securitypolicy**: a security policy'."\n"
+ .'* **servergroup**: a server group'."\n", 'type' => 'string', 'required' => true, 'example' => 'loadbalancer'],
],
[
- 'name' => 'HealthCheckHost',
+ 'name' => 'ResourceId',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '域名',
- 'description' => 'The domain name that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **$SERVER_IP**: the private IP addresses of backend servers. If an IP address is specified, or this parameter is not specified, the ALB instance uses the private IP addresses of backend servers as domain names 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 `HealthCheckProtocol` is set to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The resource IDs.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The resource ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'alb-gws76zi******', 'title' => ''],
'required' => false,
- 'example' => '$_ip',
+ 'example' => 'acl-123',
+ 'maxItems' => 50,
+ 'minItems' => 1,
],
],
[
- 'name' => 'HealthCheckCodes',
+ 'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '状态码',
- 'description' => 'The HTTP status codes that indicate a healthy backend server.'."\n",
+ 'title' => '',
+ 'description' => 'The tags.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The HTTP status code that indicates a healthy backend server.'."\n"
- ."\n"
- .'* If **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, you can set **HealthCheckCodes** to **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, or **http\\_5xx**. Separate multiple status codes with commas (,).'."\n"
- .'* If **HealthCheckProtocol** is set to **gRPC**, the valid values of **HealthCheckCodes** are from **0 to 99**. The default value is **0**. Value ranges are supported. You can enter at most 20 value ranges. Separate multiple value ranges with commas (,).'."\n"
- ."\n"
- .'> This parameter is available only if **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
+ 'description' => 'The tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['title' => '', 'description' => 'The tag key. 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' => 'env'],
+ 'Value' => ['title' => '', 'description' => 'The tag value. 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' => 'product'],
+ ],
'required' => false,
- 'example' => 'http_2xx,http_3xx',
+ 'title' => '',
+ 'example' => '',
],
'required' => false,
- 'example' => '5',
- ],
- ],
- [
- 'name' => 'HealthCheckInterval',
- 'in' => 'query',
- 'schema' => [
- 'title' => '时间间隔',
- 'description' => 'The interval at which health checks are performed.'."\n"
- ."\n"
- .'Valid values: **1 to 50**.'."\n"
- ."\n"
- .'Default value: **2**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '2',
- ],
- ],
- [
- 'name' => 'HealthCheckTimeout',
- 'in' => 'query',
- 'schema' => [
- 'title' => '超时时间',
- 'description' => 'The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the backend server is declared unhealthy.'."\n"
- ."\n"
- .'Valid values: **1 to 300**. Unit: seconds.'."\n"
- ."\n"
- .'Default value: **5**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '5',
+ 'example' => 'test',
+ 'maxItems' => 20,
+ 'minItems' => 1,
],
],
- [
- 'name' => 'HealthCheckPath',
- 'in' => 'query',
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => 'uri',
- '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, the following special characters: - / . % ? # &, and the following extended characters: `_ ; ~ ! ( ) * [ ] @ $ ^ : \' , +`. The URL must start with a forward slash (/).'."\n"
- ."\n"
- .'> This parameter is available only if `HealthCheckProtocol` is set to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test/index.html',
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'MaxResults' => ['title' => '', 'description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'],
+ 'NextToken' => ['title' => '', 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* If **NextToken** is empty, no next page exists.'."\n"
+ .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FD******'],
+ 'TagResources' => [
+ 'title' => '',
+ 'description' => 'The tags that match the specified keys and values.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag that matches the specified key and value.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ResourceId' => ['title' => '', 'description' => 'The resource ID.'."\n", 'type' => 'string', 'example' => 'alb-gws76zijb0******'],
+ 'ResourceType' => ['title' => '', 'description' => 'The type of the resource. Valid values:'."\n"
+ ."\n"
+ .'* **acl**: an ACL'."\n"
+ .'* **loadbalancer**: an ALB instance'."\n"
+ .'* **securitypolicy**: a security policy'."\n"
+ .'* **servergroup**: a server group'."\n", 'type' => 'string', 'example' => 'loadbalancer'],
+ 'TagKey' => ['title' => '', 'description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'env'],
+ 'TagValue' => ['title' => '', 'description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'product'],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'example' => '',
+ ],
+ ],
+ 'example' => '',
],
],
- [
- 'name' => 'HealthCheckMethod',
- 'in' => 'query',
- 'schema' => [
- 'title' => '方法',
- 'description' => 'The HTTP method that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **HEAD** (default): By default, HTTP and HTTPS health checks use the HEAD method.'."\n"
- .'* **POST**: gRPC health checks use the POST method by default.'."\n"
- .'* **GET**: If the length of a response exceeds 8 KB, the response is truncated. However, the health check result is not affected.'."\n"
- ."\n"
- .'> This parameter is available only if **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HEAD',
- ],
+ ],
+ 'errorCodes' => [
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
- [
- 'name' => 'HealthCheckProtocol',
- 'in' => 'query',
- 'schema' => [
- 'title' => '协议',
- 'description' => 'The protocol that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **HTTP** (default): HTTP health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers.'."\n"
- .'* **HTTPS**: The ALB instance sends HEAD or GET requests, which simulate browser requests, to check whether the backend server is healthy. HTTPS supports encryption and provides higher security than HTTP.'."\n"
- .'* **TCP**: TCP health checks send TCP SYN packets to a backend server to check whether the port of the backend server is reachable.'."\n"
- .'* **gRPC**: gRPC health checks send POST or GET requests to a backend server to check whether the backend server is healthy.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FD******\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"alb-gws76zijb0******\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"TagKey\\": \\"env\\",\\n \\"TagValue\\": \\"product\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListTagResourcesResponse>\\n <MaxResults>20</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <TagResources>\\n <ResourceId>d-2ze1ot4ah7xjyv0d****</ResourceId>\\n <ResourceType>loadbalancer</ResourceType>\\n <TagKey>env</TagKey>\\n <TagValue>product</TagValue>\\n </TagResources>\\n</ListTagResourcesResponse>","errorExample":""}]',
+ 'title' => 'ListTagResources',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListTagResources',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securityPolicyId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ],
],
],
+ ],
+ ],
+ 'ListTagValues' => [
+ 'summary' => 'Queries tag values.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'HealthCheckHttpVersion',
- 'in' => 'query',
- 'schema' => [
- 'title' => '版本',
- 'description' => 'The HTTP version for health checks.'."\n"
- ."\n"
- .'Valid values: **HTTP 1.0** and **HTTP 1.1**.'."\n"
- ."\n"
- .'Default value: **HTTP 1.1**.'."\n"
- ."\n"
- .'> This parameter is available only if `HealthCheckProtocol` is set to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP 1.0',
- ],
+ 'AK' => [],
],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'list'],
+ 'parameters' => [
[
- 'name' => 'HealthyThreshold',
+ 'name' => 'NextToken',
'in' => 'query',
- 'schema' => [
- 'title' => '健康阈值',
- '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"
- .'Default value: **3**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '4',
- ],
+ 'schema' => ['title' => '', 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* You do not need to specify this parameter for the first request.'."\n"
+ .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
],
[
- 'name' => 'UnhealthyThreshold',
+ 'name' => 'MaxResults',
'in' => 'query',
- 'schema' => [
- 'title' => '不健康阈值',
- '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"
- .'Default value: **3**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '4',
- ],
+ 'schema' => ['title' => '', 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '20', 'default' => '20'],
],
[
- 'name' => 'DryRun',
+ 'name' => 'ResourceType',
'in' => 'query',
- 'schema' => [
- 'title' => 'dryRun',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a **2xx** HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['title' => '', 'description' => 'The type of the resource. Valid values:'."\n"
+ ."\n"
+ .'* **loadbalancer**: an Application Load Balancer (ALB) instance'."\n"
+ .'* **acl**: an access control list (ACL)'."\n"
+ .'* **securitypolicy**: a security policy'."\n"
+ .'* **servergroup**: a server group'."\n", 'type' => 'string', 'required' => false, 'example' => 'loadbalancer'],
],
[
- 'name' => 'Tag',
+ 'name' => 'ResourceId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key. 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' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. 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' => 'product',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
+ 'schema' => ['title' => '', 'description' => 'The resource ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'alb-gws76zijb0******'],
],
[
- 'name' => 'ResourceGroupId',
+ 'name' => 'TagKey',
'in' => 'query',
- 'schema' => [
- 'description' => 'The resource group ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-atstuj3rtop****',
- ],
+ 'schema' => ['title' => '', 'description' => 'The tag key. 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' => true, 'example' => 'test'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The health check template.'."\n",
+ 'description' => 'The operation to query tag values.'."\n",
'type' => 'object',
'properties' => [
- 'HealthCheckTemplateId' => [
- 'title' => '健康检查模板ID',
- 'description' => 'The ID of the health check template.'."\n",
- 'type' => 'string',
- 'example' => 'hct-1224334',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
+ 'MaxResults' => ['title' => '', 'description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'],
+ 'NextToken' => ['title' => '', 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* If **NextToken** is empty, no next page exists.'."\n"
+ .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'],
+ 'TagValues' => [
+ 'title' => '',
+ 'description' => 'The tag values.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The tag that matches all filter conditions.'."\n", 'type' => 'string', 'example' => 'owner', 'title' => ''],
+ 'example' => '',
],
+ 'TotalCount' => ['title' => '', 'description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'QuotaExceeded.HealthCheckTemplatesNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
- 403 => [
- [
- 'errorCode' => 'Forbidden.HealthCheckTemplate',
- 'errorMessage' => 'Authentication has failed for HealthCheckTemplate.',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\",\\n \\"TagValues\\": [\\n \\"owner\\"\\n ],\\n \\"TotalCount\\": 10\\n}","errorExample":""},{"type":"xml","example":"<ListTagValuesResponse>\\n <MaxResults>20</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <TagValues>owner</TagValues>\\n <TotalCount>10</TotalCount>\\n</ListTagValuesResponse>","errorExample":""}]',
+ 'title' => 'ListTagValues',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'alb:ListTagValues',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"HealthCheckTemplateId\\": \\"hct-pno8sisi******\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateHealthCheckTemplateResponse>\\n <HealthCheckTemplateId>hct-1224334</HealthCheckTemplateId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</CreateHealthCheckTemplateResponse>","errorExample":""}]',
- 'title' => 'CreateHealthCheckTemplate',
],
- 'GetHealthCheckTemplateAttribute' => [
- 'summary' => 'Queries the details about a health check template.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'LoadBalancerJoinSecurityGroup' => [
+ 'summary' => 'Adds an Application Load Balancer (ALB) instance to a security group.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'get',
- 'abilityTreeCode' => '160',
- 'abilityTreeNodes' => [
- 'FEATUREslb6RAQIN',
- ],
+ 'operationType' => 'none',
+ 'abilityTreeCode' => '171521',
+ 'abilityTreeNodes' => ['FEATUREslbKS6M4D', 'FEATUREslb39XGK4'],
],
'parameters' => [
[
- 'name' => 'HealthCheckTemplateId',
+ 'name' => 'SecurityGroupIds',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '健康检查模板Id',
- 'description' => 'The ID of the health check template.'."\n",
- 'type' => 'string',
+ 'description' => 'The security group IDs.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The security group ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sg-m5e7xkprgt1pi1ik****', 'title' => ''],
'required' => true,
- 'docRequired' => true,
- 'example' => 'hct-x4jazoyi6tvsq9****',
+ 'maxItems' => 10,
+ 'title' => '',
+ 'example' => '',
],
],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ALB instance ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'alb-h7kcw4g4nnvtqp****', 'title' => ''],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''],
+ ],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'Schema of Response'."\n",
+ 'title' => '',
+ 'description' => 'The task result.'."\n",
'type' => 'object',
'properties' => [
- 'HealthCheckConnectPort' => [
- 'title' => '端口',
- 'description' => 'The port that is used for health checks.'."\n"
- ."\n"
- .'Valid values: **0** to **65535**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '80',
- ],
- 'HealthCheckHost' => [
- 'title' => '域名',
- 'description' => 'The domain name that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **$SERVER_IP**: the private IP addresses of backend servers. If an IP address is specified, or this parameter is not specified, the ALB instance uses the private IP addresses of backend servers as domain names 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 `HealthCheckProtocol` is set to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'example' => '$SERVER_IP',
- ],
- 'HealthCheckCodes' => [
- 'title' => '状态码',
- 'description' => 'The HTTP status codes that indicate a healthy backend server.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The HTTP status code that indicates a healthy backend server.'."\n"
- ."\n"
- .'* If **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, you can set **HealthCheckCodes** to **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, or **http\\_5xx**. Separate multiple status codes with commas (,).'."\n"
- .'* If **HealthCheckProtocol** is set to **gRPC**, the valid values of **HealthCheckCodes** are from **0 to 99**. The default value is **0**. Value ranges are supported. You can enter at most 20 value ranges. Separate multiple value ranges with commas (,).'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'example' => 'http_2xx,http_3xx',
- ],
- ],
- 'HealthCheckHttpVersion' => [
- 'title' => '版本',
- 'description' => 'The HTTP version for health checks.'."\n"
- ."\n"
- .'Valid values: **HTTP1.0** and **HTTP1.1**.'."\n"
- ."\n"
- .'> This parameter takes effect only if you set `HealthCheckProtocol` to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'example' => 'HTTP1.0',
- ],
- 'HealthCheckTemplateId' => [
- 'title' => '健康检查模板Id',
- 'description' => 'The ID of the health check template.'."\n",
- 'type' => 'string',
- 'example' => 'hct-x4jazoyi6tvsq9****',
- ],
- 'HealthCheckInterval' => [
- 'title' => '间隔时间',
- 'description' => 'The interval at which health checks are performed. Unit: seconds. Valid values: **1 to 50**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '3',
- ],
- 'HealthCheckMethod' => [
- 'title' => '方法',
- 'description' => 'The HTTP method that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **HEAD** (default): By default, HTTP and HTTPS health checks use the HEAD method.'."\n"
- .'* **GET**: If the length of a response exceeds 8 KB, the response is truncated. However, the health check result is not affected.'."\n"
- .'* **POST**: gRPC health checks use the POST method by default.'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'example' => 'GET',
- ],
- 'HealthCheckPath' => [
- 'title' => 'uri',
- '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, the following special characters: - / . % ? # &, and the following extended characters: `_ ; ~ ! ( ) * [ ] @ $ ^ : \' , +`. The URL must start with a forward slash (/).'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'example' => '/test/index.html',
- ],
- 'HealthCheckProtocol' => [
- 'title' => '协议',
- 'description' => 'The protocol that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **HTTP** (default): HTTP health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers.'."\n"
- .'* **HTTPS**: The ALB instance sends HEAD or GET requests, which simulate browser requests, to check whether the backend server is healthy. HTTPS supports encryption and provides higher security than HTTP.'."\n"
- .'* **TCP**: TCP health checks send TCP SYN packets to a backend server to probe the availability of backend servers.'."\n"
- .'* **gRPC**: gRPC health checks send POST or GET requests to a backend server to probe the availability of backend servers.'."\n",
- 'type' => 'string',
- 'example' => 'HTTP',
- ],
- 'HealthCheckTemplateName' => [
- 'title' => '名称',
- 'description' => 'The name of the health check template.'."\n"
- ."\n"
- .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n",
- 'type' => 'string',
- 'example' => 'HealthCheckTemplate1',
- ],
- 'HealthCheckTimeout' => [
- 'title' => '超时时间',
- 'description' => 'The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the backend server is declared unhealthy. Unit: seconds.'."\n"
- ."\n"
- .'Valid values: **1** to **300**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '200',
- ],
- 'HealthyThreshold' => [
- 'title' => '健康阈值',
- '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',
- 'example' => '5',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'DB1AFC33-DAE8-528E-AA4D-4A6AABE71945',
- ],
- 'UnhealthyThreshold' => [
- 'title' => '不健康阈值',
- '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',
- 'example' => '5',
- ],
- 'Tags' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags.',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key. The tag key can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag key cannot start with `acs:` or `aliyun`.'."\n",
- 'type' => 'string',
- 'example' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. The tag value can be up to 128 characters in length, and cannot start with `acs:`. The tag value cannot contain `http://` or `https://`.'."\n",
- 'type' => 'string',
- 'example' => 'product',
- ],
- ],
- ],
- ],
- 'ResourceGroupId' => [
- 'description' => 'The resource group ID.'."\n",
- 'type' => 'string',
- 'example' => 'rg-atstuj3rtop****',
- ],
+ 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '8fe81f25-79a0-4fa0-9036-f2601fda****', 'title' => ''],
+ 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'D3B9AE45-F5DB-58E3-A4B5-EE58F1EC****', 'title' => ''],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
- 403 => [
- [
- 'errorCode' => 'Forbidden.HealthCheckTemplate',
- 'errorMessage' => 'Authentication has failed for HealthCheckTemplate.',
- ],
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'ResourceAlreadyAssociated.SecurityGroup', 'errorMessage' => 'The specified resource of %s is already associated.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.SecurityGroupNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.SecurityGroupNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.LbAssociatedAclCanNotJoinSecurityGroup', 'errorMessage' => 'The operation is not allowed because of loadBalancer associated acl can not join security group.', 'description' => 'This operation is not allowed because the listener under the Server Load Balancer instance has been bound to an access control policy. You are not allowed to join the security group again.'],
],
- [
- [
- 'errorCode' => 'ResourceNotFound.HealthCheckTemplate',
- 'errorMessage' => 'The specified resource %s is not found.',
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.SecurityGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Alb::2020-06-16::ListAsynJobs', 'callbackInterval' => 3000, 'maxCallbackTimes' => 20],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"8fe81f25-79a0-4fa0-9036-f2601fda****\\",\\n \\"RequestId\\": \\"D3B9AE45-F5DB-58E3-A4B5-EE58F1EC****\\"\\n}","type":"json"}]',
+ 'title' => 'LoadBalancerJoinSecurityGroup',
+ 'description' => '* By default, security groups are unavailable. To use security groups, contact your account manager.'."\n"
+ ."\n"
+ .'* Make sure that a security group is created. For more information about how to create security groups, see [CreateSecurityGroup](~~2679843~~).'."\n"
+ ."\n"
+ .'* Each ALB instance can be added to at most four security groups.'."\n"
+ ."\n"
+ .'* To query the security groups of an ALB instance, call the [GetLoadBalancerAttribute](~~2254835~~) operation.'."\n"
+ ."\n"
+ .'* GetLoadBalancerAttribute is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAsynJobs](~~2254893~~) operation to query the status of the task.'."\n"
+ ."\n"
+ .' * If the task is in the Succeeded state, the ALB instance is added to the security group.'."\n"
+ .' * If the task is in the Processing state, the ALB instance is being added to the security group. In this case, you can query the task but cannot perform other operations.'."\n",
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'alb:LoadBalancerJoinSecurityGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckHost\\": \\"$SERVER_IP\\",\\n \\"HealthCheckCodes\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.0\\",\\n \\"HealthCheckTemplateId\\": \\"hct-x4jazoyi6tvsq9****\\",\\n \\"HealthCheckInterval\\": 3,\\n \\"HealthCheckMethod\\": \\"GET\\",\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"HTTP\\",\\n \\"HealthCheckTemplateName\\": \\"HealthCheckTemplate1\\",\\n \\"HealthCheckTimeout\\": 200,\\n \\"HealthyThreshold\\": 5,\\n \\"RequestId\\": \\"DB1AFC33-DAE8-528E-AA4D-4A6A******\\",\\n \\"UnhealthyThreshold\\": 5,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\"\\n}","errorExample":""},{"type":"xml","example":"<GetHealthCheckTemplateAttributeResponse>\\n <HealthCheckConnectPort>80</HealthCheckConnectPort>\\n <HealthCheckHost>$SERVER_IP</HealthCheckHost>\\n <HealthCheckCodes>http_2xx,http_3xx</HealthCheckCodes>\\n <HealthCheckHttpVersion>HTTP1.0</HealthCheckHttpVersion>\\n <HealthCheckTemplateId>hct-x4jazoyi6tvsq9****</HealthCheckTemplateId>\\n <HealthCheckInterval>3</HealthCheckInterval>\\n <HealthCheckMethod>GET</HealthCheckMethod>\\n <HealthCheckPath>/test/index.html</HealthCheckPath>\\n <HealthCheckProtocol>HTTP</HealthCheckProtocol>\\n <HealthCheckTemplateName>HealthCheckTemplate1</HealthCheckTemplateName>\\n <HealthCheckTimeout>200</HealthCheckTimeout>\\n <HealthyThreshold>5</HealthyThreshold>\\n <RequestId>DB1AFC33-DAE8-528E-AA4D-4A6AABE71945</RequestId>\\n <UnhealthyThreshold>5</UnhealthyThreshold>\\n</GetHealthCheckTemplateAttributeResponse>","errorExample":""}]',
- 'title' => 'GetHealthCheckTemplateAttribute',
],
- 'DeleteHealthCheckTemplates' => [
- 'summary' => 'Deletes health check templates.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'LoadBalancerLeaveSecurityGroup' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -17476,338 +11483,260 @@
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'delete',
+ 'operationType' => 'none',
+ 'abilityTreeCode' => '171520',
+ 'abilityTreeNodes' => ['FEATUREslbKS6M4D', 'FEATUREslb39XGK4'],
],
'parameters' => [
[
- 'name' => 'HealthCheckTemplateIds',
+ 'name' => 'SecurityGroupIds',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '健康检查模板Id列表',
- 'description' => 'The IDs of health check templates. You can specify at most 10 IDs.'."\n",
+ 'description' => 'The security group IDs.',
'type' => 'array',
- 'items' => [
- 'description' => 'Delete specified health check templates.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'hct-bp1qjwo61pqz3ahltv****',
- ],
+ 'items' => ['description' => 'The security group ID.', 'type' => 'string', 'required' => false, 'example' => 'sg-1nmf15kvwj37g2g1****', 'title' => ''],
'required' => true,
- 'example' => 'acl-123',
'maxItems' => 10,
- 'minItems' => 1,
+ 'title' => '',
+ 'example' => '',
],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等token',
- 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must ensure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['description' => 'The ID of the ALB instance.', 'type' => 'string', 'required' => true, 'example' => 'alb-iv9gj3spak6fbj****', 'title' => ''],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => 'dryRun',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a **2xx HTTP** status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The task result.', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The health check templates deleted.'."\n",
+ 'title' => '',
+ 'description' => '',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'EC0C96E4-7CCB-599C-9329-3A5DB6FF****', 'title' => ''],
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'example' => '51c5b627-3500-487c-b17d-5cc583f0****', 'title' => ''],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.HealthCheckTemplate',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.SecurityGroupNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'ResourceNotAssociated.SecurityGroup', 'errorMessage' => 'The specified resource of %s is not associated.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.SecurityGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Alb::2020-06-16::ListAsynJobs', 'callbackInterval' => 3000, 'maxCallbackTimes' => 20],
+ 'title' => 'LoadBalancerLeaveSecurityGroup',
+ 'summary' => 'Removes an Application Load Balancer (ALB) instance from a security group.',
+ 'description' => '- LoadBalancerLeaveSecurityGroup is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAsynJobs](~~2254893~~) operation to query the status of the task.'."\n"
+ ."\n"
+ .' - If the task is in the Succeeded state, the ALB instance is removed from the security group.'."\n"
+ ."\n"
+ .' - If the task is in the Processing state, the ALB instance is being removed from the security group. In this case, you can query the task but cannot perform other operations.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'alb:LoadBalancerLeaveSecurityGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteHealthCheckTemplatesResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</DeleteHealthCheckTemplatesResponse>","errorExample":""}]',
- 'title' => 'DeleteHealthCheckTemplates',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC0C96E4-7CCB-599C-9329-3A5DB6FF****\\",\\n \\"JobId\\": \\"51c5b627-3500-487c-b17d-5cc583f0****\\"\\n}","type":"json"}]',
],
- 'UpdateHealthCheckTemplateAttribute' => [
- 'summary' => 'Modifies the attributes, such as the name and protocol, of a health check template.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ModifyCapacityReservation' => [
+ 'summary' => 'Creates and updates a Load Balancer Capacity Unit (LCU) reservation.',
+ 'path' => '',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
- [
- 'PrivateKey' => [],
- ],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'paid',
+ 'abilityTreeNodes' => ['FEATUREslbEUW2CG'],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'allowEmptyValue' => false,
- 'schema' => [
- 'title' => '幂等参数',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
- ],
- [
- 'name' => 'HealthCheckTemplateName',
- 'in' => 'query',
- 'schema' => [
- 'title' => '名称',
- 'description' => 'The name of the health check template.'."\n"
- ."\n"
- .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HealthCheckTemplate1',
- ],
- ],
- [
- 'name' => 'HealthCheckConnectPort',
+ 'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => '端口号',
- 'description' => 'The port that is used for health checks. Valid values: **0 to 65535**. Default value: **0**. This value indicates that the port of a backend server is used for health checks.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '80',
- ],
+ 'schema' => ['description' => 'The ID of the Application Load Balancer (ALB) instance.', 'type' => 'string', 'required' => true, 'example' => 'alb-iv9gj3spak6fbj****', 'title' => ''],
],
[
- 'name' => 'HealthCheckHost',
+ 'name' => 'ResetCapacityReservation',
'in' => 'query',
'schema' => [
- 'title' => '域名',
- 'description' => 'The domain name that is used for health checks. Valid values:'."\n"
+ 'description' => 'Specifies whether to cancel the LCU reservation. Valid values:'."\n"
."\n"
- .'* **$SERVER_IP** (default): the private IP address of a backend server. If an IP address is specified, or this parameter is not specified, the ALB instance uses the private IP addresses of backend servers as domain names 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"
+ .'- **true**: Cancels the LCU reservation.'."\n"
."\n"
- .'> This parameter is available only if `HealthCheckProtocol` is set to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
+ .'- **false** (default): Does not cancel the LCU reservation. You do not need to specify this parameter when creating or updating an LCU reservation.',
+ 'enumValueTitles' => [],
+ 'type' => 'boolean',
+ 'example' => 'false',
+ 'default' => 'false',
+ 'enum' => ['true', 'false'],
+ 'title' => '',
'required' => false,
- 'example' => '$_ip',
],
],
[
- 'name' => 'HealthCheckCodes',
+ 'name' => 'MinimumLoadBalancerCapacity',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '状态码',
- 'description' => 'The HTTP status codes that indicate a healthy backend server.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The HTTP status code that indicates a healthy backend server.'."\n"
- ."\n"
- .'* If **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, you can set **HealthCheckCodes** to **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, or **http\\_5xx**. Separate multiple status codes with commas (,).'."\n"
- .'* If **HealthCheckProtocol** is set to **gRPC**, the valid values of **HealthCheckCodes** are from **0 to 99**. The default value is **0**. Value ranges are supported. You can enter at most 20 value ranges. Separate multiple value ranges with commas (,).'."\n"
- ."\n"
- .'> This parameter is available only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'http_2xx,http_3xx',
+ 'type' => 'object',
+ 'properties' => [
+ 'CapacityUnits' => ['description' => 'The number of LCUs to reserve per hour.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => '', 'required' => false],
],
'required' => false,
- 'example' => '5',
- ],
- ],
- [
- 'name' => 'HealthCheckInterval',
- 'in' => 'query',
- 'schema' => [
- 'title' => '时间间隔',
- 'description' => 'The interval at which health checks are performed. Unit: seconds. Valid values: **1 to 50**. Default value: **2**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '5',
+ 'title' => '',
+ 'description' => 'The minimum LCU value to reserve.',
+ 'example' => '',
],
],
[
- 'name' => 'HealthCheckTimeout',
- 'in' => 'query',
- 'schema' => [
- 'title' => '超时时间',
- 'description' => 'The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the backend server is declared unhealthy.'."\n"
- ."\n"
- .'Unit: seconds. Valid values: **1 to 300**. Default value: **5**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '300',
- 'minimum' => '1',
- 'example' => '3',
- ],
- ],
- [
- 'name' => 'HealthCheckPath',
+ 'name' => 'DryRun',
'in' => 'query',
'schema' => [
- 'title' => 'uri',
- '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, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), ampersands (&), and the following extended character sets: `_ ; ~ ! ( ) * [ ] @ $ ^ : \' , +`.'."\n"
+ 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
."\n"
- .'The URL must start with a forward slash (/).'."\n"
+ .'- **true**: Sends a check request but does not reserve any resources. The system checks the request for required parameters, format, and service limits. If the check fails, an error is returned. If the check passes, the `DryRunOperation` error code is returned.'."\n"
."\n"
- .'> This parameter is available only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
+ .'- **false** (default): Sends a normal request. After the request passes the check, an HTTP 2xx status code is returned and the operation is performed.',
+ 'enumValueTitles' => ['true' => 'true', 'false' => 'false'],
+ 'type' => 'boolean',
'required' => false,
- 'example' => '/test/index.html',
+ 'example' => 'false',
+ 'title' => '',
],
],
[
- 'name' => 'HealthCheckMethod',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '方法',
- 'description' => 'The HTTP method that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **HEAD** (default): By default, HTTP and HTTPS health checks use the HEAD method.'."\n"
- .'* **GET**: If the length of a response exceeds 8 KB, the response is truncated. However, the health check result is not affected.'."\n"
- .'* **POST**: gRPC health checks use the POST method by default.'."\n"
- ."\n"
- .'> This parameter is available only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HEAD',
- ],
+ 'schema' => ['description' => 'A client token to ensure the idempotence of the request. Generate a token from your client and make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
+ ."\n"
+ .'> If this parameter is not specified, the system uses the RequestId as the ClientToken. The RequestId of each API request is different.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''],
],
- [
- 'name' => 'HealthCheckProtocol',
- 'in' => 'query',
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '协议',
- 'description' => 'The protocol that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **HTTP** (default): HTTP health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers.'."\n"
- .'* **HTTPS**: The ALB instance sends HEAD or GET requests, which simulate browser requests, to check whether the backend server is healthy. HTTPS supports encryption and provides higher security than HTTP.'."\n"
- .'* **TCP**: TCP health checks send TCP SYN packets to a backend server to check whether the port of the backend server is reachable.'."\n"
- .'* **gRPC**: gRPC health checks send POST or GET requests to a backend server to check whether the backend server is healthy.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******', 'title' => ''],
+ ],
+ 'title' => '',
+ 'description' => 'The schema of the response.',
+ 'example' => '',
],
],
- [
- 'name' => 'HealthCheckHttpVersion',
- 'in' => 'query',
- 'schema' => [
- 'title' => '版本',
- 'description' => 'The HTTP version that is used for health checks.'."\n"
- ."\n"
- .'Valid values: **HTTP1.0** and **HTTP1.1**.'."\n"
- ."\n"
- .'Default value: **HTTP1.1**.'."\n"
- ."\n"
- .'> This parameter is available only if you set `HealthCheckProtocol` to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'HTTP1.0',
- ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'OperationDenied.ListenerNotFound', 'errorMessage' => 'The operation is not allowed because of ListenerNotFound.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.CapacityReservationNotSupport', 'errorMessage' => 'Resource reservation is not supported.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.CapacityUnitsBelowMinimum', 'errorMessage' => 'The operation is not allowed because of CapacityUnitsBelowMinimum.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.CapacityDecreaseRequestLimitExceeded', 'errorMessage' => 'The operation is not allowed because of CapacityDecreaseRequestLimitExceeded.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.PriorRequestNotComplete', 'errorMessage' => 'The operation is not allowed because of PriorRequestNotComplete.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.DeploymentSetExists', 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetExists.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.DeploymentSetIsEmpty', 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetIsEmpty.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.DeploymentSetsConflicts', 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetsConflicts.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.DeploymentSetsNotSupport', 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetsNotSupport.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.DeploymentSetsStrategyNotMatch', 'errorMessage' => 'The operation is not allowed because of DeploymentSetsStrategyNotMatch.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.ReservationMaxLcuPerLb', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.ReservationMaxLcuPerRegion', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.DeploymentSetsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.DeploymentSetsNotSharedToAlb', 'errorMessage' => 'DeploymentSets are not shared to alb.', 'description' => 'These deployment sets are not shared to the ALB.'],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified resource of %s is not found.'],
],
+ ],
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => 'ModifyCapacityReservation',
+ 'description' => '**ModifyCapacityReservation** is an asynchronous operation. After you send a request, the system returns a request ID and runs the task in the background. The LCU reservation is not immediately updated. You can call the DescribeCapacityReservation operation to query the status of an LCU reservation:'."\n"
+ ."\n"
+ .'- If an LCU reservation is in the **Pending** state, it is being created.'."\n"
+ ."\n"
+ .'- If an LCU reservation is in the **Provisioned** state, it is created.'."\n"
+ ."\n"
+ .'- If an LCU reservation is in the **Rebalancing** state, it is being rebalanced across zones.',
+ 'changeSet' => [],
+ 'ramActions' => [],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","type":"json"}]',
+ ],
+ 'MoveResourceGroup' => [
+ 'summary' => 'Moves a resource to another resource group.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'HealthyThreshold',
- 'in' => 'query',
- 'schema' => [
- 'title' => '健康阈值',
- '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"
- .'Default value: **3**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '4',
- ],
+ 'AK' => [],
],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'update'],
+ 'parameters' => [
[
- 'name' => 'UnhealthyThreshold',
+ 'name' => 'ResourceType',
'in' => 'query',
- 'schema' => [
- 'title' => '不健康阈值',
- '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"
- .'Default value: **3**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '4',
- ],
+ 'schema' => ['description' => 'The type of the resource. Valid values:'."\n"
+ ."\n"
+ .'- **loadbalancer**: Application Load Balancer (ALB) instance'."\n"
+ ."\n"
+ .'- **acl**: access control list (ACL)'."\n"
+ ."\n"
+ .'- **securitypolicy**: security policy'."\n"
+ ."\n"
+ .'- **servergroup**: server group', 'type' => 'string', 'required' => true, 'example' => 'acl', 'title' => ''],
],
[
- 'name' => 'DryRun',
+ 'name' => 'ResourceId',
'in' => 'query',
- 'schema' => [
- 'title' => 'dryRun',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a **2xx** HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'The resource ID.', 'type' => 'string', 'required' => true, 'example' => 'acl-hp34s2h0xx1ht4nwo****', 'title' => ''],
],
[
- 'name' => 'HealthCheckTemplateId',
+ 'name' => 'NewResourceGroupId',
'in' => 'query',
- 'schema' => [
- 'title' => '健康检查模板ID',
- 'description' => 'The template ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'hct-bp1qjwo61pqz3ahltv0mw',
- ],
+ 'schema' => ['description' => 'The ID of the resource group to which you want to transfer the cloud resource.'."\n"
+ ."\n"
+ .'> You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is resource management?](~~94475~~)', 'type' => 'string', 'required' => true, 'example' => 'rg-aekzbi7******', 'title' => ''],
],
],
'responses' => [
@@ -17817,166 +11746,91 @@
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.HealthCheckTemplate',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
+ ['errorCode' => 'NotExist.ResourceGroup', 'errorMessage' => 'ResourceGroup does not exist.', 'description' => ''],
],
403 => [
- [
- 'errorCode' => 'Forbidden.HealthCheckTemplate',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'ACL authentication has failed.', 'description' => ''],
],
[
- [
- 'errorCode' => 'ResourceNotFound.HealthCheckTemplate',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'title' => 'MoveResourceGroup',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:MoveResourceGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateHealthCheckTemplateAttributeResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</UpdateHealthCheckTemplateAttributeResponse>","errorExample":""}]',
- 'title' => 'UpdateHealthCheckTemplateAttribute',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\"\\n}","type":"json"}]',
],
- 'ListHealthCheckTemplates' => [
- 'summary' => 'Queries health check templates in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'RemoveEntriesFromAcl' => [
+ 'summary' => 'Removes entries from an access control list (ACL).',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- 'abilityTreeCode' => '151',
- 'abilityTreeNodes' => [
- 'FEATUREslb6RAQIN',
- ],
- ],
+ 'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
- 'name' => 'NextToken',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '分页查询标识',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* You do not need to specify this parameter for the first request.'."\n"
- .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF******'],
],
[
- 'name' => 'MaxResults',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '查询数量',
- 'description' => 'The number of entries to return in each call. Valid values: **1** to **100**. Default value: **20**'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '50',
- 'default' => '20',
- ],
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
[
- 'name' => 'HealthCheckTemplateIds',
+ 'name' => 'AclId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '健康检查模板ID列表',
- 'description' => 'The IDs of health check templates.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The IDs of health check templates. You can specify up to 20 IDs in each call. The results are filtered based on the specified IDs.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'hct-bp1qjwo61pqz3ahltv****',
- ],
- 'required' => false,
- 'maxItems' => 20,
- ],
+ 'schema' => ['title' => '', 'description' => 'The ID of the ACL.'."\n", 'type' => 'string', 'required' => true, 'example' => 'acl-hp34s2h0xx1ht4nwo****'],
],
[
- 'name' => 'HealthCheckTemplateNames',
+ 'name' => 'Entries',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '健康检查模板名称列表',
- 'description' => 'The health check templates.'."\n",
+ 'title' => '',
+ 'description' => 'The entries that you want to remove. You can remove up to 20 entries in each call.'."\n",
'type' => 'array',
- 'items' => [
- 'description' => 'The names of health check templates. You can specify up to 10 names in each call. The results are filtered based on the specified names.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'required' => false,
+ 'items' => ['description' => 'The entry that you want to remove. You can remove up to 20 entries in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.1.0/24', 'title' => ''],
+ 'required' => true,
'maxItems' => 20,
- ],
- ],
- [
- 'name' => 'Tag',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key. 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' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. 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' => 'product',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- ],
- [
- 'name' => 'ResourceGroupId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The resource group ID. You can filter the query results based on the specified ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-atstuj3rtop****',
+ 'minItems' => 1,
+ 'example' => '',
],
],
],
@@ -17984,233 +11838,52 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The information about the health check templates.'."\n",
+ 'description' => 'The operation to remove entries from an ACL.'."\n",
'type' => 'object',
'properties' => [
- 'HealthCheckTemplates' => [
- 'title' => '健康检查模板',
- 'description' => 'The health check templates.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information about the health check template.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'HealthCheckConnectPort' => [
- 'title' => '端口',
- 'description' => 'The port that is used for health checks.'."\n"
- ."\n"
- .'Valid values: \\*\\* 0 to 65535\\*\\*.'."\n"
- ."\n"
- .'The default value is **0**, which specifies that the port of a backend server is used for health checks.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '80',
- ],
- 'HealthCheckHost' => [
- 'title' => '域名',
- 'description' => 'The domain name that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **$SERVER_IP** (default): the private IP address of a backend server. If an IP address is specified, or this parameter is not specified, the ALB 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 you set `HealthCheckProtocol` to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'example' => '$_ip',
- ],
- 'HealthCheckCodes' => [
- 'title' => '状态码',
- 'description' => 'The HTTP status codes that indicate healthy backend servers.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The HTTP status code that indicates healthy backend servers.'."\n"
- ."\n"
- .'* If **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, you can set **HealthCheckCodes** to **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, or **http\\_5xx**. Separate multiple status codes with commas (,).'."\n"
- .'* If **HealthCheckProtocol** is set to **gRPC**, the valid values of **HealthCheckCodes** are from **0 to 99**. The default value is **0**. Value ranges are supported. You can enter at most 20 value ranges. Separate multiple value ranges with commas (,).'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'example' => 'http_2xx,http_3xx',
- ],
- ],
- 'HealthCheckHttpVersion' => [
- 'title' => '版本',
- 'description' => 'The HTTP version for health checks.'."\n"
- ."\n"
- .'Valid values: **HTTP 1.0** and **HTTP 1.1**.'."\n"
- ."\n"
- .'Default value: **HTTP 1.1**.'."\n"
- ."\n"
- .'> This parameter takes effect only if you set `HealthCheckProtocol` to **HTTP** or **HTTPS**.'."\n",
- 'type' => 'string',
- 'example' => 'HTTP 1.0',
- ],
- 'HealthCheckInterval' => [
- 'title' => '间隔时间',
- 'description' => 'The interval at which health checks are performed. Unit: seconds. Valid values: **1 to 50**. Default value: **2**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '5',
- ],
- 'HealthCheckMethod' => [
- 'title' => '方法',
- 'description' => 'The HTTP method that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **HEAD** (default): By default, HTTP and HTTPS health checks use the HEAD method.'."\n"
- .'* **GET**: If the length of a response exceeds 8 KB, the response is truncated. However, the health check result is not affected.'."\n"
- .'* **POST**: gRPC health checks use the POST method by default.'."\n"
- ."\n"
- .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**, **HTTPS**, or **gRPC**.'."\n",
- 'type' => 'string',
- 'example' => 'HEAD',
- ],
- 'HealthCheckPath' => [
- 'title' => 'uri',
- 'description' => 'The URL path that you want to use for health checks.'."\n"
- ."\n"
- .'The URL must be 1 to 80 characters in length, and can contain letters, digits, the following special characters: - / . % ? # &, and the following extended characters: `_ ; ~ ! ( ) * [ ] @ $ ^ : \' , +`. The URL must start with a forward slash (/).'."\n",
- 'type' => 'string',
- 'example' => '/test/index.html',
- ],
- 'HealthCheckProtocol' => [
- 'title' => '协议',
- 'description' => 'The protocol that is used for health checks. Valid values:'."\n"
- ."\n"
- .'* **HTTP** (default): The ALB instance sends HEAD or GET requests, which simulate browser requests, to check whether the backend server is healthy.'."\n"
- .'* **HTTPS**: HTTPS health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers. HTTPS provides higher security because HTTPS supports data encryption.'."\n"
- .'* **TCP**: TCP health checks send TCP SYN packets to a backend server to check whether the port of the backend server is reachable.'."\n"
- .'* **gRPC**: gRPC health checks send POST or GET requests to a backend server to check whether the backend server is healthy.'."\n",
- 'type' => 'string',
- 'example' => 'HTTP',
- ],
- 'HealthCheckTemplateId' => [
- 'title' => '健康检查模板Id',
- 'description' => 'The ID of the health check template.'."\n",
- 'type' => 'string',
- 'example' => 'hct-bp1qjwo61pqz3ahltv****',
- ],
- 'HealthCheckTemplateName' => [
- 'title' => '名称',
- 'description' => 'The name of the health check template.'."\n"
- ."\n"
- .'The name must be 2 to 128 character characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n",
- 'type' => 'string',
- 'example' => 'HealthCheckTemplate1',
- ],
- 'HealthCheckTimeout' => [
- 'title' => '超时时间',
- 'description' => 'The timeout period of a health check response. If a backend Elastic Compute Service (ECS) instance does not respond within the specified timeout period, the ECS instance fails to pass the health check.'."\n"
- ."\n"
- .'Valid values: **1 to 300**. Unit: seconds.'."\n"
- ."\n"
- .'Default value: **5**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '3',
- ],
- 'HealthyThreshold' => [
- 'title' => '健康阈值',
- '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 changes from **fail** to **success**.'."\n"
- ."\n"
- .'Valid values: **2 to 10**.'."\n"
- ."\n"
- .'Default value: **3**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '4',
- ],
- 'UnhealthyThreshold' => [
- 'title' => '不健康阈值',
- '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 changes from **success** to **fail**.'."\n"
- ."\n"
- .'Valid values: **2 to 10**.'."\n"
- ."\n"
- .'Default value: **3**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '4',
- ],
- 'Tags' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags.',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key. The tag key can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag key cannot start with `acs:` or `aliyun`.'."\n",
- 'type' => 'string',
- 'example' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. 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' => 'product',
- ],
- ],
- ],
- ],
- 'ResourceGroupId' => [
- 'description' => 'The resource group ID.'."\n",
- 'type' => 'string',
- 'example' => 'rg-atstuj3rtop****',
- ],
- ],
- ],
- ],
- 'MaxResults' => [
- 'title' => '本次查询返回记录数量',
- 'description' => 'The number of entries returned per page. Valid values: **1** to **100**. Default value: **20**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '50',
- ],
- 'NextToken' => [
- 'title' => '分页查询标识',
- 'description' => 'The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If a value of **NextToken** was returned in the previous query, specify the value to obtain the next set of results.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
- 'TotalCount' => [
- 'title' => '总记录数',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1000',
- ],
+ 'JobId' => ['title' => '', 'description' => 'The asynchronous task ID.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.Acl', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ],
403 => [
- [
- 'errorCode' => 'Forbidden.HealthCheckTemplate',
- 'errorMessage' => 'Authentication has failed for HealthCheckTemplate.',
+ ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'ACL authentication has failed.', 'description' => ''],
+ ],
+ [
+ ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.AclEntry', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","errorExample":""},{"type":"xml","example":"<RemoveEntriesFromAclResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</RemoveEntriesFromAclResponse>","errorExample":""}]',
+ 'title' => 'RemoveEntriesFromAcl',
+ 'description' => '**RemoveEntriesFromAcl** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAclEntries](~~213616~~) operation to query the status of the task.'."\n"
+ ."\n"
+ .'* If an ACL is in the **Removing** state, the entries are being removed.'."\n"
+ .'* If an ACL cannot be found, the entries are removed.'."\n",
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:RemoveEntriesFromAcl',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"HealthCheckTemplates\\": [\\n {\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckHost\\": \\"$SERVER_IP\\",\\n \\"HealthCheckCodes\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckHttpVersion\\": \\"HTTP 1.0\\",\\n \\"HealthCheckInterval\\": 5,\\n \\"HealthCheckMethod\\": \\"HEAD\\",\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"HTTP\\",\\n \\"HealthCheckTemplateId\\": \\"hct-bp1qjwo61pqz3ahltv****\\",\\n \\"HealthCheckTemplateName\\": \\"HealthCheckTemplate1\\",\\n \\"HealthCheckTimeout\\": 3,\\n \\"HealthyThreshold\\": 4,\\n \\"UnhealthyThreshold\\": 4,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\"\\n }\\n ],\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"<ListHealthCheckTemplatesResponse>\\n <HealthCheckTemplates>\\n <HealthCheckConnectPort>80</HealthCheckConnectPort>\\n <HealthCheckHost>$_ip</HealthCheckHost>\\n <HealthCheckCodes>http_2xx,http_3xx</HealthCheckCodes>\\n <HealthCheckHttpVersion>HTTP 1.0</HealthCheckHttpVersion>\\n <HealthCheckInterval>5</HealthCheckInterval>\\n <HealthCheckMethod>HEAD</HealthCheckMethod>\\n <HealthCheckPath>/test/index.html</HealthCheckPath>\\n <HealthCheckProtocol>HTTP</HealthCheckProtocol>\\n <HealthCheckTemplateId>hct-bp1qjwo61pqz3ahltv****</HealthCheckTemplateId>\\n <HealthCheckTemplateName>HealthCheckTemplate1</HealthCheckTemplateName>\\n <HealthCheckTimeout>3</HealthCheckTimeout>\\n <HealthyThreshold>4</HealthyThreshold>\\n <UnhealthyThreshold>4</UnhealthyThreshold>\\n </HealthCheckTemplates>\\n <MaxResults>50</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <TotalCount>1000</TotalCount>\\n</ListHealthCheckTemplatesResponse>","errorExample":""}]',
- 'title' => 'ListHealthCheckTemplates',
],
- 'ApplyHealthCheckTemplateToServerGroup' => [
- 'summary' => 'Applies a health check template to a server group.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'RemoveServersFromServerGroup' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -18218,126 +11891,145 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'HealthCheckTemplateId',
+ 'name' => 'ServerGroupId',
'in' => 'query',
- 'schema' => [
- 'title' => '健康检查模板Id',
- 'description' => 'The template ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'hct-bp1qjwo61pqz3ahltv****',
- ],
+ 'schema' => ['description' => 'The server group ID.', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtop****', 'title' => ''],
],
[
- 'name' => 'ServerGroupId',
+ 'name' => 'Servers',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '服务器组Id',
- 'description' => 'The server group ID.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The backend servers to be removed. You can specify up to 200 backend servers.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The configurations of the backend server.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Port' => ['description' => 'The port that is used by the backend server. Valid values: **1** to **65535**.'."\n"
+ ."\n"
+ .'> This parameter is required when you set **ServerType** to **Ecs**, **Eni**, **Eci**, or **Ip**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'docRequired' => false, 'example' => '80', 'title' => ''],
+ 'ServerId' => ['description' => 'The backend server ID.'."\n"
+ ."\n"
+ .'- If the server group is of the **Instance** type, set ServerId to the ID of a resource of the **Ecs**, **Eni**, or **Eci** type.'."\n"
+ ."\n"
+ .'- If the server group is of the **Ip** type, set this parameter to IP addresses.'."\n"
+ ."\n"
+ .'- If the server group is of the **Fc** type, set ServerId to the Alibaba Cloud Resource Name (ARN) of a function.'."\n"
+ ."\n"
+ .'> You can call the [ListServerGroups](~~2254862~~) operation to query information about the server group type so that you can set ServerId to a proper value.', 'type' => 'string', 'required' => true, 'example' => 'i-bp1f9kdprbgy9uiu****', 'title' => ''],
+ 'ServerIp' => ['description' => 'The IP address of the elastic network interface (ENI) in inclusive mode.', 'type' => 'string', 'example' => '192.168.1.1', 'title' => '', 'required' => false],
+ 'ServerType' => ['description' => 'The type of the backend server. Valid values:'."\n"
+ ."\n"
+ .'- **Ecs**: Elastic Compute Service (ECS) instance'."\n"
+ ."\n"
+ .'- **Eni**: ENI'."\n"
+ ."\n"
+ .'- **Eci**: elastic container instance'."\n"
+ ."\n"
+ .'- **Ip**: IP address'."\n"
+ ."\n"
+ .'- **Fc**: Function Compute instance', 'type' => 'string', 'required' => true, 'docRequired' => false, 'example' => 'Ecs', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => true,
- 'example' => 'sgp-n80wyad08u0tox****',
+ 'maxItems' => 200,
+ 'minItems' => 1,
+ 'example' => '',
],
],
[
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等Token',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-426655440000',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3', 'title' => '', 'required' => false],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => 'dryRun',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The server group to which the template is applied.'."\n",
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'JobId' => ['description' => 'The asynchronous task ID.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.HealthCheckTemplate',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.ServerGroup',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
+ ['errorCode' => 'ResourceInConfiguring.BackendServer', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => 'The specified resource of %s is being configured, please try again later.'],
+ ['errorCode' => 'ResourceInConfiguring', 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', 'description' => ''],
],
403 => [
- [
- 'errorCode' => 'Forbidden.ServerGroup',
- 'errorMessage' => 'Authentication has failed for ServerGroup.',
- ],
+ ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication is failed for ServerGroup.', 'description' => ''],
],
[
- [
- 'errorCode' => 'ResourceNotFound.HealthCheckTemplate',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.BackendServer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'title' => 'RemoveServersFromServerGroup',
+ 'summary' => 'Removes backend servers from a server group.',
+ 'description' => '**RemoveServersFromServerGroup** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background.'."\n"
+ ."\n"
+ .'1. You can call [ListServerGroups](~~2254862~~) to query the status of a server group.'."\n"
+ ."\n"
+ .' - If the server group is in the **Configuring** state, the server group is being modified.'."\n"
+ ."\n"
+ .' - If the server group is in the **Available** state, the server group is running.'."\n"
+ ."\n"
+ .'2. You can call [ListServerGroupServers](~~2254863~~) to query the status of a backend server.'."\n"
+ ."\n"
+ .' - If the backend server is in the **Removing** state, the backend server is being removed from the server group.'."\n"
+ ."\n"
+ .' - If the backend server cannot be found, the backend server is no longer in the server group.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:RemoveServersFromServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\"\\n}","errorExample":""},{"type":"xml","example":"<ApplyHealthCheckTemplateToServerGroupResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</ApplyHealthCheckTemplateToServerGroupResponse>","errorExample":""}]',
- 'title' => 'ApplyHealthCheckTemplateToServerGroup',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","type":"json"}]',
],
- 'CreateSecurityPolicy' => [
- 'summary' => 'Creates a custom security policy in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'ReplaceServersInServerGroup' => [
+ 'summary' => 'Replaces the backend servers in a server group.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -18346,218 +12038,202 @@
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'create',
- 'abilityTreeCode' => '172',
- 'abilityTreeNodes' => [
- 'FEATUREslbAYSA83',
- ],
- 'tenantRelevance' => 'publicInformation',
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => ['FEATUREslbULKWF1'],
],
'parameters' => [
[
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- ],
- [
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false**(default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- ],
- [
- 'name' => 'TLSVersions',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => 'tls版本',
- 'description' => 'The supported Transport Layer Security (TLS) protocol versions.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The supported TLS protocol version. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'TLSv1.0',
- ],
- 'required' => true,
- ],
- ],
- [
- 'name' => 'ResourceGroupId',
+ 'name' => 'ServerGroupId',
'in' => 'query',
- 'schema' => [
- 'title' => '资源组id',
- 'description' => 'The resource group ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-atstuj3rtop****',
- ],
+ 'schema' => ['description' => 'The ID of the server group.'."\n"
+ ."\n"
+ .'> You cannot perform this operation on a server group of the **Fc** type.', 'type' => 'string', 'required' => true, 'example' => 'sgp-5114d593o96qxy****', 'title' => ''],
],
[
- 'name' => 'SecurityPolicyName',
- 'in' => 'query',
- 'schema' => [
- 'title' => '安全策略名称',
- 'description' => 'The name of the security policy.'."\n"
- ."\n"
- .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'test-secrity',
- ],
- ],
- [
- 'name' => 'Ciphers',
- 'in' => 'query',
+ 'name' => 'AddedServers',
+ 'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'title' => '加密套件',
- 'description' => 'The supported cipher suites.'."\n",
+ 'title' => '',
+ 'description' => 'The backend servers that you want to add. You can specify at most 200 servers in each call.',
'type' => 'array',
'items' => [
- 'description' => 'The supported cipher suites are determined by the value of **TLSVersions**.'."\n"
- ."\n"
- .'The specified cipher suites must be supported by at least one TLS protocol version that you specify.****'."\n"
- ."\n"
- .'> For example, if you set the TLSVersions parameter to TLSv1.3, you must specify cipher suites that are supported by TLS 1.3.'."\n"
- ."\n"
- .'* TLSv1.0 and TLSv1.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"
- .'* TLSv1.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"
- .'* TLSv1.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' => true,
- 'example' => ' ECDHE-ECDSA-AES128-SHA',
+ 'description' => 'The configurations of the backend server.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Description' => ['description' => 'The description of the backend server. The description must be 2 to 256 characters in length, and cannot start with http\\:// or https\\://.', 'type' => 'string', 'example' => 'test', 'title' => '', 'required' => false],
+ 'Port' => ['description' => 'The port used by the server group. Valid values: **1** to **65535**. You can specify at most 200 servers in each call.', 'type' => 'integer', 'format' => 'int32', 'docRequired' => true, 'example' => '80', 'title' => '', 'required' => true],
+ 'ServerId' => ['description' => 'The backend server ID. You can specify at most 200 servers in each call.'."\n"
+ ."\n"
+ .'- If the server group is of the **Instance** type, this parameter specifies the ID of an **Ecs**, **Eni**, or **Eci** resource.'."\n"
+ ."\n"
+ .'- If the server group is of the **Ip** type, this parameter specifies an IP address.'."\n"
+ ."\n"
+ .'> You cannot perform this operation on a server group of the **Fc** type. You can call the [ListServerGroups](~~213627~~) operation to query the type of a server group.', 'type' => 'string', 'required' => false, 'example' => 'i-bp1f9kdprbgy9uiu****', 'title' => ''],
+ 'ServerIp' => ['description' => 'The IP address of the backend server.'."\n"
+ ."\n"
+ .'If **ServerType** is set to **Eni**, you can specify the primary or secondary private IP address of the Elastic Network Interface (ENI).', 'type' => 'string', 'example' => '192.168.1.1', 'title' => '', 'required' => false],
+ 'ServerType' => ['description' => 'The type of the backend server that you want to add to the server group. You can specify at most 200 servers in each call. Valid values:'."\n"
+ ."\n"
+ .'- **Ecs**: ECS instance.'."\n"
+ ."\n"
+ .'- **Eni**: ENI elastic network interfaces (ENIs).'."\n"
+ ."\n"
+ .'- **Eci**: ECI elastic container.'."\n"
+ ."\n"
+ .'- **Ip**: IP address.'."\n"
+ ."\n"
+ .'- **Fc**: Function Compute.', 'type' => 'string', 'docRequired' => true, 'example' => 'Ecs', 'title' => '', 'required' => true],
+ 'Weight' => ['description' => 'The weight of the backend server. You can specify at most 200 servers in each call.'."\n"
+ ."\n"
+ .'Valid values: **0** to **100**. Default value: **100**. If the weight is set to **0**, no requests are forwarded to the backend server.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => '', 'required' => false],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
'required' => true,
+ 'maxItems' => 200,
'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'Tag',
+ 'name' => 'RemovedServers',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The tags.'."\n",
+ 'title' => '',
+ 'description' => 'The backend servers that you want to remove.',
'type' => 'array',
'items' => [
- 'description' => 'The tags.'."\n",
+ 'description' => 'The configurations of the backend servers that you want to remove.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The tag key. 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' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. 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' => 'product',
- ],
+ 'ServerId' => ['description' => 'The backend server ID. You can specify at most 200 servers in each call.'."\n"
+ ."\n"
+ .'- If the server group is of the **Instance** type, this parameter specifies the ID of an **Ecs**, **Eni**, or **Eci** resource.'."\n"
+ ."\n"
+ .'- If the server group is of the **Ip** type, this parameter specifies an IP address.'."\n"
+ ."\n"
+ .'> You cannot perform this operation on a server group of the **Fc** type. You can call the [ListServerGroups](~~213627~~) operation to query the type of a server group.', 'type' => 'string', 'required' => true, 'example' => 'i-bp1f9kdprbgy9uiu****', 'title' => ''],
+ 'ServerIp' => ['description' => 'The IP address of the backend server.'."\n"
+ ."\n"
+ .'If **ServerType** is set to **Eni**, you can specify the primary or secondary private IP address of the Elastic Network Interface (ENI).', 'type' => 'string', 'example' => '192.168.1.12', 'title' => '', 'required' => false],
+ 'ServerType' => ['description' => 'The type of backend server. You can specify at most 200 servers in each call. Valid values:'."\n"
+ ."\n"
+ .'- **Ecs**: ECS instance.'."\n"
+ ."\n"
+ .'- **Eni**: ENI elastic network interfaces (ENIs).'."\n"
+ ."\n"
+ .'- **Eci**: ECI elastic container.'."\n"
+ ."\n"
+ .'- **Ip**: IP address.', 'type' => 'string', 'docRequired' => true, 'example' => 'ecs', 'title' => '', 'required' => true],
+ 'Port' => ['description' => 'The port of the backend server. Valid values: **1** to **65535**. You can specify at most 200 servers in each call.', 'type' => 'integer', 'format' => 'int32', 'docRequired' => true, 'example' => '81', 'title' => '', 'required' => true],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
+ 'required' => true,
+ 'maxItems' => 200,
+ 'minItems' => 1,
+ 'example' => '',
],
],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **RequestId** as the **ClientToken**. The **RequestId** is different for each API request.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['title' => 'dryRun', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run. The system checks the required parameters, request syntax, and limits. If the request fails the validation, the corresponding error message is returned. If the request passes the dry run, the DryRunOperation error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): performs a normal request. After the request passes the check, an `HTTP 2xx` status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
+ ],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The returned data.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- 'SecurityPolicyId' => [
- 'title' => '安全策略id',
- 'description' => 'The security policy ID.'."\n",
- 'type' => 'string',
- 'example' => 'scp-bp1bpn0kn9****',
- ],
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'QuotaExceeded.SecurityPoliciesNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
+ ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
+ ['errorCode' => 'Conflict.BackendServer', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => ''],
+ ['errorCode' => 'DuplicatedParam.BackendServer', 'errorMessage' => 'The param of %s is duplicated.', 'description' => 'The param of %s is duplicated.'],
+ ['errorCode' => 'OperationDenied.EciNotSupportJobType', 'errorMessage' => 'The operation is not allowed because of eci not support job type.', 'description' => 'The operation is not allowed because of eci not support job type.'],
+ ['errorCode' => 'Mismatch.ServerType', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => ''],
+ ['errorCode' => 'ResourceInConfiguring', 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceInConfiguring.BackendServer', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => 'The specified resource of %s is being configured, please try again later.'],
+ ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.'],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.Ecs', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.Eci', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.Eni', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.BackendServer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'title' => 'ReplaceServersInServerGroup',
+ 'description' => 'The **ReplaceServersInServerGroup** operation is asynchronous. After you call this operation, the system returns a request ID, but the backend servers are not yet replaced. The replacement task continues running in the background.'."\n"
+ ."\n"
+ .'1. You can call [ListServerGroups](~~213627~~) to query the status of the server group:'."\n"
+ ."\n"
+ .' - If the server group is in the **Configuring** state, it indicates that the server group is being modified.'."\n"
+ ."\n"
+ .' - If the server group is in the **Available** state, it indicates that the server group is running.'."\n"
+ ."\n"
+ .'2. You can call [ListServerGroupServers](~~213628~~) to query the status of the backend servers:'."\n"
+ ."\n"
+ .' - If a backend server is in the **Replacing** state, it indicates that the server group is removing servers and adding new servers.'."\n"
+ ."\n"
+ .' - If a backend server is in the Available state, it indicates that the server is running.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:ReplaceServersInServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\",\\n \\"SecurityPolicyId\\": \\"sp-9cdjz6o8ha70******\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateSecurityPolicyResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <SecurityPolicyId>scp-bp1bpn0kn9****</SecurityPolicyId>\\n</CreateSecurityPolicyResponse>","errorExample":""}]',
- 'title' => 'CreateSecurityPolicy',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","type":"json"}]',
],
- 'DeleteSecurityPolicy' => [
- 'summary' => 'Deletes a custom security policy.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'StartListener' => [
+ 'summary' => 'Enables a listener.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -18565,103 +12241,81 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'ClientToken',
+ 'name' => 'ListenerId',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'schema' => ['title' => '', 'description' => 'The ID of the Application Load Balancer (ALB) listener.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******'],
],
[
- 'name' => 'DryRun',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'],
],
[
- 'name' => 'SecurityPolicyId',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '安全策略Id',
- 'description' => 'The security policy ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'spy-n0kn923****',
- ],
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the **DryRunOperation** error code is returned.'."\n"
+ .'* **false**: (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The operation to enable a listener.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'JobId' => ['title' => '', 'description' => 'The asynchronous task ID.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.SecurityPolicy',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceInUse.SecurityPolicy',
- 'errorMessage' => 'The specified resource %s is in use.',
- ],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => 'The specified resource of %s is being configured, please try again later.'],
],
- 403 => [
- [
- 'errorCode' => 'Forbidden.SecurityPolicy',
- 'errorMessage' => 'Authentication has failed for SecurityPolicy.',
- ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
- [
- [
- 'errorCode' => 'ResourceNotFound.SecurityPolicy',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\"\\n}","errorExample":""},{"type":"xml","example":"<StartListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</StartListenerResponse>","errorExample":""}]',
+ 'title' => 'StartListener',
+ 'description' => '**StartListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [GetListenerAttribute](~~2254865~~) to query the status of the task.'."\n"
+ ."\n"
+ .'* If a listener is in the **Configuring** state, the listener is being enabled.'."\n"
+ .'* If a listener is in the **Running** state, the listener is enabled.'."\n",
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:StartListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteSecurityPolicyResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</DeleteSecurityPolicyResponse>","errorExample":""}]',
- 'title' => 'DeleteSecurityPolicy',
],
- 'UpdateSecurityPolicyAttribute' => [
- 'summary' => 'Updates the attributes of a security policy, such as the TLS protocol version and the supported cipher suites.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'StartShiftLoadBalancerZones' => [
+ 'summary' => 'Removes an elastic IP address (EIP) or a virtual IP address (VIP) of a zone from a DNS record.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -18671,138 +12325,59 @@
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => ['FEATUREslb9RALVR'],
],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n", 'title' => '', 'required' => false],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
[
- 'name' => 'SecurityPolicyId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '安全策略id',
- 'description' => 'The security policy ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'spy-n0kn923****',
- ],
- ],
- [
- 'name' => 'TLSVersions',
+ 'name' => 'LoadBalancerId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => 'TLS版本',
- 'description' => 'The supported TLS protocol versions.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The supported TLS protocol version. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**. You can specify up to four TLS protocol versions.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'TLSv1.0',
- ],
- 'required' => false,
- ],
+ 'schema' => ['description' => 'The ALB instance ID.', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'."\n", 'title' => ''],
],
[
- 'name' => 'Ciphers',
+ 'name' => 'ZoneMappings',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '加密套件',
- 'description' => 'The supported cipher suites.'."\n",
+ 'title' => '',
+ 'description' => 'The mappings between zones and vSwitches.'."\n"
+ ."\n"
+ .'> You can remove only one zone in each call.',
'type' => 'array',
'items' => [
- 'description' => 'The supported cipher suites are determined by the value of **TLSVersions**. You can specify at most 32 cipher suites.'."\n"
- ."\n"
- .'The specified cipher suites must be supported by at least one TLS protocol version that you specify.'."\n"
- ."\n"
- .'> For example, if you set the TLSVersions parameter to TLSv1.3, you must specify cipher suites that are supported by TLS 1.3.'."\n"
- ."\n"
- .'* TLSv1.0 and TLSv1.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"
- .'* TLSv1.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"
- .'* TLSv1.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',
- 'type' => 'string',
+ 'type' => 'object',
+ 'properties' => [
+ 'VSwitchId' => ['description' => 'The ID of the vSwitch in the zone. By default, each zone uses one vSwitch and one subnet.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'vsw-bp1rmcrwg3erh1fh8****'."\n"],
+ 'ZoneId' => ['description' => 'The zone ID. You can call the [DescribeZones](~~189196~~) operation to query the most recent zone list.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'cn-hangzhou-a'],
+ ],
'required' => false,
- 'example' => 'ECDHE-ECDSA-AES128-SHA',
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
+ 'required' => true,
+ 'maxItems' => 1,
'minItems' => 1,
- ],
- ],
- [
- 'name' => 'SecurityPolicyName',
- 'in' => 'query',
- 'schema' => [
- 'title' => '安全策略名称',
- 'description' => 'The name of the security policy.'."\n"
- ."\n"
- .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test-secrity',
+ 'example' => '',
],
],
],
@@ -18810,388 +12385,198 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.SecurityPolicy',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'IncorrectBusinessStatus.Eip', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'OperationDenied.ZoneVSwitchChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'."\n"],
+ ['errorCode' => 'OperationDenied.ZoneMappingsNotChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.ZoneVSwitchNotExist', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The instance does not contain the zone or vSwitch specified in the request.'],
+ ['errorCode' => 'OperationDenied.EniStatusNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'This operation is not supported by the status of the ENI.'],
+ ['errorCode' => 'OperationDenied.OnlyFixedAddressAllocatedModeSupported', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'This operation is not supported by the IP mode of the SLB instance.'],
+ ['errorCode' => 'OperationDenied.ConfigLastActiveZoneNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'You are not allowed to remove, disable, or delete the A record of the last active zone.'],
+ ['errorCode' => 'OperationFailed.ShiftLoadBalancerZonesFailed', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'Failed to remove the A record of the IP address in the zone.'],
+ ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource %s is not enough.', 'description' => 'The specified resource %s is not enough.'],
+ ['errorCode' => 'Mismatch.ZoneIdAndVSwitchId', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The %s and %s are mismatched.'],
],
404 => [
- [
- 'errorCode' => 'ResourceNotFound.SecurityPolicy',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => 'StartShiftLoadBalancerZones',
+ 'description' => 'This operation is supported by Application Load Balancer (ALB) instances that use static IP addresses. The zone cannot be removed if the ALB instance has only one available zone.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:StartShiftLoadBalancerZones',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateSecurityPolicyAttributeResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</UpdateSecurityPolicyAttributeResponse>","errorExample":""}]',
- 'title' => 'UpdateSecurityPolicyAttribute',
- 'description' => '##'."\n"
- ."\n"
- .'**UpdateSecurityPolicyAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [ListSecurityPolicies](~~213609~~) to query the status of the task.'."\n"
- ."\n"
- .'* If a security policy is in the **Configuring** state, the security policy is being updated.'."\n"
- .'* If a security policy is in the **Available** state, the security policy is updated.'."\n",
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5A2CFF0E-5718-45B5-9D4D-70B3FF3898\\"\\n}","type":"json"}]',
],
- 'ListSecurityPolicies' => [
- 'summary' => 'Queries custom security policies in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'StopListener' => [
+ 'summary' => 'Disables a listener.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'ResourceGroupId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '资源组ID',
- 'description' => 'The resource group ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-atstuj3rtop****',
- ],
- ],
- [
- 'name' => 'NextToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '分页查询标识',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* You do not need to specify this parameter for the first request.'."\n"
- .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- ],
- [
- 'name' => 'MaxResults',
- 'in' => 'query',
- 'schema' => [
- 'title' => '查询数量',
- 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '50',
- 'default' => '20',
- ],
- ],
- [
- 'name' => 'SecurityPolicyNames',
+ 'name' => 'ListenerId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '安全策略名称',
- 'description' => 'The names of the security policies. You can specify up to 10 names.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The name of the security policy. You can specify up to 10 names.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test-secrity',
- ],
- 'required' => false,
- 'maxItems' => 10,
- 'minItems' => 1,
- ],
+ 'schema' => ['title' => '', 'description' => 'The ID of the Application Load Balancer (ALB) listener.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******'],
],
[
- 'name' => 'SecurityPolicyIds',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '安全策略id',
- 'description' => 'The security policy IDs. You can specify at most 20 security policies.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ID of the security policy that you want to query. You can specify at most 20 security policy IDs.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'scp-bp1bpn0kn9****',
- ],
- 'required' => false,
- 'maxItems' => 20,
- 'minItems' => 1,
- ],
+ 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'],
],
[
- 'name' => 'Tag',
+ 'name' => 'DryRun',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key. 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' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. 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' => 'product',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The operation to disable a listener.'."\n",
'type' => 'object',
'properties' => [
- 'MaxResults' => [
- 'title' => '本次查询返回记录数量',
- 'description' => 'The number of entries per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '50',
- ],
- 'NextToken' => [
- 'title' => '分页查询标识',
- 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- 'SecurityPolicies' => [
- 'title' => '安全策略',
- 'description' => 'The supported security policies.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The supported security policy.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Ciphers' => [
- 'title' => '加密套件',
- 'description' => 'The supported cipher suites.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The supported cipher suites are determined by the value of **TLSVersions**.'."\n"
- ."\n"
- .'* TLSv1.0 and TLSv1.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"
- .'* TLSv1.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"
- .'* TLSv1.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',
- ],
- ],
- 'ResourceGroupId' => [
- 'title' => '资源组id',
- 'description' => 'The ID of the resource group.'."\n",
- 'type' => 'string',
- 'example' => 'rg-atstuj3rtop****',
- ],
- 'SecurityPolicyId' => [
- 'title' => '安全策略id',
- 'description' => 'The ID of the security policy.'."\n",
- 'type' => 'string',
- 'example' => 'rg-atstuj3rtop****',
- ],
- 'SecurityPolicyName' => [
- 'title' => '安全策略名称',
- 'description' => 'The name of the security policy.'."\n",
- 'type' => 'string',
- 'example' => 'test-secrity',
- ],
- 'SecurityPolicyStatus' => [
- 'title' => '状态',
- 'description' => 'The status of the security policy. Valid values:'."\n"
- ."\n"
- .'* **Configuring**'."\n"
- .'* **Available**'."\n",
- 'type' => 'string',
- 'example' => 'Available',
- ],
- 'TLSVersions' => [
- 'title' => 'TLS策略',
- 'description' => 'The supported TLS protocol versions.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The supported TLS versions. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.'."\n",
- 'type' => 'string',
- 'example' => 'TLSv1.1',
- ],
- ],
- 'CreateTime' => [
- 'description' => 'The time when the ACL was created. The time follows the `YYYY-MM-DDThh:mm:ssZ` format.'."\n",
- 'type' => 'string',
- 'example' => '2023-02-15T07:37:33Z',
- ],
- 'Tags' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key. The tag key can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'example' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'example' => 'product',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- 'TotalCount' => [
- 'title' => '总记录数',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1000',
- ],
+ 'JobId' => ['title' => '', 'description' => 'The asynchronous task ID.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
- 403 => [
- [
- 'errorCode' => 'Forbidden.SecurityPolicy',
- 'errorMessage' => 'Authentication has failed for SecurityPolicy.',
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => 'The specified resource of %s is being configured, please try again later.'],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"<StopListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</StopListenerResponse>","errorExample":""}]',
+ 'title' => 'StopListener',
+ 'description' => '**StopListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetListenerAttribute](~~2254865~~) operation to query the status of the task:'."\n"
+ ."\n"
+ .'* If a listener is in the **Configuring** state, the listener is being disabled.'."\n"
+ .'* If a listener is in the **Stopped** state, the listener is disabled.'."\n",
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:StopListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"Ciphers\\": [\\n \\"ECDHE-ECDSA-AES128-SHA\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"SecurityPolicyId\\": \\"sp-9cdjz6o******\\",\\n \\"SecurityPolicyName\\": \\"test-secrity\\",\\n \\"SecurityPolicyStatus\\": \\"Available\\",\\n \\"TLSVersions\\": [\\n \\"TLSv1.1\\"\\n ],\\n \\"CreateTime\\": \\"2023-02-15T07:37:33Z\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"<ListSecurityPoliciesResponse>\\n <MaxResults>50</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <SecurityPolicies>\\n <Ciphers>ECDHE-ECDSA-AES128-SHA</Ciphers>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <SecurityPolicyId>rg-atstuj3rtop****</SecurityPolicyId>\\n <SecurityPolicyName>test-secrity</SecurityPolicyName>\\n <SecurityPolicyStatus>Available</SecurityPolicyStatus>\\n <TLSVersions>TLSv1.1</TLSVersions>\\n <CreateTime>2023-02-15T07:37:33Z</CreateTime>\\n </SecurityPolicies>\\n <TotalCount>1000</TotalCount>\\n</ListSecurityPoliciesResponse>","errorExample":""}]',
- 'title' => 'ListSecurityPolicies',
],
- 'ListSecurityPolicyRelations' => [
- 'summary' => 'Queries the listeners that are associated with security policies.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'TagResources' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
+ 'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
- 'name' => 'SecurityPolicyIds',
+ 'name' => 'ResourceType',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The type of the resource. Valid values:'."\n"
+ ."\n"
+ .'- **acl**: an access control list (ACL)'."\n"
+ ."\n"
+ .'- **loadbalancer**: an Application Load Balancer (ALB) instance'."\n"
+ ."\n"
+ .'- **securitypolicy**: a security policy'."\n"
+ ."\n"
+ .'- **servergroup**: a server group', 'type' => 'string', 'required' => true, 'example' => 'loadbalancer', 'title' => ''],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The resource IDs.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The resource ID.', 'type' => 'string', 'example' => 'alb-gws76zi******', 'required' => false, 'title' => ''],
+ 'required' => true,
+ 'example' => 'acl-123',
+ 'maxItems' => 50,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '安全策略id',
- 'description' => 'The security policy IDs. You can specify up to five IDs.'."\n",
+ 'title' => '',
+ 'description' => 'The tags.',
'type' => 'array',
'items' => [
- 'description' => 'The security policy ID. You can specify up to five IDs.'."\n",
- 'type' => 'string',
+ 'description' => 'The tag.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key. The tag key can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'env', 'title' => '', 'required' => false],
+ 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'product', 'title' => '', 'required' => false],
+ ],
'required' => false,
- 'example' => 'spy-n0kn923****',
+ 'title' => '',
+ 'example' => '',
],
'required' => true,
- 'maxItems' => 5,
+ 'example' => 'test',
+ 'maxItems' => 20,
'minItems' => 1,
],
],
@@ -19200,216 +12585,48 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The operation to add tags to resources.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- 'SecrityPolicyRelations' => [
- 'title' => '安全策略关联关系',
- 'description' => 'The security policies and the listeners that are associated with the security policies.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The security policy and the listeners that are associated with the security policy.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'RelatedListeners' => [
- 'title' => '关联的监听列表',
- 'description' => 'The listeners that are associated with the security policy.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The listener that is associated with the security policy.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ListenerId' => [
- 'title' => '监听id',
- 'description' => 'The listener ID.'."\n",
- 'type' => 'string',
- 'example' => 'lsn-0bfuc****',
- ],
- 'ListenerPort' => [
- 'title' => '监听端口',
- 'description' => 'The listener port.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '80',
- ],
- 'ListenerProtocol' => [
- 'title' => '监听协议',
- 'description' => 'The listener protocol.'."\n",
- 'type' => 'string',
- 'example' => 'HTTPS',
- ],
- 'LoadBalancerId' => [
- 'title' => '实例id',
- 'description' => 'The Server Load Balancer (SLB) instance ID.'."\n",
- 'type' => 'string',
- 'example' => 'lb-bp1o94dp5i6ea****',
- ],
- ],
- ],
- ],
- 'SecurityPolicyId' => [
- 'title' => '安全策略id',
- 'description' => 'The security policy ID.'."\n",
- 'type' => 'string',
- 'example' => 'scp-bp1bpn0kn9****',
- ],
- ],
- ],
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
404 => [
- [
- 'errorCode' => 'ResourceNotFound.SecurityPolicy',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\",\\n \\"SecrityPolicyRelations\\": [\\n {\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-0bfuc****\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTPS\\",\\n \\"LoadBalancerId\\": \\"alb-umwzbz6******\\"\\n }\\n ],\\n \\"SecurityPolicyId\\": \\"sp-bp1bpn0kn9****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListSecurityPolicyRelationsResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <SecrityPolicyRelations>\\n <RelatedListeners>\\n <ListenerId>lsn-0bfuc****</ListenerId>\\n <ListenerPort>80</ListenerPort>\\n <ListenerProtocol>HTTPS</ListenerProtocol>\\n <LoadBalancerId>lb-bp1o94dp5i6ea****</LoadBalancerId>\\n </RelatedListeners>\\n <SecurityPolicyId>scp-bp1bpn0kn9****</SecurityPolicyId>\\n </SecrityPolicyRelations>\\n</ListSecurityPolicyRelationsResponse>","errorExample":""}]',
- 'title' => 'ListSecurityPolicyRelations',
- ],
- 'ListSystemSecurityPolicies' => [
- 'summary' => 'Queries system security policies in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
- ],
- ],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- 'abilityTreeCode' => '272',
- 'abilityTreeNodes' => [
- 'FEATUREslb39XGK4',
- ],
- 'tenantRelevance' => 'publicInformation',
- ],
- 'parameters' => [],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- 'SecurityPolicies' => [
- 'title' => '安全策略',
- 'description' => 'The security policies.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The details about the security policy.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Ciphers' => [
- 'title' => '加密套件',
- 'description' => 'The supported cipher suite.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The supported cipher suites are determined by the value of **TLSVersions**.'."\n"
- ."\n"
- .'* TLSv1.0 and TLSv1.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"
- .'* TLSv1.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"
- .'* TLSv1.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',
- ],
- ],
- 'SecurityPolicyId' => [
- 'title' => '安全策略Id',
- 'description' => 'The ID of the security policy.'."\n",
- 'type' => 'string',
- 'example' => 'spy-n0kn923****',
- ],
- 'TLSVersions' => [
- 'title' => '协议版本',
- 'description' => 'The supported TLS protocol versions.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The supported TLS versions. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.'."\n",
- 'type' => 'string',
- 'example' => 'TLSv1.0',
- ],
- ],
- ],
- ],
- ],
+ 'title' => 'TagResources',
+ 'summary' => 'Adds tags to resources.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:TagResources',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#AclId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'],
],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"Ciphers\\": [\\n \\"ECDHE-ECDSA-AES128-SHA\\"\\n ],\\n \\"SecurityPolicyId\\": \\"sp-n0kn923****\\",\\n \\"TLSVersions\\": [\\n \\"TLSv1.0\\"\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListSystemSecurityPoliciesResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <SecurityPolicies>\\n <Ciphers>ECDHE-ECDSA-AES128-SHA</Ciphers>\\n <SecurityPolicyId>spy-n0kn923****</SecurityPolicyId>\\n <TLSVersions>TLSv1.0</TLSVersions>\\n </SecurityPolicies>\\n</ListSystemSecurityPoliciesResponse>","errorExample":""}]',
- 'title' => 'ListSystemSecurityPolicies',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\"\\n}","type":"json"}]',
],
- 'AddEntriesToAcl' => [
- 'summary' => 'Adds IP entries to an access control list (ACL).',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'UnTagResources' => [
+ 'summary' => 'Removes tags from resources.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -19417,163 +12634,127 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- ],
+ 'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
- 'name' => 'AclId',
+ 'name' => 'ResourceType',
+ 'in' => 'query',
+ 'schema' => ['title' => '', 'description' => 'The type of the resource. Valid values:'."\n"
+ ."\n"
+ .'* **acl**: an access control list (ACL)'."\n"
+ .'* **loadbalancer**: an Application Load Balancer (ALB) instance'."\n"
+ .'* **securitypolicy**: a security policy'."\n"
+ .'* **servergroup**: a server group'."\n", 'type' => 'string', 'required' => true, 'example' => 'loadbalancer'],
+ ],
+ [
+ 'name' => 'ResourceId',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => 'AclId',
- 'description' => 'The ID of the ACL.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The IDs of the resources from which you want to remove tags.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of the resource from which you want to remove tags.'."\n", 'type' => 'string', 'required' => false, 'example' => 'alb-gws76zij******', 'title' => ''],
'required' => true,
- 'docRequired' => true,
- 'example' => 'nacl-hp34s2h0xx1ht4nwo****',
+ 'example' => 'acl-123',
+ 'maxItems' => 50,
+ 'minItems' => 1,
],
],
[
- 'name' => 'AclEntries',
+ 'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '条目信息列表',
- 'description' => 'The ACL entries that you want to add. You can add at most 20 entries in each call.'."\n",
+ 'title' => '',
+ 'description' => 'The tags that you want to remove.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The ACL entry.'."\n",
+ 'description' => 'The tag that you want to remove.'."\n",
'type' => 'object',
'properties' => [
- 'Description' => [
- 'title' => '描述信息',
- 'description' => 'The description of the ACL entry. The description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).'."\n"
- ."\n"
- .'You can add at most 20 entries in each call.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test-entry',
- ],
- 'Entry' => [
- 'title' => '条目',
- 'description' => 'The CIDR block in the ACL entry.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '10.0.1.0/24',
- ],
+ 'Key' => ['title' => '', 'description' => 'The key of the tag that you want to remove. The tag key can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag key cannot start with `acs:` or `aliyun`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'env'],
+ 'Value' => ['title' => '', 'description' => 'The value of the tag that you want to remove. The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag value cannot start with `acs:` or `aliyun`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'product'],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'required' => true,
+ 'required' => false,
+ 'example' => 'test',
'maxItems' => 20,
'minItems' => 1,
],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'TagKey',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等Token',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The keys of the tags that you want to remove.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The tag key. The tag key can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag key cannot start with `acs:` or `aliyun`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''],
'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'All',
'in' => 'query',
- 'schema' => [
- 'title' => 'dryRun',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => '', 'description' => 'Specifies whether to remove all tags from the specified resource. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.',
+ 'description' => 'The operation to remove tags.'."\n",
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => 'job',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'ResourceAlreadyExist.AclEntry',
- 'errorMessage' => 'The specified resource %s already exists.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.AclEntriesNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.Acl',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ListenerAclEntriesNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerAclEntriesNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- ],
404 => [
- [
- 'errorCode' => 'ResourceNotFound.Acl',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","errorExample":""},{"type":"xml","example":"<UnTagResourcesResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</UnTagResourcesResponse>","errorExample":""}]',
+ 'title' => 'UnTagResources',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:UnTagResources',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#AclId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","errorExample":""},{"type":"xml","example":"<AddEntriesToAclResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n</AddEntriesToAclResponse>","errorExample":""}]',
- 'title' => 'AddEntriesToAcl',
- 'description' => '* Each ACL can contain IP addresses or CIDR blocks. Take note of the following limits on ACLs:'."\n"
- ."\n"
- .' * The maximum number of IP entries that can be added to an ACL with each Alibaba Cloud account at a time: 20'."\n"
- .' * The maximum number of IP entries that each ACL can contain: 1,000'."\n"
- ."\n"
- .'* **AddEntriesToAcl** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAclEntries](~~213616~~) operation to query the status of the task.'."\n"
- ."\n"
- .' * If the ACL is in the **Adding** state, the IP entries are being added.'."\n"
- .' * If the ACL is in the **Available** state, the IP entries are added.'."\n",
],
- 'CreateAcl' => [
- 'summary' => 'Creates an access control list (ACL) in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'UpdateAScripts' => [
+ 'summary' => 'Updates one or more AScripts.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -19582,92 +12763,83 @@
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'create',
- 'abilityTreeCode' => '131',
- 'abilityTreeNodes' => [
- 'FEATUREslbAYSA83',
- ],
- 'tenantRelevance' => 'publicInformation',
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '34540',
+ 'abilityTreeNodes' => ['FEATUREslb2Q6O49'],
],
'parameters' => [
[
- 'name' => 'AclName',
- 'in' => 'query',
- 'schema' => [
- 'title' => 'Acl名称',
- 'description' => 'The name of the ACL. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test-acl',
- ],
- ],
- [
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等Token',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the value, but you must make sure that it is unique among different requests. ClientToken can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. The value of **RequestId** may be different for each API request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can generate a value on your client to ensure it is unique across requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system uses the request\'s **RequestId** as the **ClientToken**. Each API request has a different **RequestId**.', 'type' => 'string', 'example' => 'b1f642ac-5558-4a36-b7d9-cf53******', 'title' => '', 'required' => false],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => 'dryRun',
- 'description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n"
- ."\n"
- .'* **true**: checks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): sends the request. If the request passes the check, an HTTP 2xx status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- ],
- [
- 'name' => 'ResourceGroupId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '资源组Id',
- 'description' => 'The ID of the resource group.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-atstuj3rtop****',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run to check the request without modifying the AScript resources. The system checks the request for potential issues, including missing required parameters, incorrect formatting, and service limits. If the request fails the dry run, an error is returned. If the request passes the dry run, the system returns the `DryRunOperation` error code.'."\n"
+ ."\n"
+ .'- **false** (default): sends a normal request. If the request passes the check, the system returns a 2xx HTTP status code and performs the operation.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
],
[
- 'name' => 'Tag',
+ 'name' => 'AScripts',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The tags.'."\n",
+ 'title' => '',
+ 'description' => 'The AScripts to update.',
'type' => 'array',
'items' => [
- 'description' => 'The tags.'."\n",
+ 'description' => 'The information about the AScript.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The tag key. 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' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. 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',
+ 'AScriptName' => ['description' => 'The name of the AScript.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters in length. It must start with a letter, a Chinese character, or a digit, and can contain letters, Chinese characters, digits, periods (.), underscores (\\_), hyphens (-), and spaces.', 'type' => 'string', 'required' => false, 'example' => 'Group1', 'title' => ''],
+ 'Enabled' => ['description' => 'Specifies whether to enable the AScript. Valid values:'."\n"
+ ."\n"
+ .'- **true**: The AScript is enabled.'."\n"
+ ."\n"
+ .'- **false** (default): The AScript is disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
+ 'ScriptContent' => ['description' => 'The content of the AScript.', 'type' => 'string', 'required' => false, 'example' => 'if and(match_re($uri, \'^/1.txt$\'), $arg_type) { rewrite(concat(\'/1.\', $arg_type), \'break\') }', 'title' => ''],
+ 'ExtAttributes' => [
+ 'title' => '',
+ 'description' => 'The extended attributes.',
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'AttributeKey' => ['description' => 'The key of the extended attribute.'."\n"
+ ."\n"
+ .'The only valid value is **EsDebug**. If a request contains the \\_es\\_dbg parameter and its value matches the secret key configured here, the system enables debug response headers that output the rule execution logs.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'EsDebug'],
+ 'AttributeValue' => ['description' => 'The attribute value. The value must be 1 to 128 characters long and can contain only letters and digits. The value is case-sensitive.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'test123'],
+ ],
+ 'required' => false,
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => false,
- 'example' => 'product',
+ 'example' => '',
],
+ 'AScriptId' => ['description' => 'The ID of the AScript.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'as-mhqxcanmivn4g5****'],
+ 'ExtAttributeEnabled' => ['description' => 'Specifies whether to enable the extended attributes of the AScript. Valid values:'."\n"
+ ."\n"
+ .'- **true**: The extended attributes are enabled.'."\n"
+ ."\n"
+ .'- **false** (default): The extended attributes are disabled.', 'type' => 'boolean', 'required' => false, 'title' => '', 'example' => 'true'],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
'required' => false,
+ 'example' => '',
],
],
],
@@ -19675,68 +12847,53 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => '',
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'AclId' => [
- 'title' => 'AclId',
- 'description' => 'The ID of the ACL.'."\n",
- 'type' => 'string',
- 'example' => 'nacl-hp34s2h0xx1ht4nwo****',
- ],
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The ID of the asynchronous task.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
+ 'JobId' => ['description' => 'The asynchronous task ID.', 'type' => 'string', 'title' => '', 'example' => '2e82b5f4-1ba9-4d20-89c8-1082ebaa****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'ACA19FE1-C09E-53C7-8FDA-560******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'QuotaExceeded.AclsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'NotExist.ResourceGroup',
- 'errorMessage' => 'ResourceGroup does not exist.',
- ],
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.AScriptsNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.AScriptsTotalLinesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.AScriptLinesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
],
- 403 => [
- [
- 'errorCode' => 'Forbidden.Acl',
- 'errorMessage' => 'ACL authentication has failed.',
- ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Ascript', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclId\\": \\"acl-hp34s2h0xx1ht4nwo****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateAclResponse>\\n <AclId>nacl-hp34s2h0xx1ht4nwo****</AclId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</CreateAclResponse>","errorExample":""}]',
- 'title' => 'CreateAcl',
- 'description' => '## Usage notes'."\n"
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"2e82b5f4-1ba9-4d20-89c8-1082ebaa****\\",\\n \\"RequestId\\": \\"ACA19FE1-C09E-53C7-8FDA-560******\\"\\n}","type":"json"}]',
+ 'title' => 'UpdateAScripts',
+ 'description' => '**UpdateAScripts** is an asynchronous operation. After you send a request, the system returns a request ID and performs the update in the background. You can call the [ListAScripts](~~472574~~) operation to query the update status of the AScripts:'."\n"
."\n"
- .'The **CreateAcl** operation is asynchronous. After you send a request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [ListAcls](~~213617~~) operation to query the status of an ACL:'."\n"
+ .'- A status of **Configuring** indicates that the AScript is being updated.'."\n"
."\n"
- .'* If an ACL is in the **Creating** state, the ACL is being created.'."\n"
- .'* If an ACL is in the **Available** state, the ACL is created.'."\n",
- ],
- 'DeleteAcl' => [
- 'summary' => 'Deletes an access control list (ACL).',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ .'- A status of **Available** indicates that the AScript is updated.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateAScripts',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
+ ],
],
+ ],
+ 'UpdateAclAttribute' => [
+ 'summary' => 'Updates the attributes of an ACL, such as its name.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -19744,634 +12901,707 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'schema' => ['description' => 'A client-generated token that ensures request idempotence. The token must be unique for each request. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the request\'s `RequestId` as the `ClientToken`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'],
+ ],
+ [
'name' => 'AclId',
'in' => 'query',
- 'schema' => [
- 'title' => '访问控制策略id',
- 'description' => 'The ID of the ACL.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'nacl-hp34s2h0xx1ht4nwo****',
- ],
+ 'schema' => ['title' => 'AclId', 'description' => 'The ID of the ACL.', 'type' => 'string', 'required' => true, 'example' => 'acl-hp34s2h0xx1ht4nwo****'],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'AclName',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等Token',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['description' => 'The name of the ACL. The name must be 2 to 128 characters long. It must start with a letter, a Chinese character, or a digit, and can contain digits, periods (.), underscores (\\_), hyphens (-), and spaces.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'test-acl'],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => 'DryRun',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform a dry run on the request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a check on the request without modifying the resource. The system checks for required parameters, valid request formats, and service limits. If the check fails, an error is returned. If the check succeeds, the system returns the `DryRunOperation` error code.'."\n"
+ ."\n"
+ .'- **false** (default): sends a normal request. If the request passes the check, the system performs the operation and returns an HTTP `2xx` status code.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The operation to delete an ACL.'."\n",
+ 'description' => 'The data returned.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876F******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'ResourceInUse.Acl',
- 'errorMessage' => 'The specified resource %s is in use.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.Acl',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
+ ['errorCode' => 'Conflict.Acl', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => 'There is already %s having the same configuration with %s.'],
+ ['errorCode' => 'IncorrectStatus.Acl', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
],
- 403 => [
- [
- 'errorCode' => 'Forbidden.Acl',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
- [
- [
- 'errorCode' => 'ResourceNotFound.Acl',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876F******\\"\\n}","type":"json"}]',
+ 'title' => 'UpdateAclAttribute',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateAclAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteAclResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</DeleteAclResponse>","errorExample":""}]',
- 'title' => 'DeleteAcl',
- 'description' => '**DeleteAcl** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAcls](~~213617~~) operation to query the status of the task.'."\n"
- ."\n"
- .'* If the ACL is in the **Deleting** state, the ACL is being deleted.'."\n"
- .'* If the ACL cannot be found, the ACL is deleted.'."\n",
],
- 'UpdateAclAttribute' => [
- 'summary' => 'Updates the attributes of an access control list (ACL), such as the name.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'UpdateHealthCheckTemplateAttribute' => [
+ 'summary' => 'This operation updates the attributes of a health check template, such as its name and health check protocol.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
+ [
+ 'PrivateKey' => [],
+ ],
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
+ 'schema' => ['description' => 'A client token used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You must generate a unique value on your client for each request. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the `RequestId` of the request as the `ClientToken`. The `RequestId` of each request is unique.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'],
+ ],
+ [
+ 'name' => 'HealthCheckTemplateName',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The name of the health check template.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters long, start with a letter, a Chinese character, or a digit, and can contain letters, Chinese characters, digits, periods (.), underscores (\\_), hyphens (-), and spaces.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'HealthCheckTemplate1'],
+ ],
+ [
+ 'name' => 'HealthCheckConnectPort',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The port used for health checks. Valid values: **0** to **65535**.'."\n"
+ .'The default value is **0**, which means the health check uses the backend server\'s port.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '80'],
+ ],
+ [
+ 'name' => 'HealthCheckHost',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The domain name used for health checks. Valid values:'."\n"
+ ."\n"
+ .'- **$SERVER\\_IP** (default): The private IP of a backend server. If you specify this value or leave the parameter empty, the load balancing service uses the private IP of the backend server for health checks.'."\n"
+ ."\n"
+ .'- **domain**: A domain name that is 1 to 80 characters long and can contain letters, digits, periods (.), and hyphens (-).'."\n"
+ ."\n"
+ .'> This parameter takes effect only when the `HealthCheckProtocol` parameter is set to **HTTP** or **HTTPS**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '$SERVER_IP'],
+ ],
+ [
+ 'name' => 'HealthCheckCodes',
+ 'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等参数',
- 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n"
+ 'title' => '',
+ 'description' => 'The list of status codes that indicate a healthy state.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The HTTP status codes that indicate a healthy backend server.'."\n"
."\n"
- .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n",
- 'type' => 'string',
+ .'- If **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, specify one or more of the following values: **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**. Separate multiple values with commas.'."\n"
+ ."\n"
+ .'- If **HealthCheckProtocol** is set to **gRPC**, the valid status codes are in the range of **0** to **99**. The default value is **0**. You can specify up to 20 ranges, separated by commas.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when the **HealthCheckProtocol** parameter is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'required' => false, 'example' => 'http_2xx', 'title' => ''],
'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
+ 'example' => '5',
],
],
[
- 'name' => 'AclId',
+ 'name' => 'HealthCheckInterval',
'in' => 'query',
- 'schema' => [
- 'title' => 'AclId',
- 'description' => 'The ACL ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'nacl-hp34s2h0xx1ht4nwo****',
- ],
+ 'schema' => ['description' => 'The interval between health checks, in seconds. Valid values: **1** to **50**. Default value: **2**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '5'],
],
[
- 'name' => 'AclName',
+ 'name' => 'HealthCheckTimeout',
'in' => 'query',
- 'schema' => [
- 'title' => '访问控制策略名称',
- 'description' => 'The ACL name. 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,
- 'example' => 'test-acl',
- ],
+ 'schema' => ['description' => 'The timeout period, in seconds, for a health check response. A health check fails if a backend server does not respond within this period.'."\n"
+ ."\n"
+ .'Valid values: **1** to **300**. Default value: **5**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '300', 'minimum' => '1', 'title' => '', 'required' => false, 'example' => '3'],
+ ],
+ [
+ 'name' => 'HealthCheckPath',
+ 'in' => 'query',
+ 'schema' => ['title' => 'uri', 'description' => 'The URL used for health checks.'."\n"
+ ."\n"
+ .'The URL must be 1 to 80 characters long. It can contain letters, digits, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), ampersands (&), and the following extended characters: `_;~!()*[]@$^:\',+`.'."\n"
+ ."\n"
+ .'The URL must start with a forward slash (/).'."\n"
+ ."\n"
+ .'> This parameter takes effect only when the **HealthCheckProtocol** parameter is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'required' => false, 'example' => '/test/index.html'],
+ ],
+ [
+ 'name' => 'HealthCheckMethod',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The method used for health checks. Valid values:'."\n"
+ ."\n"
+ .'- **HEAD** (default): The default method for health checks on HTTP and HTTPS listeners.'."\n"
+ ."\n"
+ .'- **GET**: If the response body is larger than 8 KB, it is truncated. This does not affect the health check result.'."\n"
+ ."\n"
+ .'- **POST**: The default method for health checks on gRPC listeners.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when the **HealthCheckProtocol** parameter is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'HEAD'],
+ ],
+ [
+ 'name' => 'HealthCheckProtocol',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The protocol used for health checks. Valid values:'."\n"
+ ."\n"
+ .'- **HTTP** (default): Checks the health of a backend server by sending an HTTP HEAD or GET request.'."\n"
+ ."\n"
+ .'- **HTTPS**: Checks the health of a backend server by sending an HTTPS HEAD or GET request. HTTPS is more secure than HTTP because it encrypts data.'."\n"
+ ."\n"
+ .'- **TCP**: Checks if a backend server port is reachable by sending a TCP SYN packet.'."\n"
+ ."\n"
+ .'- **gRPC**: Checks the health of a backend server by sending a POST or GET request.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'HTTP'],
+ ],
+ [
+ 'name' => 'HealthCheckHttpVersion',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The HTTP version used for health checks.'."\n"
+ ."\n"
+ .'Valid values: **HTTP1.0** and **HTTP1.1**.'."\n"
+ ."\n"
+ .'Default value: **HTTP1.1**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when the `HealthCheckProtocol` parameter is set to **HTTP** or **HTTPS**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'HTTP1.0'],
+ ],
+ [
+ 'name' => 'HealthyThreshold',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of consecutive successful health checks required to change a backend server\'s status from **unhealthy** to **healthy**.'."\n"
+ ."\n"
+ .'Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'Default value: **3**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '4'],
+ ],
+ [
+ 'name' => 'UnhealthyThreshold',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of consecutive failed health checks required to change a backend server\'s status from **healthy** to **unhealthy**.'."\n"
+ ."\n"
+ .'Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'Default value: **3**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '4'],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '是否预校验请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx` HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['title' => 'dryRun', 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Performs a dry run to check the request. The system checks for required parameters, request syntax, and business constraints without performing the operation. If the request is invalid, an error is returned. If the request is valid, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): Sends a normal request. If the request is valid, a **2xx HTTP** status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
+ ],
+ [
+ 'name' => 'HealthCheckTemplateId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The health check template ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'hct-bp1qjwo61******'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The asynchronous task ID.'."\n",
+ 'description' => 'The response to the update request.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'Conflict.Acl',
- 'errorMessage' => 'There is already %s having the same configuration with %s.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.Acl',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
+ ['errorCode' => 'IncorrectStatus.HealthCheckTemplate', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Acl',
- 'errorMessage' => 'The specified resource %s is not found.',
+ 403 => [
+ ['errorCode' => 'Forbidden.HealthCheckTemplate', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
+ ],
+ [
+ ['errorCode' => 'ResourceNotFound.HealthCheckTemplate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","type":"json"}]',
+ 'title' => 'UpdateHealthCheckTemplateAttribute',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateHealthCheckTemplateAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthchecktemplateId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876F******\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateAclAttributeResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</UpdateAclAttributeResponse>","errorExample":""}]',
- 'title' => 'UpdateAclAttribute',
],
- 'ListAcls' => [
- 'summary' => 'Queries the access control lists (ACLs) in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'UpdateListenerAttribute' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'list',
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '187',
+ 'abilityTreeNodes' => ['FEATUREslbM7ALO6', 'FEATUREslbK3ZR0L', 'FEATUREslbN5IE4S'],
],
'parameters' => [
[
- 'name' => 'AclIds',
+ 'name' => 'ListenerId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '访问控制策略Id',
- 'description' => 'Filter access control lists (ACLs) by ACL ID. You can specify at most 20 ACL IDs in each call.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ACL ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'nacl-hp34s2h0xx1ht4nwo****',
- ],
- 'required' => false,
- 'maxItems' => 20,
- ],
+ 'schema' => ['description' => 'The ID of the Application Load Balancer (ALB) listener.', 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******', 'title' => ''],
],
[
- 'name' => 'AclNames',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '访问控制策略名称',
- 'description' => 'The ACL names. You can specify up to 10 ACL names in each call.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ACL name.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test-acl',
- ],
- 'required' => false,
- 'maxItems' => 10,
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'The token must be unique among requests and can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system uses the **RequestId** of the request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', 'title' => '', 'required' => false],
],
[
- 'name' => 'ResourceGroupId',
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run. The system checks the required parameters, request format, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the system returns the `DryRunOperation` error code.'."\n"
+ ."\n"
+ .'- **false** (default): performs a normal request. If the request passes the check, the system returns a 2xx HTTP status code and performs the operation.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'ListenerDescription',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The name of the listener.'."\n"
+ ."\n"
+ .'The name must be 2 to 256 characters in length and can contain letters, digits, Chinese characters, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).', 'type' => 'string', 'example' => 'HTTP_80', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'RequestTimeout',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The request timeout period. Unit: seconds. Valid values: 1 to **180**.'."\n"
+ ."\n"
+ .'If no response is received from the backend server during the timeout period, ALB sends an `HTTP 504` error code to the client.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'example' => '3', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'IdleTimeout',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The idle timeout period. Unit: seconds. Valid values: 1 to **60**.'."\n"
+ ."\n"
+ .'If no request is received during the timeout period, ALB closes the current connection. When a new request is received, ALB establishes a new connection.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'example' => '15', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'GzipEnabled',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to enable Gzip compression to compress specific types of files. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'Http2Enabled',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to enable HTTP/2. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'SecurityPolicyId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The security policy. System security policies and custom security policies are supported.'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'string', 'example' => 'tls_cipher_policy_1_0', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'CaEnabled',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to enable mutual authentication. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'XForwardedForConfig',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '资源组ID',
- 'description' => 'The ID of the resource group. You can filter the query results based on the specified ID.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The configuration of the \\`X-Forwarded-For\\` header.',
+ 'type' => 'object',
+ 'properties' => [
+ 'XForwardedForClientCertClientVerifyAlias' => ['description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertClientVerifyEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name must be 1 to 40 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test_client-verify-alias_123456'],
+ 'XForwardedForClientCertClientVerifyEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Clientcert-Clientverify` header to retrieve the verification result of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'XForwardedForClientCertFingerprintAlias' => ['description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertFingerprintEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name must be 1 to 40 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test_finger-print-alias_123456'],
+ 'XForwardedForClientCertFingerprintEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Clientcert-Fingerprint` header to retrieve the fingerprint of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'XForwardedForClientCertIssuerDNAlias' => ['description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertIssuerDNEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name must be 1 to 40 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test_issue-dn-alias_123456'],
+ 'XForwardedForClientCertIssuerDNEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Clientcert-Issuerdn` header to retrieve information about the issuer of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'XForwardedForClientCertSubjectDNAlias' => ['description' => 'The name of the custom header. This parameter takes effect only when **XForwardedForClientCertSubjectDNEnabled** is set to **true**.'."\n"
+ ."\n"
+ .'The name must be 1 to 40 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test_subject-dn-alias_123456'],
+ 'XForwardedForClientCertSubjectDNEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Clientcert-Subjectdn` header to retrieve information about the owner of the client certificate. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'XForwardedForClientSrcPortEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Client-Srcport` header to retrieve the client port. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP and HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'XForwardedForEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-For` header to retrieve the client\'s real IP address. Valid values:'."\n"
+ ."\n"
+ .'- **true** (default)'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> 1. If you set this parameter to **true**, the default value of **XForwardedForProcessingMode** is **append**. You can change the value to **remove**.'."\n"
+ .'>'."\n"
+ .'> 2. If you set this parameter to **false**, the `X-Forwarded-For` header is preserved before the request is sent to the backend service. No extra processing is performed.'."\n"
+ .'>'."\n"
+ .'> 3. This parameter is available for HTTP and HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'],
+ 'XForwardedForProcessingMode' => ['description' => 'The processing mode of the `X-Forwarded-For` header. This parameter takes effect only when **XForwardedForEnabled** is set to **true**. Valid values:'."\n"
+ ."\n"
+ .'- **append** (default): appends an IP address.'."\n"
+ ."\n"
+ .'- **remove**: deletes an IP address.'."\n"
+ ."\n"
+ .'> 1. If you set this parameter to **append**, the IP address of the last hop is added to the `X-Forwarded-For` header before the request is sent to the backend service.'."\n"
+ .'>'."\n"
+ .'> 2. If you set this parameter to **remove**, the `X-Forwarded-For` header is deleted before the request is sent to the backend service, regardless of whether the request contains the `X-Forwarded-For` header.'."\n"
+ .'>'."\n"
+ .'> 3. This parameter is available for HTTP and HTTPS listeners.', 'type' => 'string', 'required' => false, 'example' => 'append', 'title' => ''],
+ 'XForwardedForProtoEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Proto` header to retrieve the listener protocol of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'XForwardedForSLBIdEnabled' => ['description' => 'Specifies whether to use the `SLB-ID` header to retrieve the ID of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'XForwardedForSLBPortEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Port` header to retrieve the listener port of the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'XForwardedForClientSourceIpsEnabled' => ['description' => 'Specifies whether to allow ALB to find the client\'s real IP address from the \\`X-Forwarded-For\\` header. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP and HTTPS listeners.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
+ 'XForwardedForClientSourceIpsTrusted' => ['description' => 'The trusted proxy IP address.'."\n"
+ ."\n"
+ .'ALB traverses the `X-Forwarded-For` header from the end to the beginning. ALB selects the first IP address that is not in the trusted IP address list as the client\'s real IP address. This IP address is used for throttling.', 'type' => 'string', 'required' => false, 'example' => '10.1.1.0/24', 'title' => ''],
+ 'XForwardedForHostEnabled' => ['description' => 'Specifies whether to use the `X-Forwarded-Host` header to retrieve the domain name that the client used to access the ALB instance. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false** (default)'."\n"
+ ."\n"
+ .'> This parameter is available for HTTP, HTTPS, and QUIC listeners.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
+ ],
'required' => false,
- 'example' => 'rg-atstuj3rtopty****',
+ 'example' => '',
],
],
[
- 'name' => 'NextToken',
+ 'name' => 'QuicConfig',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '分页查询标识',
- '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',
+ 'title' => '',
+ 'description' => 'The QUIC listener association configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'QuicListenerId' => ['description' => 'The ID of the QUIC listener to associate. This parameter is required if **QuicUpgradeEnabled** is set to **true**. This parameter is available only for HTTPS listeners.'."\n"
+ ."\n"
+ .'> The original listener and the associated QUIC listener must belong to the same ALB instance. The QUIC listener must not be associated with another listener.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'lsn-333'],
+ 'QuicUpgradeEnabled' => ['description' => 'Specifies whether to enable QUIC upgrade. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false**'."\n"
+ ."\n"
+ .'> This parameter is available only for HTTPS listeners.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ ],
'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
+ 'example' => '',
],
],
[
- 'name' => 'MaxResults',
+ 'name' => 'Certificates',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '查询数量',
- 'description' => 'The maximum number of entries to return. This parameter is optional. Valid values: **1** to **100**. Default value: **20**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
+ 'title' => '',
+ 'description' => 'The certificates.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The certificate.',
+ 'type' => 'object',
+ 'properties' => [
+ 'CertificateId' => ['description' => 'The ID of the default certificate. You can add only one default server certificate.'."\n"
+ ."\n"
+ .'> - This parameter is required if the listener protocol is **HTTPS** or **QUIC**.'."\n"
+ .'>'."\n"
+ .'> - To add more server certificates, call the [](t2324484.xdita#)operation after you create the listener.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '123157******'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => false,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '50',
- 'default' => '20',
+ 'maxItems' => 2,
+ 'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'Tag',
+ 'name' => 'CaCertificates',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The tags.'."\n",
+ 'title' => '',
+ 'description' => 'The CA certificates. You can specify only one CA certificate.',
'type' => 'array',
'items' => [
- 'description' => 'The tags.'."\n",
+ 'description' => 'The CA certificate.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The tag key. 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' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. 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' => 'product',
- ],
+ 'CertificateId' => ['description' => 'The ID of the CA certificate.'."\n"
+ ."\n"
+ .'> This parameter is required if **CaEnabled** is set to **true**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '123359******'],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
'required' => false,
+ 'maxItems' => 1,
+ 'minItems' => 1,
+ 'example' => '',
],
],
- ],
- 'responses' => [
- 200 => [
+ [
+ 'name' => 'DefaultActions',
+ 'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Acls' => [
- 'title' => '访问控制列表',
- 'description' => 'A list of ACLs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The network ACLs.'."\n",
+ 'title' => '',
+ 'description' => 'The default actions for the forwarding rule.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The default action.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ForwardGroupConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the forwarding action. This parameter is required and takes effect if **Type** is set to **ForwardGroup**. You can specify a maximum of 20 forwarding actions.',
'type' => 'object',
'properties' => [
- 'AclId' => [
- 'title' => '访问控制策略id',
- 'description' => 'The ACL ID.'."\n",
- 'type' => 'string',
- 'example' => 'nacl-hp34s2h0xx1ht4nwo****',
- ],
- 'AclName' => [
- 'title' => '访问控制策略名称',
- 'description' => 'The name of the ACL.'."\n",
- 'type' => 'string',
- 'example' => 'test-acl',
- ],
- 'AclStatus' => [
- 'title' => '状态',
- 'description' => 'The status of the ACL. Valid values:'."\n"
- ."\n"
- .'* **Creating**: The network ACL is being created.'."\n"
- .'* **Available**: The network ACL is available.'."\n"
- .'* **Configuring**'."\n",
- 'type' => 'string',
- 'example' => 'Available',
- ],
- 'AddressIPVersion' => [
- 'title' => 'IP版本',
- 'description' => 'The IP version of the ACL. Only **IPv4** may be returned.'."\n",
- 'type' => 'string',
- 'example' => 'IPv4',
- ],
- 'ResourceGroupId' => [
- 'title' => '资源组ID',
- 'description' => 'The ID of the resource group.'."\n",
- 'type' => 'string',
- 'example' => 'rg-atstuj3rtopty****',
- ],
- 'ConfigManagedEnabled' => [
- 'title' => '配置管理',
- 'description' => 'Indicates whether configuration management is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the ACL was created. The follows the `YYYY-MM-DDThh:mm:ssZ` format.'."\n",
- 'type' => 'string',
- 'example' => '2023-02-15T07:37:33Z',
- ],
- 'Tags' => [
- 'description' => 'The tags.'."\n",
+ 'ServerGroupTuples' => [
+ 'title' => '',
+ 'description' => 'The server group to which requests are forwarded.',
'type' => 'array',
'items' => [
- 'description' => 'The tags.',
+ 'description' => 'The server group.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The tag key. The tag key can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'example' => 'env',
- ],
- 'Value' => [
- 'description' => 'The tag value. The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
- 'type' => 'string',
- 'example' => 'product',
- ],
+ 'ServerGroupId' => ['description' => 'The ID of the server group to which requests are forwarded.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'sgp-i5qt20******'],
],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
+ 'required' => true,
+ 'example' => '',
],
],
+ 'required' => false,
+ 'example' => '',
],
- ],
- 'MaxResults' => [
- 'title' => '本次查询返回记录数量',
- 'description' => 'The maximum number of network ACLs returned. This parameter is optional. Valid values: **1** to **100**. If this parameter is not set, the default value **20** is returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
- ],
- 'NextToken' => [
- 'title' => '分页查询标识',
- 'description' => 'The token that is used for the next query. Valid values:'."\n"
+ 'Type' => ['description' => 'The action type. You can specify only one action type.'."\n"
."\n"
- .'* If **NextToken** is empty, it indicates that no next query is to be sent.'."\n"
- .'* If **NextToken** is returned, the value indicates the token that is used for the next query.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70t****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- 'TotalCount' => [
- 'title' => '总记录数',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
+ .'Set the value to **ForwardGroup**. This forwards requests to multiple server groups.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'ForwardGroup'],
],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- ],
- ],
- ],
- 'errorCodes' => [
- 403 => [
- [
- 'errorCode' => 'Forbidden.Acl',
- 'errorMessage' => 'ACL authentication has failed.',
- ],
- ],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Acls\\": [\\n {\\n \\"AclId\\": \\"acl-hp34s2h0xx1ht4nwo****\\",\\n \\"AclName\\": \\"test-acl\\",\\n \\"AclStatus\\": \\"Available\\",\\n \\"AddressIPVersion\\": \\"IPv4\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtopty****\\",\\n \\"ConfigManagedEnabled\\": false,\\n \\"CreateTime\\": \\"2023-02-15T07:37:33Z\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70t****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\",\\n \\"TotalCount\\": 10\\n}","errorExample":""},{"type":"xml","example":"<ListAclsResponse>\\n <Acls>\\n <AclId>nacl-hp34s2h0xx1ht4nwo****</AclId>\\n <AclName>test-acl</AclName>\\n <AclStatus>Available</AclStatus>\\n <AddressIPVersion>IPv4</AddressIPVersion>\\n <ResourceGroupId>rg-atstuj3rtopty****</ResourceGroupId>\\n <ConfigManagedEnabled>false</ConfigManagedEnabled>\\n <CreateTime>2023-02-15T07:37:33Z</CreateTime>\\n </Acls>\\n <MaxResults>20</MaxResults>\\n <NextToken>FFmyTO70t****</NextToken>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <TotalCount>10</TotalCount>\\n</ListAclsResponse>","errorExample":""}]',
- 'title' => 'ListAcls',
- ],
- 'ListAclEntries' => [
- 'summary' => 'Queries the entries of an access control list (ACL).',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
- ],
- ],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
- 'parameters' => [
- [
- 'name' => 'NextToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '分页查询标识',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* You do not need to specify this parameter for the first request.'."\n"
- .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- ],
- [
- 'name' => 'MaxResults',
- 'in' => 'query',
- 'schema' => [
- 'title' => '查询数量',
- 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
'required' => false,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '50',
- 'default' => '20',
- ],
- ],
- [
- 'name' => 'AclId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '访问控制策略Id',
- 'description' => 'The ID of the ACL.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'nacl-hp34s2h0xx1ht4nwo****',
+ 'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'title' => '',
+ 'description' => 'The response.',
'type' => 'object',
'properties' => [
- 'AclEntries' => [
- 'title' => '访问控制列表',
- 'description' => 'The ACL entries.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ACL entry.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Description' => [
- 'title' => '描述信息',
- 'description' => 'The description of the ACL entry. The description must be 1 to 256 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).',
- 'type' => 'string',
- 'example' => 'test-entry',
- ],
- 'Entry' => [
- 'title' => 'IP条目',
- 'description' => 'The CIDR block for the ACL entry.'."\n",
- 'type' => 'string',
- 'example' => '10.0.1.1/24',
- ],
- 'Status' => [
- 'title' => '状态',
- 'description' => 'The status of the ACL entry. Valid values:'."\n"
- ."\n"
- .'* **Adding**: The ACL entry is being added.'."\n"
- .'* **Available**: The ACL entry is added and available.'."\n"
- .'* **Removing**: The ACL entry is being removed.'."\n",
- 'type' => 'string',
- 'example' => 'Available',
- ],
- ],
- ],
- ],
- 'MaxResults' => [
- 'title' => '本次查询返回记录数量',
- 'description' => 'The number of entries per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '50',
- ],
- 'NextToken' => [
- 'title' => '分页查询标识',
- 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
- 'TotalCount' => [
- 'title' => '总记录数',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1000',
- ],
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.CrossLoadBalancerQUICListener', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'ResourceAlreadyAssociated.Listener', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => 'The specified resource %s is already associated.'],
+ ['errorCode' => 'OperationDenied.GRPCServerGroup', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'ResourceAlreadyAssociated.Certificate', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.SecurityPolicyAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => 'The quota of %s is exceeded for resource %s. Usage: %s/%s.'],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.ServerGroupProtocolNotSupport', 'errorMessage' => 'The operation is not allowed because of ServerGroupProtocolNotSupport.', 'description' => 'The operation is not allowed because the server group protocol is not supported.'],
+ ['errorCode' => 'UnsupportedFeature.FullTraceHttps', 'errorMessage' => 'The feature of FullTraceHttps is not supported for current instance.', 'description' => ''],
+ ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => 'The specified resource of %s is being configured, please try again later.'],
+ ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'The %s is mismatched for %s and %s.'],
+ ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Invalid parameter, please check the parameter input.', 'description' => 'Invalid parameter, please check the parameter input.'],
+ ['errorCode' => 'OperationDenied.CACertificateCorrupted', 'errorMessage' => 'The CA certificate is corrupted.', 'description' => 'CA certificate is corrupted'],
+ ],
403 => [
- [
- 'errorCode' => 'Forbidden.Acl',
- 'errorMessage' => 'ACL authentication has failed.',
- ],
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
],
[
- [
- 'errorCode' => 'ResourceNotFound.Acl',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.Certificate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'title' => 'UpdateListenerAttribute',
+ 'summary' => 'Updates the attributes of a listener, such as the listener name and default actions.',
+ 'description' => '**UpdateListenerAttribute** is an asynchronous operation. After you send a request, the system returns a request ID and runs the task in the background. The listener configuration is not updated immediately. You can call the [](t2324519.xdita#)operation to query the update status of the listener:'."\n"
+ ."\n"
+ .'- If a listener is in the **Configuring** state, it is being updated.'."\n"
+ ."\n"
+ .'- If a listener is in the **Running** state, it has been updated.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateListenerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclEntries\\": [\\n {\\n \\"Description\\": \\"test-entry\\",\\n \\"Entry\\": \\"10.0.1.1/24\\",\\n \\"Status\\": \\"Available\\"\\n }\\n ],\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F87******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"<ListAclEntriesResponse>\\n <AclEntries>\\n <Description>test-entry</Description>\\n <Entry>10.0.1.1/24</Entry>\\n <Status>Available</Status>\\n </AclEntries>\\n <MaxResults>50</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <TotalCount>1000</TotalCount>\\n</ListAclEntriesResponse>","errorExample":""}]',
- 'title' => 'ListAclEntries',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\"\\n}","type":"json"}]',
],
- 'AssociateAclsWithListener' => [
- 'summary' => 'Associates access control lists (ACLs) with a listener.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'UpdateListenerLogConfig' => [
+ 'summary' => 'Updates the log configuration of a listener, such as the access log configuration.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -20379,84 +13609,69 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- 'abilityTreeCode' => '161',
- 'abilityTreeNodes' => [
- 'FEATUREslbAYSA83',
- ],
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'AclIds',
+ 'name' => 'ListenerId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '访问控制策略Id',
- 'description' => 'The IDs of the ACLs. You can specify up to three IDs in each call.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ID of the ACL.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'nacl-hp34s2h0xx1ht4nwo****',
- ],
- 'required' => true,
- 'maxItems' => 20,
- ],
+ 'schema' => ['description' => 'The ID of the Application Load Balancer (ALB) listener.', 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******', 'title' => ''],
],
[
- 'name' => 'ListenerId',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '监听Id',
- 'description' => 'The ID of the listener.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', 'title' => '', 'required' => false],
],
[
- 'name' => 'AclType',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '绑定类型',
- '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. The whitelist applies to scenarios in which 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 for a listener, 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 whitelist, the listener forwards all requests.'."\n"
- .'* **Black**: a blacklist. All requests from the IP addresses or CIDR blocks in the ACL are blocked. The blacklist applies to scenarios in which you want to block access from specific IP addresses to an application. 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',
- 'required' => true,
- 'example' => 'White',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false**: (default): performs a dry run and performs the actual request. If the request passes the dry run, a **2xx HTTP** status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
[
- 'name' => 'DryRun',
+ 'name' => 'AccessLogRecordCustomizedHeadersEnabled',
'in' => 'query',
- 'schema' => [
- 'title' => '预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'Specifies whether to record custom headers in the access log. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false** (default)'."\n"
+ ."\n"
+ .'> You can set this parameter to **true** only if the access log feature is enabled by specifying **AccessLogEnabled**.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'AccessLogTracingConfig',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The configuration information about the Xtrace feature.',
+ 'type' => 'object',
+ 'properties' => [
+ 'TracingEnabled' => ['description' => 'Specifies whether to enable the Xtrace feature. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false** (default)'."\n"
+ ."\n"
+ .'> You can set this parameter to **true** only if the access log feature is enabled by specifying **AccessLogEnabled**.', 'type' => 'boolean', 'required' => true, 'title' => '', 'example' => 'true'],
+ 'TracingSample' => ['description' => 'The sampling rate of the Xtrace feature.'."\n"
+ ."\n"
+ .'Valid values: **1 to 10000**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **TracingEnabled** to **true**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '100'],
+ 'TracingType' => ['description' => 'The type of Xtrace. Set the value to **Zipkin**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **TracingEnabled** to **true**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Zipkin'],
+ ],
'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
+ 'example' => '',
],
],
],
@@ -20464,289 +13679,147 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The operation to associate ACLs with a listener.'."\n",
+ 'description' => 'The operation to update the configuration of a listener.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The synchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => '请求id',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
+ 'JobId' => ['description' => 'The asynchronous task ID.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'QuotaExceeded.AclsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.Acl',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceQuotaExceeded.ListenerAclEntriesNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
- ],
- [
- 'errorCode' => 'OperationDenied.AclNotSupport',
- 'errorMessage' => 'The operation is not allowed because of %s.',
- ],
- [
- 'errorCode' => 'ResourceAlreadyExist.AclEntry',
- 'errorMessage' => 'The specified resource %s already exists.',
- ],
- [
- 'errorCode' => 'ResourceInUse.Acl',
- 'errorMessage' => 'The specified resource %s is in use.',
- ],
- [
- 'errorCode' => 'OperationDenied.LoadBalancerJoinedSecurityGroupNotSupportAcl',
- 'errorMessage' => 'The operation is not allowed because of loadbalancer joined security group not support acl.',
- ],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.AccessLogDisabled', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => 'The specified resource of %s is being configured, please try again later.'],
],
404 => [
- [
- 'errorCode' => 'ResourceNotFound.Acl',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F87******\\"\\n}","errorExample":""},{"type":"xml","example":"<AssociateAclsWithListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</AssociateAclsWithListenerResponse>","errorExample":""}]',
- 'title' => 'AssociateAclsWithListener',
- 'description' => '**DeleteDhcpOptionsSet** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAclRelations](~~213618~~) operation to query the status of the task.'."\n"
+ 'title' => 'UpdateListenerLogConfig',
+ 'description' => '**UpdateListenerLogConfig** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [GetListenerAttribute](~~2254865~~) to query the status of the task:'."\n"
."\n"
- .'* If an ACL is in the **Associating** state, the ACL is being associated with a listener.'."\n"
- .'* If an ACL is in the **Associated** state, the ACL is associated with a listener.'."\n",
- ],
- 'ListAclRelations' => [
- 'summary' => 'Queries the listeners that are associated with access control lists (ACLs).',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ .'- If a listener is in the **Configuring** state, the log configuration of the listener is being modified.'."\n"
+ ."\n"
+ .'- If a listener is in the **Running** state, the log configuration of the listener is modified.'."\n"
+ ."\n"
+ .'> You can update the log configuration of a listener only after you enable the access log feature.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateListenerLogConfig',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","type":"json"}]',
+ ],
+ 'UpdateLoadBalancerAddressTypeConfig' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'get',
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '86743',
+ 'abilityTreeNodes' => ['FEATUREslbSUND48', 'FEATUREslbXJYU12'],
],
'parameters' => [
[
- 'name' => 'AclIds',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '访问控制策略Id',
- 'description' => 'The access control list (ACL) IDs. You can query at most five ACLs in each call.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ID of the ACL.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'nacl-hp34s2h0xx1ht4nwo****',
- ],
- 'required' => true,
- 'maxItems' => 5,
- 'minItems' => 1,
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can generate a value from your client to make sure that the value is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the request as the **ClientToken**. The **RequestId** of each request is unique.', 'type' => 'string', 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => '', 'required' => false],
],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AclRelations' => [
- 'title' => '访问控制列表',
- 'description' => 'The relations between the specified ACL and the listeners.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ACL and the associated listeners.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AclId' => [
- 'title' => '访问控制策略id',
- 'description' => 'ACL ID'."\n",
- 'type' => 'string',
- 'example' => 'nacl-hp34s2h0xx1ht4nwo****',
- ],
- 'RelatedListeners' => [
- 'title' => '关联的监听',
- 'description' => 'The listeners that are associated with the ACL.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The listener that is associated with the ACL.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ListenerId' => [
- 'title' => '监听ID',
- 'description' => 'The listener ID.'."\n",
- 'type' => 'string',
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
- 'ListenerPort' => [
- 'title' => '监听端口',
- 'description' => 'The listener port.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '80',
- ],
- 'ListenerProtocol' => [
- 'title' => '监听协议',
- 'description' => 'The listener protocol.'."\n",
- 'type' => 'string',
- 'example' => 'HTTPS',
- ],
- 'LoadBalancerId' => [
- 'title' => '实例ID',
- 'description' => 'The ID of the SLB instance.'."\n",
- 'type' => 'string',
- 'example' => 'lb-bp1b6c719dfa08ex****',
- ],
- 'Status' => [
- 'title' => '关联状态',
- 'description' => 'The association status between the ACL and the listener.'."\n"
- ."\n"
- .'* **Associating**'."\n"
- .'* **Associated**'."\n"
- .'* **Dissociating**'."\n",
- 'type' => 'string',
- 'example' => 'Associated',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- 'RequestId' => [
- 'title' => '请求id',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- ],
- ],
- ],
- ],
- 'errorCodes' => [
- 403 => [
- [
- 'errorCode' => 'Forbidden.Acl',
- 'errorMessage' => 'Authentication is failed for %s.',
- ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run. The system checks the required parameters, request format, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): sends the request. If the request passes the check, the system returns a 2xx HTTP status code and performs the operation.', 'type' => 'string', 'example' => 'false', 'title' => '', 'required' => false],
],
[
- [
- 'errorCode' => 'ResourceNotFound.Acl',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the Application Load Balancer (ALB) instance.', 'type' => 'string', 'required' => true, 'example' => 'alb-bp1o94dp5i6ea****', 'title' => ''],
],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclRelations\\": [\\n {\\n \\"AclId\\": \\"acl-hp34s2h0xx1ht4nwo****\\",\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bpn0kn908w4nbw****\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTPS\\",\\n \\"LoadBalancerId\\": \\"alb-bp1b6c719dfa08ex****\\",\\n \\"Status\\": \\"Associated\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\"\\n}","errorExample":""},{"type":"xml","example":"<ListAclRelationsResponse>\\n <AclRelations>\\n <AclId>nacl-hp34s2h0xx1ht4nwo****</AclId>\\n <RelatedListeners>\\n <ListenerId>lsr-bp1bpn0kn908w4nbw****</ListenerId>\\n <ListenerPort>80</ListenerPort>\\n <ListenerProtocol>HTTPS</ListenerProtocol>\\n <LoadBalancerId>lb-bp1b6c719dfa08ex****</LoadBalancerId>\\n <Status>Associated</Status>\\n </RelatedListeners>\\n </AclRelations>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</ListAclRelationsResponse>","errorExample":""}]',
- 'title' => 'ListAclRelations',
- ],
- 'DissociateAclsFromListener' => [
- 'summary' => 'Disassociates access control lists (ACLs) from a listener.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
[
- 'AK' => [],
+ 'name' => 'AddressType',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The target network type. Valid values:'."\n"
+ ."\n"
+ .'- **Internet**: The load balancer is assigned a public IP address and can be accessed over the Internet. Its DNS domain name is resolved to the public IP address.'."\n"
+ ."\n"
+ .'- **Intranet**: The load balancer is assigned a private IP address and can be accessed only from the VPC where it is deployed. Its DNS domain name is resolved to the private IP address.', 'type' => 'string', 'required' => true, 'example' => 'Internet', 'title' => ''],
],
- ],
- 'operationType' => 'write',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
- 'parameters' => [
[
- 'name' => 'AclIds',
+ 'name' => 'ZoneMappings',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '访问控制策略Id',
- 'description' => 'The access control list (ACL) IDs. You can disassociate at most three ACLs from a listener in each call.'."\n",
+ 'title' => '',
+ 'description' => 'The mappings between availability zones and vSwitches. You can specify up to 10 mappings. If the region supports two or more availability zones, you must specify mappings for at least two.',
'type' => 'array',
'items' => [
- 'description' => 'The ID of the ACL.'."\n",
- 'type' => 'string',
+ 'description' => 'The mappings between availability zones and vSwitches.',
+ 'type' => 'object',
+ 'properties' => [
+ 'VSwitchId' => ['description' => 'The ID of the vSwitch in the specified availability zone. You can specify only one vSwitch for each availability zone.', 'type' => 'string', 'required' => false, 'example' => 'vsw-bp10ttov87felojcn****', 'title' => ''],
+ 'ZoneId' => ['description' => 'The ID of the availability zone of the ALB instance.'."\n"
+ ."\n"
+ .'You can call the [DescribeZones](~~189196~~) operation to query information about availability zones.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou-a', 'title' => ''],
+ 'AllocationId' => ['description' => 'The ID of the elastic IP address (EIP).'."\n"
+ ."\n"
+ .'> This parameter is required when you change the network type from Intranet to Internet.', 'type' => 'string', 'example' => 'eip-bp1aedxso6u80u0qf****', 'title' => '', 'required' => false],
+ 'EipType' => ['description' => 'The type of the EIP. Valid values:'."\n"
+ ."\n"
+ .'- **Common** (default): a regular EIP.'."\n"
+ ."\n"
+ .'- Anycast: Anycast EIP.'."\n"
+ ."\n"
+ .'> For the regions where Application Load Balancer (ALB) supports binding Anycast Elastic IP addresses (EIPs), see [Usage limits](~~460727~~).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Common'],
+ ],
'required' => false,
- 'example' => 'nacl-hp34s2h0xx1ht4nwo****',
+ 'title' => '',
+ 'example' => '',
],
- 'required' => true,
- 'maxItems' => 20,
- ],
- ],
- [
- 'name' => 'ListenerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '监听Id',
- 'description' => 'The ID of the listener.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsr-bp1bpn0kn908w4nbw****',
- ],
- ],
- [
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => '预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
'required' => false,
- 'example' => 'true',
+ 'example' => '',
],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'RetainResourceType',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
+ 'type' => 'array',
+ 'items' => ['type' => 'string', 'example' => 'eip', 'description' => '', 'title' => ''],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
],
],
],
@@ -20754,68 +13827,72 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The operation to disassociate ACLs from a listener.'."\n",
+ 'description' => 'The returned data.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => '请求id',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'],
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.Acl',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'ResourceInConfiguring',
- 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.',
- ],
- [
- 'errorCode' => 'LockFailed',
- 'errorMessage' => 'The specified resource lock failed.',
- ],
+ ['errorCode' => 'OperationDenied.OnlyPostPaidEipSupported', 'errorMessage' => 'The operation is not allowed because of OnlyPostPaidEipSupported.', 'description' => ''],
+ ['errorCode' => 'Mismatch.ZoneIdAndVSwitchId', 'errorMessage' => 'The ZoneId and VSwitchId are mismatched.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.Eip', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'ResourceNotFound.Eip', 'errorMessage' => 'The specified resource ResourceNotFound.Eip is not found.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.CommonBandwidthPackage', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.CommonBandwidthPackage', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.AddressTypeNotChanged', 'errorMessage' => 'The operation is not allowed because of AddressTypeNotChanged.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'ResourceNotAssociated.Acl',
- 'errorMessage' => 'The specified resource %s is not associated.',
- ],
+ ['errorCode' => 'ResourceNotFound.CommonBandwidthPackage', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\"\\n}","errorExample":""},{"type":"xml","example":"<DissociateAclsFromListenerResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</DissociateAclsFromListenerResponse>","errorExample":""}]',
- 'title' => 'DissociateAclsFromListener',
- 'description' => '**DissociateAclsFromListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [ListAclRelations](~~213618~~) to query the status of an ACL.'."\n"
- ."\n"
- .'* If an ACL is in the **Dissociating** state, the ACL is being disassociated from the listener.'."\n"
- .'* If an ACL is in the **Dissociated** state, the ACL is disassociated from the listener.'."\n",
- ],
- 'RemoveEntriesFromAcl' => [
- 'summary' => 'Removes entries from an access control list (ACL).',
- 'methods' => [
- 'get',
- 'post',
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'title' => 'UpdateLoadBalancerAddressTypeConfig',
+ 'summary' => 'Changing the network type of an application load balancer instance.',
+ 'description' => 'Prerequisites'."\n"
+ ."\n"
+ .'- You have created an Application Load Balancer (ALB) instance. For more information, see [CreateLoadBalancer](~~214358~~).'."\n"
+ ."\n"
+ .'- To change the network type of an ALB instance from Intranet to Internet, you must create an elastic IP address. For more information, see [AllocateEipAddress](~~120192~~).'."\n"
+ ."\n"
+ .'Usage notes'."\n"
+ ."\n"
+ .'The **UpdateLoadBalancerAddressTypeConfig** operation is an asynchronous task. After you send a request, the system returns a request ID and runs the task in the background. The network type of the ALB instance is not immediately modified. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the status of the ALB instance:'."\n"
+ ."\n"
+ .'- If the ALB instance is in the **Configuring** state, its network type is being modified.'."\n"
+ ."\n"
+ .'- If the ALB instance is in the **Active** state, its network type has been modified.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateLoadBalancerAddressTypeConfig',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'alb:AddressType', 'validationType' => 'always'],
+ ],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","type":"json"}]',
+ ],
+ 'UpdateLoadBalancerAttribute' => [
+ 'summary' => 'Updates the properties of an Application Load Balancer instance, such as its name and modification protection.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -20823,67 +13900,60 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'schema' => ['description' => 'A client-generated token that is used to ensure the idempotence of the request. Make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'Generate a value from your client and make sure that the value is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system uses the **RequestId** as the **ClientToken**. The **RequestId** of each API request is unique.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => '', 'required' => false],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Performs a dry run. The system checks for required parameters, the request format, and business limits. If the request fails the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned. No properties of the Application Load Balancer instance are modified.'."\n"
+ ."\n"
+ .'- **false** (default): Sends a normal request. After the request passes the check, a `2xx` status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
[
- 'name' => 'AclId',
+ 'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => '访问控制策略Id',
- 'description' => 'The ID of the ACL.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'nacl-hp34s2h0xx1ht4nwo****',
- ],
+ 'schema' => ['description' => 'The Application Load Balancer instance ID.', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****', 'title' => ''],
],
[
- 'name' => 'Entries',
+ 'name' => 'LoadBalancerName',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The name of the Application Load Balancer instance must be 2 to 128 characters in length. It must start with a letter, a Chinese character, or a number. The name can contain numbers, periods (.), underscores (\\_), hyphens (-), and spaces.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'alb-instance-test'],
+ ],
+ [
+ 'name' => 'ModificationProtectionConfig',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '条目列表',
- 'description' => 'The entries that you want to remove. You can remove up to 20 entries in each call.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The entry that you want to remove. You can remove up to 20 entries in each call.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.1.0/24',
+ 'title' => '',
+ 'description' => 'The modification protection settings.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Reason' => ['description' => 'The reason for enabling modification protection.'."\n"
+ ."\n"
+ .'The reason must be 2 to 128 characters long. It must start with a letter and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'This parameter is valid only when **Status** is set to **ConsoleProtection**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Managed Instance'],
+ 'Status' => ['description' => 'The modification protection status of the Application Load Balancer instance. Valid values:'."\n"
+ ."\n"
+ .'- **NonProtection**: Disables modification protection. If you specify a value for **Reason**, the value is cleared.'."\n"
+ ."\n"
+ .'- **ConsoleProtection**: Enables modification protection in the console. If you specify a value for **Reason**, the value takes effect.'."\n"
+ ."\n"
+ .'> If you set the value to **ConsoleProtection**, you cannot modify the instance configuration in the Application Load Balancer console. However, you can still modify the instance configuration by calling API operations.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'ConsoleProtection'],
],
- 'required' => true,
- 'maxItems' => 20,
- 'minItems' => 1,
+ 'required' => false,
+ 'example' => '',
],
],
],
@@ -20891,260 +13961,230 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The operation to remove entries from an ACL.'."\n",
+ 'description' => 'Updates the attributes of the load balancer instance.',
'type' => 'object',
'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'JobId' => ['description' => 'The ID of the sync task.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IncorrectStatus.Acl',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
],
403 => [
- [
- 'errorCode' => 'Forbidden.Acl',
- 'errorMessage' => 'ACL authentication has failed.',
- ],
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
],
[
- [
- 'errorCode' => 'ResourceNotFound.Acl',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.AclEntry',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","errorExample":""},{"type":"xml","example":"<RemoveEntriesFromAclResponse>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</RemoveEntriesFromAclResponse>","errorExample":""}]',
- 'title' => 'RemoveEntriesFromAcl',
- 'description' => '**RemoveEntriesFromAcl** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAclEntries](~~213616~~) operation to query the status of the task.'."\n"
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]',
+ 'title' => 'UpdateLoadBalancerAttribute',
+ 'description' => 'The **UpdateLoadBalancerAttribute** operation is asynchronous. After you send a request, the system returns a request ID and runs the task in the background. The properties of the Application Load Balancer instance are not modified until the task is complete. You can call [GetLoadBalancerAttribute](~~214362~~) to query the status of the update.'."\n"
."\n"
- .'* If an ACL is in the **Removing** state, the entries are being removed.'."\n"
- .'* If an ACL cannot be found, the entries are removed.'."\n",
- ],
- 'MoveResourceGroup' => [
- 'summary' => 'Moves a resource to another resource group.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
+ .'- If the Application Load Balancer instance is in the **Configuring** state, the instance is being updated.'."\n"
+ ."\n"
+ .'- If the Application Load Balancer instance is in the **Active** state, the update is complete.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateLoadBalancerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
],
+ ],
+ 'UpdateLoadBalancerEdition' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'ResourceType',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '资源类型',
- 'description' => 'The type of the resource. Valid values:'."\n"
- ."\n"
- .'* **loadbalancer**: Application Load Balancer (ALB) instance'."\n"
- .'* **acl**: access control list (ACL)'."\n"
- .'* **securitypolicy**: security policy'."\n"
- .'* **servergroup**: server group'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'ACL',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => '', 'required' => false],
],
[
- 'name' => 'ResourceId',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '指定资源Id',
- 'description' => 'The resource ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'acl-hp34s2h0xx1ht4nwo****',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a `2xx HTTP` status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
],
[
- 'name' => 'NewResourceGroupId',
+ 'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => '资源组id',
- 'description' => 'The ID of the resource group to which you want to transfer the cloud resource.'."\n"
- ."\n"
- .'> You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is resource management?](~~94475~~)'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'rg-9gLOoK****',
- ],
+ 'schema' => ['description' => 'The ID of the ALB instance.', 'type' => 'string', 'required' => true, 'example' => 'alb-bp1b6c719dfa08ex****', 'title' => ''],
+ ],
+ [
+ 'name' => 'LoadBalancerEdition',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The edition of the ALB instance. Different editions have different limits and support different billing methods.'."\n"
+ ."\n"
+ .'- **Basic**: basic'."\n"
+ ."\n"
+ .'- **Standard**: standard'."\n"
+ ."\n"
+ .'- **StandardWithWaf**: WAF-enabled', 'type' => 'string', 'required' => true, 'example' => 'Standard', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The new edition of the ALB instance.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'NotExist.ResourceGroup',
- 'errorMessage' => 'ResourceGroup does not exist.',
- ],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'OperationDenied.Downgrade', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'."\n"],
+ ['errorCode' => 'OperationDenied.EditionNotChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
],
- 403 => [
- [
- 'errorCode' => 'Forbidden.Acl',
- 'errorMessage' => 'ACL authentication has failed.',
- ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
],
- [
- [
- 'errorCode' => 'ResourceNotFound.Acl',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.SecurityPolicy',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ 'title' => 'UpdateLoadBalancerEdition',
+ 'summary' => 'Changes the edition of an Application Load Balancer (ALB) instance.',
+ 'description' => '- You can only upgrade a basic ALB instance to a standard ALB instance or a WAF-enabled ALB instance. You cannot downgrade a standard ALB instance or a WAF-enabled ALB instance to a basic ALB instance. For more information, see [Upgrade an ALB instance](~~214654~~).'."\n"
+ ."\n"
+ .'- **UpdateLoadBalancerEdition** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetLoadBalancerAttribute](~~214362~~) operation to query the status of an ALB instance.'."\n"
+ ."\n"
+ .' - If the ALB instance is in the **Configuring** state, the edition of the ALB instance is being modified.'."\n"
+ ."\n"
+ .' - If the ALB instance is in the **Active** state, the edition of the ALB instance is modified.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateLoadBalancerEdition',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\"\\n}","errorExample":""},{"type":"xml","example":"<MoveResourceGroupResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</MoveResourceGroupResponse>","errorExample":""}]',
- 'title' => 'MoveResourceGroup',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\"\\n}","type":"json"}]',
],
- 'ListTagKeys' => [
- 'summary' => 'Queries tag keys.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'UpdateLoadBalancerZones' => [
+ 'summary' => 'Modifies the availability zones of an ALB instance.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'get',
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '198',
+ 'abilityTreeNodes' => ['FEATUREslb9RALVR', 'FEATUREslbFTB0NK'],
],
'parameters' => [
[
- 'name' => 'NextToken',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '分页查询标识',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* You do not need to specify this parameter for the first request.'."\n"
- .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
+ 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'Generate a unique token from your client for each request. The `ClientToken` parameter can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the request\'s **RequestId** as the **ClientToken**. The **RequestId** differs for each API request.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => '', 'required' => false],
],
[
- 'name' => 'MaxResults',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '查询数量',
- 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '20',
- 'default' => '20',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run to check for potential issues, including missing parameters, incorrect formatting, and service limits. If the request fails the dry run, the system returns an error message. If the request passes the dry run, the system returns the `DryRunOperation` error code.'."\n"
+ ."\n"
+ .'- **false** (default): sends the request. If the request passes the check, the system returns an HTTP `2xx` status code and performs the operation.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
[
- 'name' => 'ResourceType',
+ 'name' => 'LoadBalancerId',
'in' => 'query',
- 'schema' => [
- 'title' => '资源类型',
- 'description' => 'The type of the resource. Valid values:'."\n"
- ."\n"
- .'* **acl**: an access control list (ACL)'."\n"
- .'* **loadbalancer**: an Application Load Balancer (ALB) instance'."\n"
- .'* **securitypolicy**: a security policy'."\n"
- .'* **servergroup**: a server group'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'loadbalancer',
- ],
+ 'schema' => ['description' => 'The ID of the ALB instance.', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hfn68jk****', 'title' => ''],
],
[
- 'name' => 'Category',
+ 'name' => 'ZoneMappings',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '标签类型',
- 'description' => 'The type of the tag.'."\n"
- ."\n"
- .'Valid values: **Custom**, **System**, and **All**.'."\n"
- ."\n"
- .'Default value: **All**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'System',
+ 'title' => '',
+ 'description' => 'The mappings between availability zones and VSwitches. You can specify up to 10 availability zones. If the current region supports two or more availability zones, you must specify at least two. Specifying this parameter overwrites the existing availability zone configuration.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The mapping between an availability zone and a VSwitch.',
+ 'type' => 'object',
+ 'properties' => [
+ 'VSwitchId' => ['description' => 'The ID of the VSwitch in the availability zone. Each availability zone uses one VSwitch and one subnet by default.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'vsw-bp1rmcrwg3srh1fh8****'],
+ 'ZoneId' => ['description' => 'The ID of the availability zone. You can call the [DescribeZones](~~189196~~) operation to query the IDs of available zones.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'cn-hangzhou-a'],
+ 'EipType' => ['description' => 'The type of the EIP. Valid values:'."\n"
+ ."\n"
+ .'- **Common**: an EIP.'."\n"
+ ."\n"
+ .'- **Anycast**: an Anycast EIP.'."\n"
+ ."\n"
+ .'> For a list of regions that support binding an Anycast EIP to an ALB instance, see [Usage limits](~~460727~~).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Common'],
+ 'IntranetAddress' => ['description' => 'The private IPv4 address.', 'type' => 'string', 'required' => false, 'example' => '192.168.10.1', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => true,
+ 'maxItems' => 10,
+ 'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'Keyword',
+ 'name' => 'RetainResourceType',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '具体的标签Key',
- 'description' => 'The tag key. 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' => 'test',
+ 'type' => 'array',
+ 'items' => ['type' => 'string', 'example' => 'eip', 'title' => '', 'description' => ''],
+ 'title' => '',
+ 'description' => '',
+ 'example' => '',
],
],
],
@@ -21152,462 +14192,810 @@
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The tag key.'."\n",
+ 'description' => 'The response object.',
'type' => 'object',
'properties' => [
- 'MaxResults' => [
- 'title' => '本次查询返回记录数量',
- 'description' => 'The number of entries per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
- ],
- 'NextToken' => [
- 'title' => '分页查询标识',
- 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- 'TagKeys' => [
- 'title' => '标签Key列表',
- 'description' => 'The tag keys.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tag key.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Category' => [
- 'title' => '标签类型',
- 'description' => 'The type of the tag.'."\n"
- ."\n"
- .'Valid values: **Custom**, **System**, and **All**.'."\n"
- ."\n"
- .'Default value: **All**.'."\n",
- 'type' => 'string',
- 'example' => 'System',
- ],
- 'TagKey' => [
- 'title' => '标签Key',
- 'description' => 'The tag that matches all filter conditions.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- ],
- ],
- ],
- 'TotalCount' => [
- 'title' => '总记录数',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
- ],
+ 'JobId' => ['description' => 'The job ID.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'],
],
+ 'example' => '',
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\",\\n \\"TagKeys\\": [\\n {\\n \\"Category\\": \\"System\\",\\n \\"TagKey\\": \\"test\\"\\n }\\n ],\\n \\"TotalCount\\": 10\\n}","errorExample":""},{"type":"xml","example":"<ListTagKeysResponse>\\n <MaxResults>20</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <TagKeys>\\n <Category>System</Category>\\n <TagKey>test</TagKey>\\n </TagKeys>\\n <TotalCount>10</TotalCount>\\n</ListTagKeysResponse>","errorExample":""}]',
- 'title' => 'ListTagKeys',
- ],
- 'ListTagResources' => [
- 'summary' => 'Queries the tags of resources.',
- 'methods' => [
- 'get',
- 'post',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'IncorrectBusinessStatus.Eip', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['errorCode' => 'OperationDenied.ZoneVSwitchChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'."\n"],
+ ['errorCode' => 'OperationDenied.ZoneMappingsNotChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource %s is not enough.', 'description' => 'The specified resource %s is not enough.'],
+ ['errorCode' => 'Mismatch.ZoneIdAndVSwitchId', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The %s and %s are mismatched.'],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
],
+ 'title' => 'UpdateLoadBalancerZones',
+ 'description' => '**UpdateLoadBalancerZones** is an asynchronous API. After you send a request, the system returns a request ID but does not immediately modify the availability zones. The modification runs in the background. Call the [GetLoadBalancerAttribute](~~214362~~) operation to query the modification status:'."\n"
+ ."\n"
+ .'- If the ALB instance is in the **Configuring** state, the modification is in progress.'."\n"
+ ."\n"
+ .'- If the ALB instance is in the **Active** state, the modification is complete.'."\n"
+ ."\n"
+ .'> Calling this operation may incur fees.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateLoadBalancerZones',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]',
+ ],
+ 'UpdateRuleAttribute' => [
+ 'summary' => 'Updates a forwarding rule\'s properties, such as its conditions, actions, and name.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'get',
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '177',
+ 'abilityTreeNodes' => ['FEATUREslbM7ALO6'],
],
'parameters' => [
[
- 'name' => 'NextToken',
+ 'name' => 'RuleId',
'in' => 'query',
- 'schema' => [
- 'title' => '分页查询标识',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* You do not need to specify this parameter for the first request.'."\n"
- .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
+ 'schema' => ['description' => 'The forwarding rule ID.', 'type' => 'string', 'required' => true, 'example' => 'rule-4dp5i6ea****', 'title' => ''],
],
[
- 'name' => 'MaxResults',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '查询数量',
- 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '20',
- 'default' => '20',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can generate a token from your client. Make sure that the token is unique across different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the request as the **ClientToken**. The **RequestId** of each request is unique.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => '', 'required' => false],
],
[
- 'name' => 'ResourceType',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'title' => '资源类型',
- 'description' => 'The type of the resource. Valid values:'."\n"
- ."\n"
- .'* **acl**: an access control list (ACL)'."\n"
- .'* **loadbalancer**: an Application Load Balancer (ALB) instance'."\n"
- .'* **securitypolicy**: a security policy'."\n"
- .'* **servergroup**: a server group'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'loadbalancer',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Performs a dry run but does not update the attributes of the forwarding rule. The system checks the required parameters, request format, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): Sends a standard request. If the request passes the check, a `2xx` HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
],
[
- 'name' => 'ResourceId',
+ 'name' => 'RuleConditions',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '资源实例Id',
- 'description' => 'The resource IDs.'."\n",
+ 'title' => '',
+ 'description' => 'The forwarding conditions.',
'type' => 'array',
'items' => [
- 'description' => 'The resource ID.'."\n",
- 'type' => 'string',
+ 'description' => 'The forwarding conditions.',
+ 'type' => 'object',
+ 'properties' => [
+ 'CookieConfig' => [
+ 'title' => '',
+ 'description' => 'The cookie configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The cookies.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The cookie.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The cookie key. The key must be 1 to 100 characters in length and can contain lowercase letters, printable characters, asterisks (\\*), and question marks (?). The key cannot contain spaces or the following special characters: `#[]{}\\|<>&";`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ 'Value' => ['description' => 'The cookie value. The value must be 1 to 128 characters in length and can contain lowercase letters, printable characters, asterisks (\\*), and question marks (?). The value cannot contain spaces or the following special characters: `#[]{}\\|<>&`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'HeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The HTTP header configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the HTTP header. The key must be 1 to 40 characters in length and can contain letters, digits, hyphens (-), and underscores (\\_). The key cannot be `Cookie` or `Host`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Port'],
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The value of the HTTP header.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The value of the HTTP header. Within the same forwarding condition, the values for a given header key must be unique. The value must meet the following requirements:'."\n"
+ ."\n"
+ .'- The value must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters with ASCII values from 32 to 126, asterisks (\\*), and question marks (?). It cannot contain double quotation marks (`"`).'."\n"
+ ."\n"
+ .'- The value cannot start or end with a space or end with a backslash (`\\`).', 'type' => 'string', 'required' => false, 'example' => '5006', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'HostConfig' => [
+ 'title' => '',
+ 'description' => 'The host configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The list of hostnames.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The hostname. The hostname must meet the following requirements:'."\n"
+ ."\n"
+ .'- The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), and question marks (?).'."\n"
+ ."\n"
+ .'- The hostname must contain at least one period (.). The period cannot be the first or last character.'."\n"
+ ."\n"
+ .'- The rightmost domain label can contain only letters, asterisks (\\*), and question marks (?), but not digits or hyphens (-).'."\n"
+ ."\n"
+ .'- A hyphen (-) cannot be the first or last character of a domain label. Asterisks (\\*) and question marks (?) can be used anywhere in a domain label.', 'type' => 'string', 'required' => false, 'example' => 'www.example.com', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'MethodConfig' => [
+ 'title' => '',
+ 'description' => 'The request method configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The list of request methods.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The request method.'."\n"
+ ."\n"
+ .'Valid values: **HEAD**, **GET**, **POST**, **OPTIONS**, **PUT**, **PATCH**, and **DELETE**.', 'type' => 'string', 'required' => false, 'example' => 'PUT', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'PathConfig' => [
+ 'title' => '',
+ 'description' => 'The path configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The list of paths.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The path. The path must meet the following requirements:'."\n"
+ ."\n"
+ .'- The path must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .'- It must start with a forward slash (/). It can contain letters, digits, and the following special characters: `$-_.+/&~@:`. It cannot contain the following special characters: `“%#;!()[]^,”\\"`. Asterisks (\\*) and question marks (?) can be used as wildcards.', 'type' => 'string', 'required' => false, 'example' => '/test', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'QueryStringConfig' => [
+ 'title' => '',
+ 'description' => 'The query string configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The list of query strings. You can add up to 20 query strings.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The query string.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the query string. The key must be 1 to 100 characters in length and can contain lowercase letters, printable characters, asterisks (\\*), and question marks (?). The key cannot contain spaces or the following special characters: `#[]{}\\|<>&"`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ 'Value' => ['description' => 'The value of the query string. The value must be 1 to 128 characters in length and can contain lowercase letters, printable characters, asterisks (\\*), and question marks (?). The value cannot contain spaces or the following special characters: `#[]{}\\|<>&"`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'Type' => ['description' => 'The type of the forwarding condition. You can specify up to nine types of forwarding conditions. Valid values:'."\n"
+ ."\n"
+ .'- **Host**: Matches requests based on the host.'."\n"
+ ."\n"
+ .'- **Path**: Matches requests based on the path.'."\n"
+ ."\n"
+ .'- **Header**: Matches requests based on the HTTP header.'."\n"
+ ."\n"
+ .'- **QueryString**: Matches requests based on the query string.'."\n"
+ ."\n"
+ .'- **Method**: Matches requests based on the request method.'."\n"
+ ."\n"
+ .'- **Cookie**: Matches requests based on the cookie.'."\n"
+ ."\n"
+ .'- **SourceIp**: Matches requests based on the source IP address.'."\n"
+ ."\n"
+ .'- **ResponseHeader**: Matches requests based on the response HTTP header.'."\n"
+ ."\n"
+ .'- **ResponseStatusCode**: Matches requests based on the response status code.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Host'],
+ 'ResponseStatusCodeConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the response status code.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The list of response status codes.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The response status code.', 'type' => 'string', 'required' => false, 'example' => '301', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ResponseHeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the response header condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the header.'."\n"
+ ."\n"
+ .'- The key must be 1 to 40 characters in length.'."\n"
+ ."\n"
+ .'- It can contain letters, digits, hyphens (-), and underscores (\\_).'."\n"
+ ."\n"
+ .'- The key cannot be `Cookie` or `Host`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The value of the header.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The value of the header.'."\n"
+ ."\n"
+ .'- The value must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .'- It can contain printable characters whose ASCII values are in the range of `32-126`, lowercase letters, asterisks (\\*), and question marks (?). It cannot contain double quotation marks (`"`).'."\n"
+ ."\n"
+ .'- The value cannot start or end with a space or end with a backslash (`\\`).', 'type' => 'string', 'required' => false, 'example' => '50006', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'SourceIpConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the source IP condition. You can specify up to five source IP addresses or CIDR blocks.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'One or more IP addresses or CIDR blocks.',
+ 'type' => 'array',
+ 'items' => ['description' => 'An IP address or a CIDR block.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/32', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
'required' => false,
- 'example' => 'd-2ze1ot4ah7xjyv0d****',
+ 'title' => '',
+ 'example' => '',
],
'required' => false,
- 'example' => 'acl-123',
- 'maxItems' => 50,
+ 'maxItems' => 100,
'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'Tag',
+ 'name' => 'RuleActions',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '标签列表',
- 'description' => 'The tags.'."\n",
+ 'title' => '',
+ 'description' => 'The forwarding actions.',
'type' => 'array',
'items' => [
- 'description' => 'The tag.'."\n",
+ 'description' => 'The forwarding actions.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => '标签键',
- 'description' => 'The tag key. 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',
+ 'FixedResponseConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the fixed response.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Content' => ['description' => 'The content of the fixed response. The content can be up to 1 KB in size and can contain only ASCII characters.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'dssacav'],
+ 'ContentType' => ['description' => 'The format of the fixed response.'."\n"
+ ."\n"
+ .'Valid values: **text/plain**, **text/css**, **text/html**, **application/javascript**, and **application/json**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'text/plain'],
+ 'HttpCode' => ['description' => 'The HTTP response code. Valid values are **2xx**, **4xx**, and **5xx**. **x** is a digit from 0 to 9.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '200'],
+ ],
'required' => false,
- 'example' => 'env',
+ 'example' => '',
],
- 'Value' => [
- 'title' => '标签值',
- 'description' => 'The tag value. 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',
+ 'ForwardGroupConfig' => [
+ 'title' => '',
+ 'description' => 'The server group configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupTuples' => [
+ 'title' => '',
+ 'description' => 'The list of destination server groups.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The destination server group.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupId' => ['description' => 'The ID of the destination server group.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'sg--atstuj3rtoptyui****'],
+ 'Weight' => ['description' => 'The weight of the server group. A larger value indicates a higher weight. This means that the server group receives more requests. Valid values: **0** to **100**.'."\n"
+ ."\n"
+ .'- If only one destination server group is specified, the weight is **100** by default.'."\n"
+ ."\n"
+ .'- If multiple destination server groups are specified, you must specify a weight for each server group.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '0', 'title' => '', 'required' => false, 'example' => '30'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ServerGroupStickySession' => [
+ 'title' => '',
+ 'description' => 'Session persistence among server groups.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Enabled' => ['description' => 'Specifies whether to enable session persistence. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false** (default)', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'Timeout' => ['description' => 'The timeout period, in seconds. Valid values: 1 to 86400.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '2'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
'required' => false,
- 'example' => 'product',
+ 'example' => '',
],
- ],
- 'required' => false,
- ],
- 'required' => false,
- 'example' => 'test',
- 'maxItems' => 20,
- 'minItems' => 1,
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'MaxResults' => [
- 'title' => '本次查询返回记录数量',
- 'description' => 'The number of entries per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
- ],
- 'NextToken' => [
- 'title' => '分页查询标识',
- 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ 'InsertHeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration for inserting an HTTP header.',
+ 'type' => 'object',
+ 'properties' => [
+ 'CoverEnabled' => ['description' => 'Specifies whether to overwrite the value of a request header that has the same key. Valid values:'."\n"
+ ."\n"
+ .'- **true**'."\n"
+ ."\n"
+ .'- **false** (default)', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'Key' => ['description' => 'The key of the header to be inserted. The key must be 1 to 40 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The key in **InsertHeaderConfig** must be unique.'."\n"
+ ."\n"
+ .'> The following header keys are not supported (case-insensitive): `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `x-forwarded-host`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, and `authority`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'key'],
+ 'Value' => ['description' => 'The value of the header to be inserted.'."\n"
+ ."\n"
+ .'- If **ValueType** is set to **SystemDefined**, you can use one of the following values:'."\n"
+ ."\n"
+ .' - **ClientSrcPort**: The client port.'."\n"
+ ."\n"
+ .' - **ClientSrcIp**: The client IP address.'."\n"
+ ."\n"
+ .' - **Protocol**: The protocol of the client request (HTTP or HTTPS).'."\n"
+ ."\n"
+ .' - **SLBId**: The ID of the Application Load Balancer instance.'."\n"
+ ."\n"
+ .' - **SLBPort**: The listener port of the Application Load Balancer instance.'."\n"
+ ."\n"
+ .'- If **ValueType** is set to **UserDefined**, you can specify a custom header value. The value must be 1 to 128 characters in length, and can contain asterisks (\\*), question marks (?), and printable characters with ASCII values from 32 to 126. The value cannot contain double quotation marks (`"`), start or end with a space, or end with a backslash (`\\`).'."\n"
+ ."\n"
+ .'- If **ValueType** is set to **ReferenceHeader**, you can reference a request header. The value must be 1 to 128 characters in length and can contain lowercase letters, digits, hyphens (-), and underscores (\\_).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'UserDefined'],
+ 'ValueType' => ['description' => 'The type of the header value. Valid values:'."\n"
+ ."\n"
+ .'- **UserDefined**: A custom header value.'."\n"
+ ."\n"
+ .'- **ReferenceHeader**: A header value that is referenced from a request header.'."\n"
+ ."\n"
+ .'- **SystemDefined**: A system-defined header value.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'UserDefined'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'Order' => ['description' => 'The execution order of forwarding rule actions. The value can range from **1 to 50000**. Actions are executed in ascending order of their values. Each value must be unique and cannot be empty. You can add a maximum of 20 forwarding rule actions.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '1'],
+ 'RedirectConfig' => [
+ 'title' => '',
+ 'description' => 'The redirection configuration. You can specify up to 20 redirections.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Host' => ['description' => 'The destination host. Valid values:'."\n"
+ ."\n"
+ .'- **${host}** (default): This value can be used only on its own and cannot be combined with other characters.'."\n"
+ ."\n"
+ .'- Other values must meet the following requirements:'."\n"
+ ."\n"
+ .' - The hostname must be 3 to 128 characters in length and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), and question marks (?).'."\n"
+ ."\n"
+ .' - The hostname must contain at least one period (.). The period cannot be the first or last character.'."\n"
+ ."\n"
+ .' - The rightmost domain label can contain only letters and wildcards. It cannot contain digits or hyphens (-).'."\n"
+ ."\n"
+ .' - A hyphen (-) cannot be the first or last character of a domain label.'."\n"
+ ."\n"
+ .' - You can use asterisks (\\*) and question marks (?) at any position of a domain label.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'www.example.com'],
+ 'HttpCode' => ['description' => 'The redirection method. Valid values: **301**, **302**, **303**, **307**, and **308**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '301'],
+ 'Path' => ['description' => 'The destination path. Valid values:'."\n"
+ ."\n"
+ .'- **${path}** (default): You can use variables such as ${host}, ${protocol}, and ${port}. Each variable can be referenced only once. You can use these variables together or combine them with a string that meets the requirements below.'."\n"
+ ."\n"
+ .'- Other values must meet the following requirements:'."\n"
+ ."\n"
+ .' - The path must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .' - It must start with a forward slash (/). It can contain letters, digits, and the following special characters: `$-_.+/&~@:`. It cannot contain the following special characters: `“%#;!()[]^,”\\"`. Asterisks (\\*) and question marks (?) can be used as wildcards.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '/test'],
+ 'Port' => ['description' => 'The destination port. Valid values:'."\n"
+ ."\n"
+ .'- **${port}** (default): This value can be used only on its own and cannot be combined with other characters.'."\n"
+ ."\n"
+ .'- Other values: **1** to 63335.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '10'],
+ 'Protocol' => ['description' => 'The destination protocol. Valid values:'."\n"
+ ."\n"
+ .'- **${protocol}** (default): This value can be used only on its own and cannot be combined with other characters.'."\n"
+ ."\n"
+ .'- **HTTP** or **HTTPS**.'."\n"
+ ."\n"
+ .'> HTTPS listeners support redirection only to HTTPS.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'HTTP'],
+ 'Query' => ['description' => 'The destination query string. Valid values:'."\n"
+ ."\n"
+ .'- **${query}** (default): You can use variables such as ${host}, ${protocol}, and ${port}. Each variable can be referenced only once. You can use these variables together or combine them with a string that meets the requirements below.'."\n"
+ ."\n"
+ .'- Other values must meet the following requirements:'."\n"
+ ."\n"
+ .' - The value must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .' - It can contain printable characters but cannot contain spaces or the following special characters: `#[]{}\\|<>"`. If the value contains letters, they must be lowercase.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'quert'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'RewriteConfig' => [
+ 'title' => '',
+ 'description' => 'The rewrite configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Host' => ['description' => 'The destination host to which requests are rewritten. Valid values:'."\n"
+ ."\n"
+ .'- **${host}** (default): This value can be used only on its own and cannot be combined with other characters.'."\n"
+ ."\n"
+ .'- Other values must meet the following requirements:'."\n"
+ ."\n"
+ .' - The hostname must be 3 to 128 characters in length and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (\\*), and question marks (?).'."\n"
+ ."\n"
+ .' - The hostname must contain at least one period (.). A period cannot be the first or last character.'."\n"
+ ."\n"
+ .' - The rightmost domain label can contain only letters and wildcards. It cannot contain digits or hyphens (-).'."\n"
+ ."\n"
+ .' - A hyphen (-) cannot be the first or last character of a domain label. You can use asterisks (\\*) and question marks (?) at any position of a domain label.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'www.example.com'],
+ 'Path' => ['description' => 'The destination path. Valid values:'."\n"
+ ."\n"
+ .'- **${path}** (default): You can use variables such as ${host}, ${protocol}, and ${port}. Each variable can be referenced only once. You can use these variables together or combine them with a string that meets the requirements below.'."\n"
+ ."\n"
+ .'- Other values must meet the following requirements:'."\n"
+ ."\n"
+ .' - The path must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .' - It must start with a forward slash (/). It can contain letters, digits, and the following special characters: `$-_.+/&~@:`. It cannot contain the following special characters: `“%#;!()[]^,”\\"`. Asterisks (\\*) and question marks (?) can be used as wildcards.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '/tsdf'],
+ 'Query' => ['description' => 'The destination query string for the rewrite. Valid values:'."\n"
+ ."\n"
+ .'- **${query}** (default): You can use variables such as ${host}, ${protocol}, and ${port}. Each variable can be referenced only once. You can use these variables together or combine them with a string that meets the requirements below.'."\n"
+ ."\n"
+ .'- Other values must meet the following requirements:'."\n"
+ ."\n"
+ .' - The value must be 1 to 128 characters in length.'."\n"
+ ."\n"
+ .' - It can contain printable characters but cannot contain spaces or the following special characters: `#[]{}\\|<>"`. If the value contains letters, they must be lowercase.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'quedsa'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'Type' => ['description' => 'The action type. You can specify up to nine action types. Valid values:'."\n"
."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- 'TagResources' => [
- 'title' => '标签值列表',
- 'description' => 'The tags that match the specified keys and values.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tag that matches the specified key and value.'."\n",
+ .'- **ForwardGroup**: Forwards a request to multiple server groups.'."\n"
+ ."\n"
+ .'- **Redirect**: Redirects a request.'."\n"
+ ."\n"
+ .'- **FixedResponse**: Returns a fixed response.'."\n"
+ ."\n"
+ .'- **Rewrite**: Rewrites a request.'."\n"
+ ."\n"
+ .'- **InsertHeader**: Inserts an HTTP header.'."\n"
+ ."\n"
+ .'- **RemoveHeader**: Removes an HTTP header.'."\n"
+ ."\n"
+ .'- **TrafficLimit**: Enables traffic throttling.'."\n"
+ ."\n"
+ .'- **TrafficMirror**: Enables traffic mirroring.'."\n"
+ ."\n"
+ .'- **Cors**: Enables Cross-Origin Resource Sharing (CORS).'."\n"
+ ."\n"
+ .'> A forwarding rule must contain a **ForwardGroup**, **Redirect**, or **FixedResponse** action. When used with other action types, one of these actions must be performed last.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'ForwardGroup'],
+ 'TrafficLimitConfig' => [
+ 'title' => '',
+ 'description' => 'The traffic throttling configuration.',
'type' => 'object',
'properties' => [
- 'ResourceId' => [
- 'title' => '资源ID',
- 'description' => 'The resource ID.'."\n",
- 'type' => 'string',
- 'example' => 'd-2ze1ot4ah7xjyv0d****',
+ 'QPS' => ['description' => 'The number of queries per second (QPS). Valid values: **1** to 1,000,000.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'title' => ''],
+ 'PerIpQps' => ['description' => 'The number of queries per second (QPS) allowed per IP address. Valid values: **1** to 1,000,000.'."\n"
+ ."\n"
+ .'> If you specify both **QPS** and **PerIpQps**, the value of **PerIpQps** must be smaller than the value of **QPS**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80', 'title' => ''],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'TrafficMirrorConfig' => [
+ 'title' => '',
+ 'description' => 'The traffic mirroring configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'TargetType' => ['description' => 'The type of the destination to which traffic is mirrored. Valid values:'."\n"
+ ."\n"
+ .'- **ForwardGroupMirror**: A server group.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'ForwardGroupMirror'],
+ 'MirrorGroupConfig' => [
+ 'title' => '',
+ 'description' => 'The server group to which traffic is mirrored.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupTuples' => [
+ 'description' => 'The server group to which traffic is mirrored.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The server group to which traffic is mirrored.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupId' => ['description' => 'The ID of the server group.', 'type' => 'string', 'required' => false, 'example' => 'srg-00mkgijak0w4qgz9****', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
],
- 'ResourceType' => [
- 'title' => '资源类型',
- 'description' => 'The type of the resource. Valid values:'."\n"
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'RemoveHeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration for removing an HTTP header.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the header to be removed. The key must be 1 to 40 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The key must be unique within a `RemoveHeader` action.'."\n"
+ ."\n"
+ .'- If `Direction` is set to `Request`, the following header keys are not supported (case-insensitive): `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `x-forwarded-host`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, and `authority`.'."\n"
+ ."\n"
+ .'- If `Direction` is set to `Response`, the following header keys are not supported (case-insensitive): `connection`, `upgrade`, `content-length`, and `transfer-encoding`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'CorsConfig' => [
+ 'title' => '',
+ 'description' => 'The Cross-Origin Resource Sharing (CORS) configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'AllowOrigin' => [
+ 'title' => '',
+ 'description' => 'The list of allowed origins. You can specify only one `*` or one or more values.'."\n"
."\n"
- .'* **acl**: an ACL'."\n"
- .'* **loadbalancer**: an ALB instance'."\n"
- .'* **securitypolicy**: a security policy'."\n"
- .'* **servergroup**: a server group'."\n",
- 'type' => 'string',
- 'example' => 'loadbalancer',
+ .'- A value must'."\n"
+ ."\n"
+ .'- A single value can be specified with or without a port. The port range is **1**-**65535**.',
+ 'type' => 'array',
+ 'items' => ['description' => 'Allowed access sources.', 'type' => 'string', 'required' => false, 'example' => 'http://test.com', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
],
- 'TagKey' => [
- 'title' => '标签Key',
- 'description' => 'The tag key.'."\n",
- 'type' => 'string',
- 'example' => 'env',
+ 'AllowMethods' => [
+ 'title' => '',
+ 'description' => 'Select the HTTP methods to allow for cross-origin access.',
+ 'type' => 'array',
+ 'items' => ['description' => 'Select the HTTP methods allowed for cross-origin resource sharing (CORS). The valid values are:'."\n"
+ ."\n"
+ .'- **GET**.'."\n"
+ ."\n"
+ .'- **POST**.'."\n"
+ ."\n"
+ .'- **PUT**.'."\n"
+ ."\n"
+ .'- **DELETE**.'."\n"
+ ."\n"
+ .'- **HEAD**.'."\n"
+ ."\n"
+ .'- **OPTIONS**.'."\n"
+ ."\n"
+ .'- **PATCH**.', 'type' => 'string', 'required' => false, 'example' => 'GET', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
],
- 'TagValue' => [
- 'title' => '标签Value',
- 'description' => 'The tag value.'."\n",
- 'type' => 'string',
- 'example' => 'product',
+ 'AllowHeaders' => [
+ 'title' => '',
+ 'description' => 'The list of headers allowed for cross-origin resource sharing (CORS).',
+ 'type' => 'array',
+ 'items' => ['description' => 'The list of headers that are allowed for cross-origin requests. You can set this parameter to the wildcard character (`*`) or one or more values. If you specify multiple values, separate them with commas (,). A single value can contain only uppercase and lowercase letters, digits, underscores (\\_), and hyphens (-). Underscores and hyphens cannot be the first or last character. The maximum length of a value is 32 characters.', 'type' => 'string', 'required' => false, 'example' => 'test_123', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ExposeHeaders' => [
+ 'title' => '',
+ 'description' => 'The list of headers that can be exposed.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The list of headers that are allowed to be exposed. You can set this to `*` or one or more values. Separate multiple values with a comma (,). A single value can contain only uppercase and lowercase letters, numbers, underscores (\\_), and hyphens (-). Underscores and hyphens cannot be the first or last character. The maximum length is 32 characters.', 'type' => 'string', 'required' => false, 'example' => 'test_123', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
],
+ 'AllowCredentials' => ['description' => 'Specifies whether to include credentials. Valid values:'."\n"
+ ."\n"
+ .'- **on**: Yes.'."\n"
+ ."\n"
+ .'- **off**: No.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'on'],
+ 'MaxAge' => ['description' => 'The maximum cache duration for a preflight request in the browser, in seconds.'."\n"
+ ."\n"
+ .'Valid values: **-1** to **172800**.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'required' => false, 'example' => '1000'],
],
+ 'required' => false,
+ 'example' => '',
],
],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- ],
- ],
- ],
- 'errorCodes' => [
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Acl',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.SecurityPolicy',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- ],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FD******\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"alb-gws76zijb0******\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"TagKey\\": \\"env\\",\\n \\"TagValue\\": \\"product\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListTagResourcesResponse>\\n <MaxResults>20</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <TagResources>\\n <ResourceId>d-2ze1ot4ah7xjyv0d****</ResourceId>\\n <ResourceType>loadbalancer</ResourceType>\\n <TagKey>env</TagKey>\\n <TagValue>product</TagValue>\\n </TagResources>\\n</ListTagResourcesResponse>","errorExample":""}]',
- 'title' => 'ListTagResources',
- ],
- 'ListTagValues' => [
- 'summary' => 'Queries tag values.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
- ],
- ],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- ],
- 'parameters' => [
- [
- 'name' => 'NextToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '分页查询标识',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* You do not need to specify this parameter for the first request.'."\n"
- .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- ],
- [
- 'name' => 'MaxResults',
- 'in' => 'query',
- 'schema' => [
- 'title' => '查询数量',
- 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '20',
- 'default' => '20',
- ],
- ],
- [
- 'name' => 'ResourceType',
- 'in' => 'query',
- 'schema' => [
- 'title' => '资源类型',
- 'description' => 'The type of the resource. Valid values:'."\n"
- ."\n"
- .'* **loadbalancer**: an Application Load Balancer (ALB) instance'."\n"
- .'* **acl**: an access control list (ACL)'."\n"
- .'* **securitypolicy**: a security policy'."\n"
- .'* **servergroup**: a server group'."\n",
- 'type' => 'string',
'required' => false,
- 'example' => 'loadbalancer',
+ 'maxItems' => 100,
+ 'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'ResourceId',
+ 'name' => 'RuleName',
'in' => 'query',
- 'schema' => [
- 'title' => '资源实例Id',
- 'description' => 'The resource ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'eip-resource-test',
- ],
+ 'schema' => ['description' => 'The name of the forwarding rule. The name must be 2 to 128 characters long and start with a letter, a Chinese character, or a number. It can contain numbers, periods (.), underscores (\\_), hyphens (-), and spaces.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'rule-instance-test'],
],
[
- 'name' => 'TagKey',
+ 'name' => 'Priority',
'in' => 'query',
- 'schema' => [
- 'title' => '具体的标签Key',
- 'description' => 'The tag key. 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' => true,
- 'example' => 'test',
- ],
+ 'schema' => ['description' => 'The priority of the rule ranges from **1 to 10000**. A smaller value indicates a higher priority.'."\n"
+ ."\n"
+ .'> Rule priorities must be unique within the same listener.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '10'],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The operation to query tag values.'."\n",
+ 'title' => '',
+ 'description' => 'Updates the attributes of a specified forwarding rule for an Application Load Balancer (ALB).',
'type' => 'object',
'properties' => [
- 'MaxResults' => [
- 'title' => '本次查询返回记录数量',
- 'description' => 'The number of entries per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
- ],
- 'NextToken' => [
- 'title' => '分页查询标识',
- 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
- 'TagValues' => [
- 'title' => '标签值列表',
- 'description' => 'The tag values.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tag that matches all filter conditions.'."\n",
- 'type' => 'string',
- 'example' => 'owner',
- ],
- ],
- 'TotalCount' => [
- 'title' => '总记录数',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
- ],
+ 'JobId' => ['description' => 'The asynchronous task ID.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F5378-41F6-4AE4-92F8-7FF34B540710'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Acl',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.SecurityPolicy',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.Rule', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'OperationDenied.GRPCServerGroup', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'Conflict.Priority', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.RuleWildcardsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'."\n"],
+ ['errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.RuleActionsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded. Usage: %s/%s.'],
+ ['errorCode' => 'Mismatch.Protocol', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'The %s is mismatched for %s and %s.'],
+ ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'The %s is mismatched for %s and %s.'],
+ ['errorCode' => 'OperationDenied.RewriteMissingForwardGroup', 'errorMessage' => 'The operation is not allowed because of RewriteMissingForwardGroup.', 'description' => 'The operation is not allowed because rewrite is missing the forward group.'],
+ ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified listener is being configured, please try again later.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', 'description' => ''],
+ ],
+ 403 => [
+ ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication has failed for ServerGroup.', 'description' => ''],
+ ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => 'Authentication is failed for %s.'],
+ ],
+ [
+ ['errorCode' => 'ResourceNotFound.Rule', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F5378-41F6-4AE4-92F8-7FF34B540710\\"\\n}","type":"json"}]',
+ 'title' => 'UpdateRuleAttribute',
+ 'description' => '- The **UpdateRuleAttribute** operation is asynchronous. After you send a request, the system returns a request ID and performs the update in the background. You can call [ListRules](~~214379~~) to query the status of the forwarding rule:'."\n"
+ ."\n"
+ .' - If the status is **Configuring**, the rule is being updated.'."\n"
+ ."\n"
+ .' - If the status is **Available**, the update is complete.'."\n"
+ ."\n"
+ .'- The maximum numbers of conditions (**RuleConditions**) and actions (**RuleActions**) for a forwarding rule are as follows:'."\n"
+ ."\n"
+ .' - Conditions: 5 for Basic Edition, 10 for Standard Edition, and 10 for WAF-enabled Edition.'."\n"
+ ."\n"
+ .' - Actions: 3 for Basic Edition, 5 for Standard Edition, and 5 for WAF-enabled Edition.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateRuleAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\",\\n \\"TagValues\\": [\\n \\"owner\\"\\n ],\\n \\"TotalCount\\": 10\\n}","errorExample":""},{"type":"xml","example":"<ListTagValuesResponse>\\n <MaxResults>20</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n <TagValues>owner</TagValues>\\n <TotalCount>10</TotalCount>\\n</ListTagValuesResponse>","errorExample":""}]',
- 'title' => 'ListTagValues',
],
- 'TagResources' => [
- 'summary' => 'Adds tags to resources.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'UpdateRulesAttribute' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -21616,131 +15004,549 @@
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'create',
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '35808',
+ 'abilityTreeNodes' => ['FEATUREslbBIWWMH', 'FEATUREslbTXOYED', 'FEATUREslbQCCQ6L', 'FEATUREslb4T90LL', 'FEATUREslbIT4IYN', 'FEATUREslbA51OGD', 'FEATUREslbUBPZWI', 'FEATUREslbGVK35E', 'FEATUREslbYG3GCF', 'FEATUREslbRBR9GZ', 'FEATUREslbMWZQWL', 'FEATUREslbJCYSIV', 'FEATUREslbY93SFN', 'FEATUREslbVUMBEO', 'FEATUREslbZ4XFTS', 'FEATUREslb2Q6O49'],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ResourceType',
- 'in' => 'query',
- 'schema' => [
- 'title' => '资源类型',
- 'description' => 'The type of the resource. Valid values:'."\n"
- ."\n"
- .'* **acl**: an access control list (ACL)'."\n"
- .'* **loadbalancer**: an Application Load Balancer (ALB) instance'."\n"
- .'* **securitypolicy**: a security policy'."\n"
- .'* **servergroup**: a server group'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'loadbalancer',
- ],
- ],
- [
- 'name' => 'ResourceId',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '资源实例Id',
- 'description' => 'The resource IDs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The resource ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'i-2zebd226fxed6h4i****',
- ],
- 'required' => true,
- 'example' => 'acl-123',
- 'maxItems' => 50,
- 'minItems' => 1,
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'Make sure that the client token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request is different.', 'type' => 'string', 'example' => '123e4567-e89b-12d3-a456-42665544***', 'title' => '', 'required' => false],
],
[
- 'name' => 'Tag',
- 'in' => 'query',
+ 'name' => 'Rules',
+ 'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'title' => '标签列表',
- 'description' => 'The tags.'."\n",
+ 'title' => '',
+ 'description' => 'The list of forwarding rules.',
'type' => 'array',
'items' => [
- 'description' => 'The tag.'."\n",
+ 'description' => 'A forwarding rule.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'title' => '标签键',
- 'description' => 'The tag key. 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',
+ 'Priority' => ['description' => 'The priority of the forwarding rule.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '80'],
+ 'RuleName' => ['description' => 'The name of the forwarding rule.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'rule_111'],
+ 'RuleActions' => [
+ 'title' => '',
+ 'description' => 'The list of forwarding rule actions.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A forwarding rule action.',
+ 'type' => 'object',
+ 'properties' => [
+ 'FixedResponseConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the action to return a fixed response.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Content' => ['description' => 'The content.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'dssacav'],
+ 'ContentType' => ['description' => 'The content type.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'text/plain'],
+ 'HttpCode' => ['description' => 'The HTTP status code.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '200'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ForwardGroupConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the action to forward requests to server groups.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupTuples' => [
+ 'title' => '',
+ 'description' => 'The list of destination server groups.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A destination server group.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupId' => ['description' => 'The server group ID.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'sgp-3kbj35ay7cvi******'],
+ 'Weight' => ['description' => 'The weight.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '0', 'title' => '', 'required' => false, 'example' => '100'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ServerGroupStickySession' => [
+ 'title' => '',
+ 'description' => 'Session persistence between server groups.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Enabled' => ['description' => 'Specifies whether to enable session persistence.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'],
+ 'Timeout' => ['description' => 'The timeout period.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '100'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'InsertHeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the action to insert a header.',
+ 'type' => 'object',
+ 'properties' => [
+ 'CoverEnabled' => ['description' => 'Specifies whether to overwrite the value of a request header.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'False'],
+ 'Key' => ['description' => 'The HTTP header.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'key'],
+ 'Value' => ['description' => 'The content of the HTTP header.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'value'],
+ 'ValueType' => ['description' => 'The value type.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'SystemDefined'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'Order' => ['description' => 'The priority.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '1'],
+ 'RedirectConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the redirection action.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Host' => ['description' => 'The destination host to which requests are redirected.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test.alb.com'],
+ 'HttpCode' => ['description' => 'The redirection method.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '301'],
+ 'Path' => ['description' => 'The destination path to which requests are redirected.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '/'],
+ 'Port' => ['description' => 'The destination port to which requests are redirected.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '443'],
+ 'Protocol' => ['description' => 'The destination protocol to which requests are redirected.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'HTTPS'],
+ 'Query' => ['description' => 'The destination query string to which requests are redirected.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '${query}'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'RewriteConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the rewrite action.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Host' => ['description' => 'The hostname.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '${host}'],
+ 'Path' => ['description' => 'The path.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '/'],
+ 'Query' => ['description' => 'The query.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '${query}'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'Type' => ['description' => 'The type of the forwarding rule action.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'ForwardGroup'],
+ 'TrafficLimitConfig' => [
+ 'title' => '',
+ 'description' => 'The throttling configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'QPS' => ['description' => 'The number of queries per second (QPS).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000', 'title' => ''],
+ 'PerIpQps' => ['description' => 'The number of QPS for a single IP address.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'title' => ''],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'TrafficMirrorConfig' => [
+ 'title' => '',
+ 'description' => 'The traffic mirroring configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'TargetType' => ['description' => 'The type of the mirror destination.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'ForwardGroupMirror'],
+ 'MirrorGroupConfig' => [
+ 'title' => '',
+ 'description' => 'The server groups to which traffic is mirrored.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupTuples' => [
+ 'description' => 'The server groups to which traffic is mirrored.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A server group to which traffic is mirrored.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerGroupId' => ['description' => 'The server group ID.', 'type' => 'string', 'required' => false, 'example' => 'sgp-vlnjo1rhw0vc******', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'RemoveHeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration for removing a specific HTTP header.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the HTTP header.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'key'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'CorsConfig' => [
+ 'title' => '',
+ 'description' => 'The cross-origin resource sharing (CORS) configuration.',
+ 'type' => 'object',
+ 'properties' => [
+ 'AllowOrigin' => [
+ 'title' => '',
+ 'description' => 'The allowed origins.',
+ 'type' => 'array',
+ 'items' => ['description' => 'An allowed origin.', 'type' => 'string', 'required' => false, 'example' => '*', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'AllowMethods' => [
+ 'title' => '',
+ 'description' => 'The allowed HTTP methods for cross-origin requests.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The allowed HTTP method for cross-origin requests. Valid values:'."\n"
+ ."\n"
+ .'- **GET**'."\n"
+ ."\n"
+ .'- **POST**'."\n"
+ ."\n"
+ .'- **PUT**'."\n"
+ ."\n"
+ .'- **DELETE**'."\n"
+ ."\n"
+ .'- **HEAD**'."\n"
+ ."\n"
+ .'- **OPTIONS**'."\n"
+ ."\n"
+ .'- **PATCH**', 'type' => 'string', 'required' => false, 'example' => 'GET', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'AllowHeaders' => [
+ 'title' => '',
+ 'description' => 'The list of headers that are allowed for cross-origin requests.',
+ 'type' => 'array',
+ 'items' => ['description' => 'A header that is allowed for cross-origin requests.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ExposeHeaders' => [
+ 'title' => '',
+ 'description' => 'The list of headers that can be exposed to the client.',
+ 'type' => 'array',
+ 'items' => ['description' => 'A header that can be exposed to the client.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'AllowCredentials' => ['description' => 'Specifies whether to allow credentials in cross-origin requests.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'off'],
+ 'MaxAge' => ['description' => 'The maximum cache duration of preflight requests in the browser.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'required' => false, 'example' => '60'],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => false,
- 'example' => 'env',
+ 'example' => '',
],
- 'Value' => [
- 'title' => '标签值',
- 'description' => 'The tag value. 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',
+ 'RuleConditions' => [
+ 'title' => '',
+ 'description' => 'The list of forwarding rule conditions.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A forwarding rule condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'CookieConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the cookie-based condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The list of cookie key-value pairs.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A cookie key-value pair.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the cookie.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'key'],
+ 'Value' => ['description' => 'The value of the cookie.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'value'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'HeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the header-based condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the HTTP header.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'key'],
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The list of HTTP header values.',
+ 'type' => 'array',
+ 'items' => ['description' => 'An HTTP header value.', 'type' => 'string', 'required' => false, 'example' => 'value', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'HostConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the host-based condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The list of hostnames.',
+ 'type' => 'array',
+ 'items' => ['description' => 'A hostname.', 'type' => 'string', 'required' => false, 'example' => 'www.example.com', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'MethodConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the method-based condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The list of HTTP request methods.',
+ 'type' => 'array',
+ 'items' => ['description' => 'An HTTP request method.', 'type' => 'string', 'required' => false, 'example' => 'PUT', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'PathConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the path-based condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The list of path conditions.',
+ 'type' => 'array',
+ 'items' => ['description' => 'A path condition.', 'type' => 'string', 'required' => false, 'example' => '/test', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'QueryStringConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the query string-based condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The list of query string key-value pairs.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A query string key-value pair.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the query string.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'account'],
+ 'Value' => ['description' => 'The value of the query string.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'on'],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ResponseHeaderConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the response header-based condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the response header.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test'],
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The values of the response header.',
+ 'type' => 'array',
+ 'items' => ['description' => 'A value of the response header.', 'type' => 'string', 'required' => false, 'example' => 'value', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'ResponseStatusCodeConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the response status code-based condition.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'title' => '',
+ 'description' => 'The response status codes.',
+ 'type' => 'array',
+ 'items' => ['description' => 'A response status code.', 'type' => 'string', 'required' => false, 'example' => '200', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'Type' => ['description' => 'The type of the condition.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Header'],
+ 'SourceIpConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration for matching service traffic based on the source IP address.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Values' => [
+ 'description' => 'One or more IP addresses or CIDR blocks.',
+ 'type' => 'array',
+ 'items' => ['description' => 'An IP address or a CIDR block.', 'type' => 'string', 'required' => false, 'example' => '192.168.1.1', 'title' => ''],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '',
+ ],
+ ],
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => false,
- 'example' => 'product',
+ 'example' => '',
],
+ 'RuleId' => ['description' => 'The forwarding rule ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'rule-n4hfecmmtmfl******'],
],
- 'required' => false,
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
],
'required' => true,
- 'example' => 'test',
- 'maxItems' => 20,
+ 'maxItems' => 100,
'minItems' => 1,
+ 'example' => '',
],
],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run. The system checks the required parameters, request format, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned. In this case, the properties of the forwarding rules are not updated.'."\n"
+ ."\n"
+ .'- **false** (default): sends a normal request. After the request passes the check, the system returns an `HTTP 2xx` status code and starts the update.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
+ ],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The operation to add tags to resources.'."\n",
+ 'title' => '',
+ 'description' => 'Response schema',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'],
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'IncorrectStatus.Rule', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The operation is not allowed because of %s.'],
+ ['errorCode' => 'OperationDenied.GRPCServerGroup', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''],
+ ['errorCode' => 'Conflict.Priority', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.RuleWildcardsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'."\n"],
+ ['errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.RuleActionsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded. Usage: %s/%s.'],
+ ['errorCode' => 'Mismatch.Protocol', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'The %s is mismatched for %s and %s.'],
+ ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'The %s is mismatched for %s and %s.'],
+ ['errorCode' => 'OperationDenied.ServiceManagedResource', 'errorMessage' => 'The operation is not allowed because the current resource of %s is managed resource.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.ListenerIdInconsistent', 'errorMessage' => 'The operation is not allowed because of ListenerIdInconsistent.', 'description' => ''],
+ ['errorCode' => 'IllegalParam.Priority', 'errorMessage' => 'The param of Priority is illegal.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.MirrorActionSupportHttpGroupOnly', 'errorMessage' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.', 'description' => ''],
+ ['errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', 'description' => ''],
+ ],
404 => [
- [
- 'errorCode' => 'ResourceNotFound.Acl',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.SecurityPolicy',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ['errorCode' => 'ResourceNotFound.Rule', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Alb::2020-06-16::ListAsynJobs', 'callbackInterval' => 1000, 'maxCallbackTimes' => 60],
+ 'title' => 'UpdateRulesAttribute',
+ 'summary' => 'Updates the properties of multiple forwarding rules in a batch.',
+ 'description' => '**UpdateRulesAttribute** is an asynchronous operation. After you send a request, the system returns a request ID and runs the task in the background. The properties of the forwarding rules are not updated immediately. You can call the [](t2324530.xdita#)operation to query the update status of the forwarding rules:'."\n"
+ ."\n"
+ .'- If multiple forwarding rules are in the **Configuring** state, their properties are being updated in a batch.'."\n"
+ ."\n"
+ .'- If multiple forwarding rules are in the **Available** state, their properties are updated.'."\n"
+ ."\n"
+ .'- A forwarding rule supports the following maximum number of conditions (**RuleConditions**) and actions (**RuleActions**):'."\n"
+ ."\n"
+ .' - Conditions: 5 for a Basic Edition instance, 10 for a Standard Edition instance, and 10 for a WAF-enabled instance.'."\n"
+ ."\n"
+ .' - Actions: 3 for a Basic Edition instance, 5 for a Standard Edition instance, and 5 for a WAF-enabled instance.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateRulesAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\"\\n}","errorExample":""},{"type":"xml","example":"<TagResourcesResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</TagResourcesResponse>","errorExample":""}]',
- 'title' => 'TagResources',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","type":"json"}]',
],
- 'UnTagResources' => [
- 'summary' => 'Removes tags from resources.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'UpdateSecurityPolicyAttribute' => [
+ 'summary' => 'Updates the attributes of a security policy, such as the security protocol version and cipher suites.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -21748,441 +15554,556 @@
],
'operationType' => 'write',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'ResourceType',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'title' => '资源类型',
- 'description' => 'The type of the resource. Valid values:'."\n"
- ."\n"
- .'* **acl**: an access control list (ACL)'."\n"
- .'* **loadbalancer**: an Application Load Balancer (ALB) instance'."\n"
- .'* **securitypolicy**: a security policy'."\n"
- .'* **servergroup**: a server group'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'loadbalancer',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******', 'title' => '', 'required' => false],
],
[
- 'name' => 'ResourceId',
+ 'name' => 'DryRun',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '资源实例Id',
- 'description' => 'The IDs of the resources from which you want to remove tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ID of the resource from which you want to remove tags.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'd-2ze1ot4ah7xjyv0d****',
- ],
- 'required' => true,
- 'example' => 'acl-123',
- 'maxItems' => 50,
- 'minItems' => 1,
- ],
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run to check the request without updating the security policy. The system checks for required parameters, the request format, and service limits. If the check fails, the system returns an error. If the check passes, the system returns the `DryRunOperation` error code.'."\n"
+ ."\n"
+ .'- **false** (default): sends a normal request. If the check succeeds, the system returns a 2xx HTTP status code and updates the security policy.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
],
[
- 'name' => 'Tag',
+ 'name' => 'SecurityPolicyId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The security policy ID.', 'type' => 'string', 'required' => true, 'example' => 'sp-n0kn923****', 'title' => ''],
+ ],
+ [
+ 'name' => 'TLSVersions',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '标签列表',
- 'description' => 'The tags that you want to remove.'."\n",
+ 'title' => '',
+ 'description' => 'The supported TLS protocol versions.',
'type' => 'array',
- 'items' => [
- 'description' => 'The tag that you want to remove.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'title' => '标签键',
- 'description' => 'The key of the tag that you want to remove. The tag key can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag key cannot start with `acs:` or `aliyun`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'env',
- ],
- 'Value' => [
- 'title' => '标签值',
- 'description' => 'The value of the tag that you want to remove. The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag value cannot start with `acs:` or `aliyun`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'product',
- ],
- ],
- 'required' => false,
- ],
+ 'items' => ['description' => 'The supported TLS protocol version. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.'."\n"
+ .'You can specify up to four TLS protocol versions.', 'type' => 'string', 'example' => 'TLSv1.0', 'required' => false, 'title' => ''],
'required' => false,
- 'example' => 'test',
- 'maxItems' => 20,
- 'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'TagKey',
+ 'name' => 'Ciphers',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '标签键列表',
- 'description' => 'The keys of the tags that you want to remove.'."\n",
+ 'title' => '',
+ 'description' => 'The supported cipher suites.',
'type' => 'array',
- 'items' => [
- 'description' => 'The tag key. The tag key can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag key cannot start with `acs:` or `aliyun`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'env',
- ],
+ 'items' => ['description' => 'A supported cipher suite. The available cipher suites depend on the specified **TLSVersions**. You can specify up to 32 cipher suites.'."\n"
+ ."\n"
+ .'A cipher suite is valid if it is supported by at least one of the specified **TLSVersions**.'."\n"
+ ."\n"
+ .'> If you specify TLSv1.3, the Ciphers array must include at least one cipher suite that is supported by TLSv1.3.'."\n"
+ ."\n"
+ .'- Supported by TLS 1.0 and TLS 1.1:'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES128-SHA'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES256-SHA'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES128-SHA'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES256-SHA'."\n"
+ ."\n"
+ .' - AES128-SHA'."\n"
+ ."\n"
+ .' - AES256-SHA'."\n"
+ ."\n"
+ .' - DES-CBC3-SHA'."\n"
+ ."\n"
+ .'- Supported by TLS 1.2:'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES128-SHA'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES256-SHA'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES128-SHA'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES256-SHA'."\n"
+ ."\n"
+ .' - AES128-SHA'."\n"
+ ."\n"
+ .' - AES256-SHA'."\n"
+ ."\n"
+ .' - DES-CBC3-SHA'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES128-GCM-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES256-GCM-SHA384'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES128-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-AES256-SHA384'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES128-GCM-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES256-GCM-SHA384'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES128-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-RSA-AES256-SHA384'."\n"
+ ."\n"
+ .' - AES128-GCM-SHA256'."\n"
+ ."\n"
+ .' - AES256-GCM-SHA384'."\n"
+ ."\n"
+ .' - AES128-SHA256'."\n"
+ ."\n"
+ .' - AES256-SHA256'."\n"
+ ."\n"
+ .' - ECDHE-RSA-CHACHA20-POLY1305'."\n"
+ ."\n"
+ .' - ECDHE-ECDSA-CHACHA20-POLY1305'."\n"
+ ."\n"
+ .'- Supported by TLS 1.3:'."\n"
+ ."\n"
+ .' - TLS\\_AES\\_128\\_GCM\\_SHA256'."\n"
+ ."\n"
+ .' - TLS\\_AES\\_256\\_GCM\\_SHA384'."\n"
+ ."\n"
+ .' - TLS\\_CHACHA20\\_POLY1305\\_SHA256'."\n"
+ ."\n"
+ .' - TLS\\_AES\\_128\\_CCM\\_SHA256'."\n"
+ ."\n"
+ .' - TLS\\_AES\\_128\\_CCM\\_8\\_SHA256', 'type' => 'string', 'example' => 'ECDHE-ECDSA-AES128-SHA', 'required' => false, 'title' => ''],
'required' => false,
- 'maxItems' => 20,
'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'All',
+ 'name' => 'SecurityPolicyName',
'in' => 'query',
- 'schema' => [
- 'title' => '是否删除全部',
- 'description' => 'Specifies whether to remove all tags from the specified resource. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'The name of the security policy.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters long and can contain digits, periods (.), underscores (\\_), hyphens (-), and spaces. It must start with a letter, a Chinese character, or a digit.', 'type' => 'string', 'example' => 'test-secrity', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'The operation to remove tags.'."\n",
+ 'description' => 'The returned data.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3',
- ],
+ 'JobId' => ['description' => 'The asynchronous task ID.', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.SecurityPolicy', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
+ ],
404 => [
- [
- 'errorCode' => 'ResourceNotFound.Acl',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.SecurityPolicy',
- 'errorMessage' => 'The specified resource %s is not found.',
- ],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource %s is not found.',
+ ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\"\\n}","type":"json"}]',
+ 'title' => 'UpdateSecurityPolicyAttribute',
+ 'description' => '## Usage'."\n"
+ ."\n"
+ .'**UpdateSecurityPolicyAttribute** is an asynchronous operation. After you send a request, the system returns a request ID and runs the task in the background. The security policy is not updated immediately. You can call the [ListSecurityPolicies](~~213609~~) operation to query its status:'."\n"
+ ."\n"
+ .'- If a security policy is in the **Configuring** state, the update is in progress.'."\n"
+ ."\n"
+ .'- If a security policy is in the **Available** state, the update is complete.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateSecurityPolicyAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","errorExample":""},{"type":"xml","example":"<UnTagResourcesResponse>\\n <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</UnTagResourcesResponse>","errorExample":""}]',
- 'title' => 'UnTagResources',
],
- 'ListAsynJobs' => [
- 'summary' => 'Queries asynchronous tasks in a region.',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'UpdateServerGroupAttribute' => [
+ 'summary' => 'Update a server group\'s settings, such as health check, session persistence, name, scheduling algorithm, and protocol.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'get',
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '165',
+ 'abilityTreeNodes' => ['FEATUREslbULKWF1', 'FEATUREslbVRSQEA'],
],
'parameters' => [
[
- 'name' => 'JobIds',
+ 'name' => 'ServerGroupName',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '任务ID列表',
- 'description' => 'The asynchronous task IDs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'bp1bpn0kn9****',
- ],
- 'required' => false,
- 'maxItems' => 10,
- ],
+ 'schema' => ['description' => 'The name of the server group.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters long, start with a letter, digit, or Chinese character, and can contain letters, digits, periods (.), underscores (\\_), hyphens (-), and spaces.', 'type' => 'string', 'example' => 'test', 'title' => '', 'required' => false],
],
[
- 'name' => 'ResourceType',
+ 'name' => 'Scheduler',
'in' => 'query',
- 'schema' => [
- 'title' => '资源类型类型',
- 'description' => 'The type of the associated resource. Valid values:'."\n"
- ."\n"
- .'* **loadbalancer**: an Application Load Balancer (ALB) instance'."\n"
- .'* **listener**: a listener'."\n"
- .'* **rule**: a forwarding rule'."\n"
- .'* **acl**: an access control list (ACL)'."\n"
- .'* **securitypolicy**: a security policy'."\n"
- .'* **servergroup**: a server group'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'acl',
- ],
+ 'schema' => ['description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'- **Wrr**: weighted round robin. Backend servers with higher weights receive more requests.'."\n"
+ ."\n"
+ .'- **Wlc**: weighted least connections. The algorithm routes requests based on both the weight and the current load (number of connections) of each backend server. If backend servers have the same weight, the one with fewer active connections receives more requests.'."\n"
+ ."\n"
+ .'- **Sch**: consistent hashing. The source IP address is used as the hash key by default. If you configure the `UchConfig` parameter, a URL parameter is used as the hash key instead.', 'type' => 'string', 'example' => 'Wrr', 'title' => '', 'required' => false],
],
[
- 'name' => 'ResourceIds',
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The client token, which is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'Generate a unique value on your client and ensure that the value is unique for each request. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system uses the RequestId of the API request as the client token.', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Performs a dry run to check the request\'s validity without modifying the resource. The system checks for required parameters, request format, and service limits. If the check is successful, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): Sends a normal request. If the request is valid, the operation is performed and an HTTP `2xx` status code is returned.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
+ ],
+ [
+ 'name' => 'HealthCheckConfig',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'title' => '资源实例ID列表',
- 'description' => 'The resource IDs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The resource ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'alb-o8mszt95oamfjy****',
+ 'title' => '',
+ 'description' => 'The health check settings.',
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckConnectPort' => ['description' => 'The port on the backend server that is used for health checks.'."\n"
+ ."\n"
+ .'Valid values: **0** to **65535**.'."\n"
+ ."\n"
+ .'If you set this value to **0**, the backend server\'s port is used for health checks.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when **HealthCheckEnabled** is set to **true**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '65535', 'minimum' => '0', 'example' => '80', 'title' => '', 'required' => false],
+ 'HealthCheckEnabled' => ['description' => 'Specifies whether to enable health checks. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables health checks.'."\n"
+ ."\n"
+ .'- **false**: Disables health checks.', 'type' => 'boolean', 'example' => 'true', 'title' => '', 'required' => false],
+ 'HealthCheckHost' => ['description' => 'The domain name used for health checks.'."\n"
+ ."\n"
+ .'- **Use the private IP address of the backend server** (default): The private IP address of the backend server is used for the health check.'."\n"
+ ."\n"
+ .'- **Specify a domain name**: Enter a domain name that meets the following requirements:'."\n"
+ ."\n"
+ .' - The domain name must be 1 to 80 characters in length.'."\n"
+ ."\n"
+ .' - It can contain lowercase letters, digits, hyphens (-), and periods (.).'."\n"
+ ."\n"
+ .' - It must contain at least one period (.), which cannot be the first or last character.'."\n"
+ ."\n"
+ .' - The rightmost domain label can contain only letters and cannot contain digits or hyphens (-).'."\n"
+ ."\n"
+ .' - A hyphen (-) cannot be the first or last character.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'example' => 'example.com', 'title' => '', 'required' => false],
+ 'HealthCheckCodes' => [
+ 'title' => '',
+ 'description' => 'The HTTP status codes that indicate a successful health check.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The status code that indicates a successful health check.'."\n"
+ ."\n"
+ .'- When **HealthCheckProtocol** is set to **HTTP** or **HTTPS**, you can specify **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**. Separate multiple values with commas (,).'."\n"
+ ."\n"
+ .'- When **HealthCheckProtocol** is set to **gRPC**, the valid status codes are from **0** to **99**. The default value is **0**. You can specify up to 20 ranges. Separate multiple ranges with commas (,).'."\n"
+ ."\n"
+ .'> This parameter takes effect only when **HealthCheckEnabled** is set to **true** and **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'required' => false, 'example' => '200', 'title' => ''],
+ 'required' => false,
+ 'example' => '',
+ ],
+ 'HealthCheckHttpVersion' => ['description' => 'The HTTP version for health checks. Valid values:'."\n"
+ ."\n"
+ .'- **HTTP1.0**'."\n"
+ ."\n"
+ .'- **HTTP1.1**'."\n"
+ ."\n"
+ .'> This parameter takes effect only when **HealthCheckEnabled** is set to true and **HealthCheckProtocol** is set to **HTTP** or **HTTPS**.', 'type' => 'string', 'example' => 'HTTP1.1', 'title' => '', 'required' => false],
+ 'HealthCheckInterval' => ['description' => 'The interval, in seconds, between health checks.'."\n"
+ ."\n"
+ .'Valid values: **1** to **50**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when **HealthCheckEnabled** is set to **true**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '50', 'minimum' => '1', 'example' => '5', 'title' => '', 'required' => false],
+ 'HealthCheckMethod' => ['description' => 'The method used for health checks. Valid values:'."\n"
+ ."\n"
+ .'- **GET**: If the response body is larger than 8 KB, it is truncated. This does not affect the health check result.'."\n"
+ ."\n"
+ .'- **POST**: By default, gRPC listeners use POST for health checks.'."\n"
+ ."\n"
+ .'- **HEAD**: By default, HTTP and HTTPS listeners use HEAD for health checks.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when **HealthCheckEnabled** is set to true and **HealthCheckProtocol** is set to **HTTP**, **HTTPS**, or **gRPC**.', 'type' => 'string', 'example' => 'HEAD', 'title' => '', 'required' => false],
+ 'HealthCheckPath' => ['description' => 'The path to which health check requests are sent.'."\n"
+ ."\n"
+ .'The path must be 1 to 80 characters in length. It can contain letters, digits, and the following characters: `-/.%?#&=` and `_~;!()*[]@$^:\',+`. The path must start with `/`.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when **HealthCheckEnabled** is set to **true** and **HealthCheckProtocol** is set to **HTTP** or **HTTPS**.', 'type' => 'string', 'example' => '/test/index.html', 'title' => '', 'required' => false],
+ 'HealthCheckProtocol' => ['description' => 'The protocol used for health checks. Valid values:'."\n"
+ ."\n"
+ .'- **HTTP**: The system checks whether the application is healthy by sending a HEAD or GET request that simulates a browser visit.'."\n"
+ ."\n"
+ .'- **HTTPS**: The system checks whether the application is healthy by sending a HEAD or GET request that simulates a browser visit. Data is encrypted, which is more secure than HTTP.'."\n"
+ ."\n"
+ .'- **TCP**: The system verifies that the port is open by sending a SYN packet.'."\n"
+ ."\n"
+ .'- **gRPC**: The system checks whether the application is healthy by sending a POST or GET request.', 'type' => 'string', 'example' => 'HTTP', 'title' => '', 'required' => false],
+ 'HealthCheckTimeout' => ['description' => 'The timeout period, in seconds, for a health check response. If a backend server fails to respond within this period, the health check fails.'."\n"
+ ."\n"
+ .'Valid values: **1** to **300**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when **HealthCheckEnabled** is set to **true**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '300', 'minimum' => '1', 'example' => '3', 'title' => '', 'required' => false],
+ 'HealthyThreshold' => ['description' => 'The number of consecutive successful health checks required for a server\'s status to change from **fail** to **success**.'."\n"
+ ."\n"
+ .'Valid values: **2** to **10**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '10', 'minimum' => '2', 'example' => '4', 'title' => '', 'required' => false],
+ 'UnhealthyThreshold' => ['description' => 'The number of consecutive failed health checks required for a server\'s status to change from **success** to **fail**.'."\n"
+ ."\n"
+ .'Valid values: **2** to **10**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '10', 'minimum' => '2', 'example' => '4', 'title' => '', 'required' => false],
],
'required' => false,
- 'maxItems' => 10,
+ 'example' => 'true',
],
],
[
- 'name' => 'ApiName',
+ 'name' => 'StickySessionConfig',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '操作接口名',
- 'description' => 'The name of the operation.'."\n",
- 'type' => 'string',
+ 'title' => '',
+ 'description' => 'The sticky session settings.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Cookie' => ['description' => 'The cookie that is configured on the server.'."\n"
+ ."\n"
+ .'The cookie must be 1 to 200 characters long and consist of ASCII characters. It cannot contain commas (,), semicolons (;), or spaces, and cannot start with a dollar sign ($).'."\n"
+ ."\n"
+ .'> This parameter takes effect only when **StickySessionEnabled** is set to **true** and **StickySessionType** is set to **Server**.', 'type' => 'string', 'example' => 'B490B5EBF6F3CD402E515D22B******', 'title' => '', 'required' => false],
+ 'CookieTimeout' => ['description' => 'The cookie timeout period, in seconds.'."\n"
+ ."\n"
+ .'Valid values: **1** to **86400**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when **StickySessionEnabled** is set to **true** and **StickySessionType** is set to **Insert**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '86400', 'minimum' => '1', 'example' => '1000', 'title' => '', 'required' => false],
+ 'StickySessionEnabled' => ['description' => 'Specifies whether to enable sticky sessions. Valid values:'."\n"
+ ."\n"
+ .'- **true**: Enables sticky sessions.'."\n"
+ ."\n"
+ .'- **false**: Disables sticky sessions.', 'type' => 'boolean', 'example' => 'false', 'title' => '', 'required' => false],
+ 'StickySessionType' => ['description' => 'The method used to handle cookies. Valid values:'."\n"
+ ."\n"
+ .'- **Insert**: The load balancer inserts a cookie (SERVERID) into the HTTP or HTTPS response to the first request from a client. Subsequent requests from the client that contain this cookie are routed to the same backend server.'."\n"
+ ."\n"
+ .'- **Server**: The load balancer overwrites the original cookie when it detects a user-defined cookie. Subsequent requests from the client that contain the new cookie are routed to the same backend server.'."\n"
+ ."\n"
+ .'> This parameter takes effect only when **StickySessionEnabled** is set to **true**.', 'type' => 'string', 'example' => 'Insert', 'title' => '', 'required' => false],
+ ],
'required' => false,
- 'example' => 'CreateLoadBalancer',
+ 'example' => '',
],
],
[
- 'name' => 'BeginTime',
+ 'name' => 'ServerGroupId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the server group.', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtop****', 'title' => ''],
+ ],
+ [
+ 'name' => 'UpstreamKeepaliveEnabled',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to enable persistent connections to backend servers.'."\n"
+ ."\n"
+ .'- **true**: Enables persistent connections.'."\n"
+ ."\n"
+ .'- **false**: Disables persistent connections.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'sgp-123'],
+ ],
+ [
+ 'name' => 'ServiceName',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The name of the corresponding Kubernetes (K8s) `Service`. This parameter is applicable only to Application Load Balancer (ALB) Ingress scenarios.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'test2'],
+ ],
+ [
+ 'name' => 'UchConfig',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '任务过滤时间范围-开始时间',
- 'description' => 'The timestamp that indicates the start time of the task. Unit: milliseconds.'."\n"
- ."\n"
- .'Specify the timestamp in the Unix format to indicate the total amount of time that is from 00:00:00 (UTC+0) on January 1, 1970 to when the status of the asynchronous task is queried.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
+ 'title' => '',
+ 'description' => 'The settings for URL-based consistent hashing.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Type' => ['description' => 'The type of the parameter. Only `QueryString` is supported.', 'type' => 'string', 'required' => true, 'example' => 'QueryString', 'title' => ''],
+ 'Value' => ['description' => 'The name of the query string parameter to use for consistent hashing.', 'type' => 'string', 'required' => true, 'example' => 'abc', 'title' => ''],
+ ],
'required' => false,
- 'example' => '2021-06-03T17:22Z',
+ 'example' => '',
],
],
[
- 'name' => 'EndTime',
+ 'name' => 'ConnectionDrainConfig',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '任务过滤时间范围-结束时间',
- 'description' => 'The timestamp that indicates the end time of the task. Unit: milliseconds.'."\n"
+ 'description' => 'The connection draining settings.'."\n"
+ ."\n"
+ .'If connection draining is enabled, the load balancer allows existing connections to be processed for a specified period of time after a backend server is removed or declared unhealthy.'."\n"
."\n"
- .'Specify the timestamp in the Unix format to indicate the total amount of time that is from 00:00:00 (UTC+0) on January 1, 1970 to when the status of the asynchronous task is returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
+ .'> - Basic instances do not support connection draining. Only Standard and WAF-enhanced instances support this feature.'."\n"
+ .'>'."\n"
+ .'> - Server groups of the instance and IP types support connection draining. Server groups of the Function Compute type do not.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ConnectionDrainEnabled' => ['description' => 'Specifies whether to enable connection draining.'."\n"
+ ."\n"
+ .'- **true**: Enables connection draining.'."\n"
+ ."\n"
+ .'- **false**: Disables connection draining.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
+ 'ConnectionDrainTimeout' => ['description' => 'The connection draining timeout period, in seconds.'."\n"
+ ."\n"
+ .'Valid values: **0** to **900**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '300', 'title' => ''],
+ ],
'required' => false,
- 'example' => '2021-06-04T17:22Z',
+ 'title' => '',
+ 'example' => '',
],
],
[
- 'name' => 'NextToken',
+ 'name' => 'SlowStartConfig',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'title' => '下一个查询开始Token',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
+ 'title' => '',
+ 'description' => 'The slow start settings.'."\n"
+ ."\n"
+ .'If you enable slow start, the load balancer warms up a newly added backend server over a specified period. During this warm-up period, the number of requests routed to the server increases linearly.'."\n"
."\n"
- .'* You do not need to specify this parameter for the first request.'."\n"
- .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
+ .'> - Basic instances do not support slow start. Only Standard and WAF-enhanced instances support this feature.'."\n"
+ .'>'."\n"
+ .'> - Server groups of the instance and IP types support slow start. Server groups of the Function Compute type do not.'."\n"
+ .'>'."\n"
+ .'> - Slow start can be enabled only when the scheduling algorithm is weighted round robin.',
+ 'type' => 'object',
+ 'properties' => [
+ 'SlowStartEnabled' => ['description' => 'Specifies whether to enable slow start.'."\n"
+ ."\n"
+ .'- **true**: Enables slow start.'."\n"
+ ."\n"
+ .'- **false**: Disables slow start.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
+ 'SlowStartDuration' => ['description' => 'The duration of the slow start period, in seconds.'."\n"
+ ."\n"
+ .'Valid values: **30** to **900**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '30'],
+ ],
'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
+ 'example' => '',
],
],
[
- 'name' => 'MaxResults',
+ 'name' => 'CrossZoneEnabled',
'in' => 'query',
- 'schema' => [
- 'title' => '本次读取的最大数据记录数量',
- 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'required' => false,
- 'example' => '20',
- ],
+ 'schema' => ['description' => 'Specifies whether to enable cross-zone load balancing for the server group. Valid values:'."\n"
+ ."\n"
+ .'- **true** (default): Enables cross-zone load balancing.'."\n"
+ ."\n"
+ .'- **false**: Disables cross-zone load balancing.'."\n"
+ ."\n"
+ .'> * Basic instances require cross-zone load balancing to be enabled. The option to disable it is supported only by Standard and WAF-enhanced instances.'."\n"
+ .'>'."\n"
+ .'> * Server groups of the instance and IP types support disabling cross-zone load balancing. Server groups of the Function Compute type do not.'."\n"
+ .'>'."\n"
+ .'> * Sticky sessions cannot be enabled when cross-zone load balancing is disabled.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
+ ],
+ [
+ 'name' => 'IpVersionAffinityMode',
+ 'in' => 'query',
+ 'allowEmptyValue' => true,
+ 'schema' => ['description' => 'The IP version affinity mode.', 'type' => 'string', 'example' => 'Affinity', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The tasks.'."\n",
+ 'title' => '',
+ 'description' => 'The response data.',
'type' => 'object',
'properties' => [
- 'Jobs' => [
- 'title' => '任务列表',
- 'description' => 'The tasks.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The task.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ApiName' => [
- 'title' => 'openapi名称',
- 'description' => 'The name of the operation.'."\n",
- 'type' => 'string',
- 'example' => 'CreateLoadBalancer',
- ],
- 'CreateTime' => [
- 'title' => '任务开始时间戳',
- 'description' => 'The timestamp that indicates the start time of the task. 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' => '2134663231234',
- ],
- 'ErrorCode' => [
- 'title' => '如果Status为失败,则为错误码',
- 'description' => 'If the value of **Status** is Failed, an error code is returned.'."\n",
- 'type' => 'string',
- 'example' => '506',
- ],
- 'ErrorMessage' => [
- 'title' => '如果Status为失败,则为错误信息',
- 'description' => 'If the value of **Status** is Failed, an error message is returned.'."\n",
- 'type' => 'string',
- 'example' => 'AllocateEipAddress Failed',
- ],
- 'Id' => [
- 'title' => '任务ID',
- 'description' => 'The task ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B5****',
- ],
- 'ModifyTime' => [
- 'title' => '任务结束时间戳',
- 'description' => 'The timestamp that indicates the end time of the task. 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' => '2144663233315',
- ],
- 'OperateType' => [
- 'title' => '操作类型',
- 'description' => 'The type of the operation. Valid values:'."\n"
- ."\n"
- .'* **Create**'."\n"
- .'* **Update**'."\n"
- .'* **Delete**'."\n",
- 'type' => 'string',
- 'example' => 'Create',
- ],
- 'ResourceId' => [
- 'title' => '关联的资源实例ID',
- 'description' => 'The associated resource ID.'."\n",
- 'type' => 'string',
- 'example' => 'alb-o8mszt95oamfjy****',
- ],
- 'ResourceType' => [
- 'title' => '关联的资源类型',
- 'description' => 'The type of the associated resource. Valid values:'."\n"
- ."\n"
- .'* **loadbalancer**: an ALB instance'."\n"
- .'* **listener**: a listener'."\n"
- .'* **rule**: a forwarding rule'."\n"
- .'* **acl**: an ACL'."\n"
- .'* **securitypolicy**: a security policy'."\n"
- .'* **servergroup**: a server group'."\n",
- 'type' => 'string',
- 'example' => 'acl',
- ],
- 'Status' => [
- 'title' => '任务状态',
- 'description' => 'The status of the task. Valid values:'."\n"
- ."\n"
- .'* **Succeeded**'."\n"
- .'* **Failed**'."\n"
- .'* **Processing**'."\n",
- 'type' => 'string',
- 'example' => 'Succeeded',
- ],
- ],
- ],
- ],
- 'MaxResults' => [
- 'title' => '本次查询返回记录数量',
- 'description' => 'The number of entries per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '10',
- ],
- 'NextToken' => [
- 'title' => '分页查询标识',
- 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n",
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710',
- ],
- 'TotalCount' => [
- 'title' => '总记录数 ',
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '1000',
- ],
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'title' => '', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'],
+ 'RequestId' => ['title' => '', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3*****'],
],
+ 'example' => '',
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Jobs\\": [\\n {\\n \\"ApiName\\": \\"CreateLoadBalancer\\",\\n \\"CreateTime\\": 2134663231234,\\n \\"ErrorCode\\": \\"506\\",\\n \\"ErrorMessage\\": \\"AllocateEipAddress Failed\\",\\n \\"Id\\": \\"365F4154-92F6-4AE4-92F8-7FF34B5****\\",\\n \\"ModifyTime\\": 2144663233315,\\n \\"OperateType\\": \\"Create\\",\\n \\"ResourceId\\": \\"alb-o8mszt95oamfjy****\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"Status\\": \\"Succeeded\\"\\n }\\n ],\\n \\"MaxResults\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"<ListAsynJobsResponse>\\n <Jobs>\\n <ApiName>CreateLoadBalancer</ApiName>\\n <CreateTime>2134663231234</CreateTime>\\n <ErrorCode>506</ErrorCode>\\n <ErrorMessage>AllocateEipAddress Failed</ErrorMessage>\\n <Id>365F4154-92F6-4AE4-92F8-7FF34B5****</Id>\\n <ModifyTime>2144663233315</ModifyTime>\\n <OperateType>Create</OperateType>\\n <ResourceId>alb-o8mszt95oamfjy****</ResourceId>\\n <ResourceType>acl</ResourceType>\\n <Status>Succeeded</Status>\\n </Jobs>\\n <MaxResults>10</MaxResults>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <TotalCount>1000</TotalCount>\\n</ListAsynJobsResponse>","errorExample":""}]',
- 'title' => 'ListAsynJobs',
- ],
- 'ModifyCapacityReservation' => [
- 'summary' => '修改资源预留',
- 'path' => '',
- 'methods' => [
- 'post',
- 'get',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
+ ['errorCode' => 'Mismatch.LoadBalancerEditionAndConnectionDrain', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The %s and %s are mismatched.'],
+ ['errorCode' => 'Mismatch.ServerGroupSchedulerAndSlowStartEnable', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The %s and %s are mismatched.'],
+ ['errorCode' => 'QuotaExceeded.ConnectionDrainTimeout', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['errorCode' => 'UnsupportedFeature.ConnectionDrain', 'errorMessage' => 'The feature of %s is not supported.', 'description' => 'The feature of %s is not supported.'],
+ ['errorCode' => 'QuotaExceeded.SlowStartDuration', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['errorCode' => 'UnsupportedFeature.SlowStart', 'errorMessage' => 'The feature of %s is not supported.', 'description' => ''],
+ ['errorCode' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The %s and %s are mismatched.'],
+ ['errorCode' => 'OperationDenied.UpstreamKeepaliveDisabled', 'errorMessage' => 'The operation is not allowed because of UpstreamKeepaliveDisabled.', 'description' => 'Updating not allowed Backend long connection is closed'],
+ ['errorCode' => 'OperationDenied.UpstreamKeepaliveEnabled', 'errorMessage' => 'The operation is not allowed because of UpstreamKeepaliveEnabled.', 'description' => 'Update not allowed to open Backend Long connection is in the open state'],
+ ['errorCode' => 'CloseUpstreamKeepaliveNotSupport', 'errorMessage' => 'The param of UpstreamKeepalive is not Support.', 'description' => 'close keepalive attribute for server group is not supported'],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
],
- 'schemes' => [
- 'https',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3*****\\"\\n}","type":"json"}]',
+ 'title' => 'UpdateServerGroupAttribute',
+ 'description' => 'The **UpdateServerGroupAttribute** API is asynchronous. After you call this API, the system returns a request ID and runs the update in the background. The configuration change is not immediate. You can call the [ListServerGroups](~~213627~~) API to query the status of the server group:'."\n"
+ ."\n"
+ .'- A **Configuring** status indicates that the server group is being updated.'."\n"
+ ."\n"
+ .'- An **Available** status indicates that the update is complete.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateServerGroupAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ],
+ ],
+ ],
],
+ ],
+ 'UpdateServerGroupServersAttribute' => [
+ 'summary' => 'Updates the configurations of backend servers in a server group, such as their weight and description.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -22193,1227 +16114,1722 @@
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
- 'chargeType' => 'paid',
- 'abilityTreeNodes' => [
- 'FEATUREslbEUW2CG',
- ],
- 'autoTest' => true,
- 'tenantRelevance' => 'tenant',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => ['FEATUREslbULKWF1'],
],
'parameters' => [
[
- 'name' => 'LoadBalancerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '应用型负载均衡实例ID。',
- 'description' => '',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-iv9gj3spak6fbj****',
- ],
- ],
- [
- 'name' => 'ResetCapacityReservation',
+ 'name' => 'ServerGroupId',
'in' => 'query',
- 'schema' => [
- 'title' => '是否取消资源预留',
- 'description' => '',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- 'default' => 'false',
- 'enum' => [
- 'true',
- 'false',
- ],
- ],
+ 'schema' => ['description' => 'The ID of the server group.', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtop****', 'title' => ''],
],
[
- 'name' => 'MinimumLoadBalancerCapacity',
- 'in' => 'query',
+ 'name' => 'Servers',
+ 'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'title' => '预留的最小负载均衡器容量',
- 'description' => '',
- 'type' => 'object',
- 'properties' => [
- 'CapacityUnits' => [
- 'title' => 'LCU数量',
- 'description' => '',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '100',
+ 'title' => '',
+ 'description' => 'The backend servers. You can specify up to 40 servers in each call.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The backend server.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Description' => ['description' => 'The description of the backend server. The description must be 2 to 256 characters in length and cannot start with http\\:// or https\\://.', 'type' => 'string', 'example' => 'test', 'title' => '', 'required' => false],
+ 'Port' => ['description' => 'The port used by the backend server. Valid values: **1** to **65535**.'."\n"
+ ."\n"
+ .'> This parameter is not required if **ServerType** is set to **Fc**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'docRequired' => false, 'example' => '80', 'title' => ''],
+ 'ServerId' => ['description' => 'The ID of the backend server.'."\n"
+ ."\n"
+ .'- If you set **ServerType** to **Ecs**, **Eni**, or **Eci**, set this parameter to the ID of the ECS instance, elastic network interface (ENI), or elastic container instance (ECI).'."\n"
+ ."\n"
+ .'- If you set **ServerType** to **Ip**, set this parameter to an IP address.'."\n"
+ ."\n"
+ .'- If you set **ServerType** to **Fc**, set this parameter to the Alibaba Cloud Resource Name (ARN) of the Function Compute function.', 'type' => 'string', 'required' => false, 'example' => 'i-bp1f9kdprbgy9uiu****', 'title' => ''],
+ 'ServerIp' => ['description' => 'The IP address.', 'type' => 'string', 'example' => '192.168.1.1', 'title' => '', 'required' => false],
+ 'ServerType' => ['description' => 'The type of the backend server. Valid values:'."\n"
+ ."\n"
+ .'- **Ecs**: an ECS instance.'."\n"
+ ."\n"
+ .'- **Eni**: an ENI.'."\n"
+ ."\n"
+ .'- **Eci**: an ECI.'."\n"
+ ."\n"
+ .'- **Ip**: an IP address.'."\n"
+ ."\n"
+ .'- **Fc**: a Function Compute function.', 'type' => 'string', 'required' => true, 'docRequired' => false, 'example' => 'Ecs', 'title' => ''],
+ 'Weight' => ['description' => 'The weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If you set the weight to **0**, no requests are forwarded to the backend server.'."\n"
+ ."\n"
+ .'> This parameter is not required if **ServerType** is set to **Fc**.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => '', 'required' => false],
],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
+ 'required' => true,
+ 'maxItems' => 200,
+ 'minItems' => 1,
+ 'example' => '',
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'ClientToken',
'in' => 'query',
- 'schema' => [
- 'description' => '',
- 'type' => 'boolean',
- 'required' => false,
- 'enumValueTitles' => [
- 'true' => 'true',
- 'false' => 'false',
- ],
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'Generate a token that is unique among different requests. The token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system uses the **RequestId** of the request as the **ClientToken**. The **RequestId** of each request is unique.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'description' => '',
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
- ],
+ 'schema' => ['title' => 'dryRun', 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs a dry run. The system checks the required parameters, request format, and service limits, but does not update the configurations, such as the weight and description, of the backend servers. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ ."\n"
+ .'- **false** (default): sends a normal request. After the request passes the check, the system returns an HTTP 2xx status code and completes the operation.', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
- 'description' => 'Schema of Response',
+ 'description' => 'The returned data.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => '',
- 'type' => 'string',
- 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******',
- ],
+ 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3*****'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'OperationDenied.ListenerNotFound',
- 'errorMessage' => 'The operation is not allowed because of ListenerNotFound.',
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s [%s] is incorrect.'],
+ ['errorCode' => 'ResourceInConfiguring', 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', 'description' => ''],
+ ],
+ 403 => [
+ ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication has failed for ServerGroup.', 'description' => ''],
+ ],
+ [
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ['errorCode' => 'ResourceNotFound.BackendServer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'title' => 'UpdateServerGroupServersAttribute',
+ 'description' => '**UpdateServerGroupServersAttribute** is an asynchronous operation. After you send a request, the system returns a request ID and runs the task in the background. The configurations of the backend servers are not updated in real time.'."\n"
+ ."\n"
+ .'1. You can call the [](t2324516.xdita#)operation to query the status of a server group:'."\n"
+ ."\n"
+ .' - If a server group is in the **Configuring** state, the group is being modified.'."\n"
+ ."\n"
+ .' - If a server group is in the **Available** state, the group is running.'."\n"
+ ."\n"
+ .'2. You can call the [](t2324517.xdita#)operation to query the status of a backend server:'."\n"
+ ."\n"
+ .' - If a backend server is in the **Configuring** state, the server is being modified.'."\n"
+ ."\n"
+ .' - If a backend server is in the **Available** state, the server is running.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateServerGroupServersAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:ecs/{#ecsId}'],
+ ],
],
- [
- 'errorCode' => 'OperationDenied.CapacityReservationNotSupport',
- 'errorMessage' => 'Resource reservation is not supported.',
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3*****\\"\\n}","type":"json"}]',
+ ],
+ ],
+ 'endpoints' => [
+ ['regionId' => 'ap-northeast-1', 'regionName' => 'Japan (Tokyo)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.ap-northeast-1.aliyuncs.com', 'endpoint' => 'alb.ap-northeast-1.aliyuncs.com', 'vpc' => 'alb-vpc.ap-northeast-1.aliyuncs.com'],
+ ['regionId' => 'ap-northeast-2', 'regionName' => 'South Korea (Seoul)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.ap-northeast-2.aliyuncs.com', 'endpoint' => 'alb.ap-northeast-2.aliyuncs.com', 'vpc' => 'alb-vpc.ap-northeast-2.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.ap-southeast-1.aliyuncs.com', 'endpoint' => 'alb.ap-southeast-1.aliyuncs.com', 'vpc' => 'alb-vpc.ap-southeast-1.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-2', 'regionName' => 'Australia (Sydney) Closed', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.ap-southeast-2.aliyuncs.com', 'endpoint' => 'alb.ap-southeast-2.aliyuncs.com', 'vpc' => 'alb-vpc.ap-southeast-2.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-3', 'regionName' => 'Malaysia (Kuala Lumpur)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.ap-southeast-3.aliyuncs.com', 'endpoint' => 'alb.ap-southeast-3.aliyuncs.com', 'vpc' => 'alb-vpc.ap-southeast-3.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-5', 'regionName' => 'Indonesia (Jakarta)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.ap-southeast-5.aliyuncs.com', 'endpoint' => 'alb.ap-southeast-5.aliyuncs.com', 'vpc' => 'alb-vpc.ap-southeast-5.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-6', 'regionName' => 'Philippines (Manila)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.ap-southeast-6.aliyuncs.com', 'endpoint' => 'alb.ap-southeast-6.aliyuncs.com', 'vpc' => 'alb-vpc.ap-southeast-6.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-7', 'regionName' => 'Thailand (Bangkok)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.ap-southeast-7.aliyuncs.com', 'endpoint' => 'alb.ap-southeast-7.aliyuncs.com', 'vpc' => 'alb-vpc.ap-southeast-7.aliyuncs.com'],
+ ['regionId' => 'cn-beijing', 'regionName' => 'China (Beijing)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-beijing.aliyuncs.com', 'endpoint' => 'alb.cn-beijing.aliyuncs.com', 'vpc' => 'alb-vpc.cn-beijing.aliyuncs.com'],
+ ['regionId' => 'cn-chengdu', 'regionName' => 'China (Chengdu)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-chengdu.aliyuncs.com', 'endpoint' => 'alb.cn-chengdu.aliyuncs.com', 'vpc' => 'alb-vpc.cn-chengdu.aliyuncs.com'],
+ ['regionId' => 'cn-fuzhou', 'regionName' => 'China (Fuzhou - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-fuzhou.aliyuncs.com', 'endpoint' => 'alb.cn-fuzhou.aliyuncs.com', 'vpc' => 'alb-vpc.cn-fuzhou.aliyuncs.com'],
+ ['regionId' => 'cn-guangzhou', 'regionName' => 'China (Guangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-guangzhou.aliyuncs.com', 'endpoint' => 'alb.cn-guangzhou.aliyuncs.com', 'vpc' => 'alb-vpc.cn-guangzhou.aliyuncs.com'],
+ ['regionId' => 'cn-hangzhou', 'regionName' => 'China (Hangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-hangzhou.aliyuncs.com', 'endpoint' => 'alb.cn-hangzhou.aliyuncs.com', 'vpc' => 'alb-vpc.cn-hangzhou.aliyuncs.com'],
+ ['regionId' => 'cn-heyuan', 'regionName' => 'China (Heyuan)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-heyuan.aliyuncs.com', 'endpoint' => 'alb.cn-heyuan.aliyuncs.com', 'vpc' => 'alb-vpc.cn-heyuan.aliyuncs.com'],
+ ['regionId' => 'cn-hongkong', 'regionName' => 'China (Hong Kong)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-hongkong.aliyuncs.com', 'endpoint' => 'alb.cn-hongkong.aliyuncs.com', 'vpc' => 'alb-vpc.cn-hongkong.aliyuncs.com'],
+ ['regionId' => 'cn-nanjing', 'regionName' => 'China (Nanjing - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-nanjing.aliyuncs.com', 'endpoint' => 'alb.cn-nanjing.aliyuncs.com', 'vpc' => 'alb-vpc.cn-nanjing.aliyuncs.com'],
+ ['regionId' => 'cn-qingdao', 'regionName' => 'China (Qingdao)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-qingdao.aliyuncs.com', 'endpoint' => 'alb.cn-qingdao.aliyuncs.com', 'vpc' => 'alb-vpc.cn-qingdao.aliyuncs.com'],
+ ['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-shanghai.aliyuncs.com', 'endpoint' => 'alb.cn-shanghai.aliyuncs.com', 'vpc' => 'alb-vpc.cn-shanghai.aliyuncs.com'],
+ ['regionId' => 'cn-shenzhen', 'regionName' => 'China (Shenzhen)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-shenzhen.aliyuncs.com', 'endpoint' => 'alb.cn-shenzhen.aliyuncs.com', 'vpc' => 'alb-vpc.cn-shenzhen.aliyuncs.com'],
+ ['regionId' => 'cn-wuhan-lr', 'regionName' => 'China (Wuhan - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-wuhan-lr.aliyuncs.com', 'endpoint' => 'alb.cn-wuhan-lr.aliyuncs.com', 'vpc' => 'alb-vpc.cn-wuhan-lr.aliyuncs.com'],
+ ['regionId' => 'cn-wulanchabu', 'regionName' => 'China (Ulanqab)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-wulanchabu.aliyuncs.com', 'endpoint' => 'alb.cn-wulanchabu.aliyuncs.com', 'vpc' => 'alb-vpc.cn-wulanchabu.aliyuncs.com'],
+ ['regionId' => 'cn-zhangjiakou', 'regionName' => 'China (Zhangjiakou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-zhangjiakou.aliyuncs.com', 'endpoint' => 'alb.cn-zhangjiakou.aliyuncs.com', 'vpc' => 'alb-vpc.cn-zhangjiakou.aliyuncs.com'],
+ ['regionId' => 'cn-zhengzhou-jva', 'regionName' => 'Zhengzhou (China Unicom Joint Venture)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'alb.cn-zhengzhou-jva.aliyuncs.com', 'endpoint' => 'alb.cn-zhengzhou-jva.aliyuncs.com', 'vpc' => 'alb-vpc.cn-zhengzhou-jva.aliyuncs.com'],
+ ['regionId' => 'eu-central-1', 'regionName' => 'Germany (Frankfurt)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'alb.eu-central-1.aliyuncs.com', 'endpoint' => 'alb.eu-central-1.aliyuncs.com', 'vpc' => 'alb-vpc.eu-central-1.aliyuncs.com'],
+ ['regionId' => 'eu-west-1', 'regionName' => 'UK (London)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'alb.eu-west-1.aliyuncs.com', 'endpoint' => 'alb.eu-west-1.aliyuncs.com', 'vpc' => 'alb-vpc.eu-west-1.aliyuncs.com'],
+ ['regionId' => 'na-south-1', 'regionName' => 'Mexico', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'alb.na-south-1.aliyuncs.com', 'endpoint' => 'alb.na-south-1.aliyuncs.com', 'vpc' => 'alb-vpc.na-south-1.aliyuncs.com'],
+ ['regionId' => 'us-east-1', 'regionName' => 'US (Virginia)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'alb.us-east-1.aliyuncs.com', 'endpoint' => 'alb.us-east-1.aliyuncs.com', 'vpc' => 'alb-vpc.us-east-1.aliyuncs.com'],
+ ['regionId' => 'us-west-1', 'regionName' => 'US (Silicon Valley)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'alb.us-west-1.aliyuncs.com', 'endpoint' => 'alb.us-west-1.aliyuncs.com', 'vpc' => 'alb-vpc.us-west-1.aliyuncs.com'],
+ ['regionId' => 'ap-south-1', 'regionName' => 'India (Mumbai) Closed', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'alb.ap-south-1.aliyuncs.com', 'endpoint' => 'alb.ap-south-1.aliyuncs.com', 'vpc' => 'alb-vpc.ap-south-1.aliyuncs.com'],
+ ['regionId' => 'me-central-1', 'regionName' => 'Saudi Arabia (Riyadh)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'alb.me-central-1.aliyuncs.com', 'endpoint' => 'alb.me-central-1.aliyuncs.com', 'vpc' => 'alb-vpc.me-central-1.aliyuncs.com'],
+ ['regionId' => 'cn-beijing-finance-1', 'regionName' => 'China North 2 Finance (Preview)', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'alb.cn-beijing-finance-1.aliyuncs.com', 'endpoint' => 'alb.cn-beijing-finance-1.aliyuncs.com', 'vpc' => 'alb-vpc.cn-beijing-finance-1.aliyuncs.com'],
+ ['regionId' => 'cn-hangzhou-finance', 'regionName' => 'China East 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'alb.cn-hangzhou.aliyuncs.com', 'endpoint' => 'alb.cn-hangzhou.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'cn-shanghai-finance-1', 'regionName' => 'China East 2 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'alb.cn-shanghai-finance-1.aliyuncs.com', 'endpoint' => 'alb.cn-shanghai-finance-1.aliyuncs.com', 'vpc' => 'alb-vpc.cn-shanghai-finance-1.aliyuncs.com'],
+ ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => 'China South 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'alb.cn-shenzhen-finance-1.aliyuncs.com', 'endpoint' => 'alb.cn-shenzhen-finance-1.aliyuncs.com', 'vpc' => 'alb-vpc.cn-shenzhen-finance-1.aliyuncs.com'],
+ ],
+ 'errorCodes' => [
+ ['code' => 'CloseUpstreamKeepaliveNotSupport', 'message' => 'The param of UpstreamKeepalive is not Support.', 'http_code' => 400, 'description' => 'close keepalive attribute for server group is not supported'],
+ ['code' => 'Conflict.Acl', 'message' => 'There is already %s having the same configuration with %s.', 'http_code' => 400, 'description' => 'There is already %s having the same configuration with %s.'],
+ ['code' => 'Conflict.BackendServer', 'message' => 'There is already %s having the same configuration with %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'Conflict.Priority', 'message' => 'There is already %s having the same configuration with %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'DryRunOperation', 'message' => 'Request validation has been passed with DryRun flag set.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'DuplicatedParam.%s', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'DuplicatedParam.BackendServer', 'message' => 'The param of BackendServer is duplicated.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'DuplicatedParam.BackendServer', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => 'The param of %s is duplicated.'],
+ ['code' => 'DuplicatedParam.Key', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'DuplicatedParam.Order', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'DuplicatedParam.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param of RuleConditions.1.SourceIpConfig.Values is duplicated.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'DuplicatedParam.Rules.2.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param of Rules.2.RuleConditions.1.SourceIpConfig.Values is duplicated.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'DuplicatedParam.TagKey', 'message' => 'The param of TagKey is duplicated.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'DuplicatedParam.Type', 'message' => 'The param of Type is duplicated.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'DuplicatedParam.Value', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => 'Parameter Duplicate'],
+ ['code' => 'DuplicatedParam.ZoneId', 'message' => 'The param of ZoneId is duplicated.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'EntityNotExist.Role', 'message' => 'The role not exists.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ExclusiveParam.%sAnd%s', 'message' => 'The param of %s and %s are mutually exclusive.', 'http_code' => 400, 'description' => 'The parameters %s and %s are mutually exclusive.'],
+ ['code' => 'ExclusiveParam.TrafficMirrorAndFixedResponse', 'message' => 'The param of RuleActions.TrafficMirror and RuleActions.FixedResponse are mutually exclusive.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ExclusiveParam.TrafficMirrorAndRedirect', 'message' => 'The param of Rules.1.RuleActions.TrafficMirror and Rules.1.RuleActions.Redirect are mutually exclusive.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ExclusiveParam.TrafficMirrorAndRewrite', 'message' => 'The param of RuleActions.TrafficMirror and RuleActions.Rewrite are mutually exclusive.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'Forbidden.Acl', 'message' => 'ACL authentication has failed.', 'http_code' => 403, 'description' => ''],
+ ['code' => 'Forbidden.Acl', 'message' => 'Authentication is failed for %s.', 'http_code' => 403, 'description' => 'Authentication is failed for %s.'],
+ ['code' => 'Forbidden.alb', 'message' => 'Authentication has failed for alb.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'Forbidden.HealthCheckTemplate', 'message' => 'Authentication has failed for HealthCheckTemplate.', 'http_code' => 403, 'description' => ''],
+ ['code' => 'Forbidden.HealthCheckTemplate', 'message' => 'Authentication is failed for %s.', 'http_code' => 403, 'description' => 'Authentication is failed for %s.'],
+ ['code' => 'Forbidden.Listener', 'message' => 'Authentication is failed for %s.', 'http_code' => 403, 'description' => 'Authentication is failed for %s.'],
+ ['code' => 'Forbidden.LoadBalancer', 'message' => 'Authentication has failed for LoadBalancer.', 'http_code' => 403, 'description' => ''],
+ ['code' => 'Forbidden.LoadBalancer', 'message' => 'Authentication is failed for %s.', 'http_code' => 403, 'description' => 'Authentication is failed for %s.'],
+ ['code' => 'Forbidden.SecurityPolicy', 'message' => 'Authentication has failed for SecurityPolicy.', 'http_code' => 403, 'description' => ''],
+ ['code' => 'Forbidden.ServerGroup', 'message' => 'Authentication has failed for ServerGroup.', 'http_code' => 403, 'description' => ''],
+ ['code' => 'Forbidden.ServerGroup', 'message' => 'Authentication is failed for ServerGroup.', 'http_code' => 403, 'description' => ''],
+ ['code' => 'IdempotentParameterMismatch', 'message' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'http_code' => 400, 'description' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.'],
+ ['code' => 'IllegalParam.%s', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.AclEntrys', 'message' => 'The param of AclEntrys is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.AclIds', 'message' => 'The param of AclIds is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.AclName', 'message' => 'The param of AclName is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.AclType', 'message' => 'The param of AclType is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.AddressAllocatedMode', 'message' => 'The param of AddressAllocatedMode is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.AddressType', 'message' => 'The param of AddressType is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.CaCertificates', 'message' => 'The param of CaCertificates is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Category', 'message' => 'The param of Category is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Cipher', 'message' => 'The param of Cipher is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Ciphers', 'message' => 'The param of Ciphers is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ConnectPort', 'message' => 'The param of ConnectPort is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Content', 'message' => 'The param of Rules.RuleActions.FixedResponseConfig.Content is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ContentType', 'message' => 'The param of Rules.RuleActions.FixedResponseConfig.ContentType is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Cookie', 'message' => 'The param of Cookie is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Description', 'message' => 'The param of Description is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Direction', 'message' => 'The param of Rules.Direction is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.EnableCrossBorder', 'message' => 'Invalid EnableCrossBorder.', 'http_code' => 400, 'description' => 'The acceleration region and origin station you selected involve cross-border data transmission. Please configure the EnableCrossBorder parameters and agree to the relevant compliance commitment.'],
+ ['code' => 'IllegalParam.HealthCheck.healthCheckHost', 'message' => 'The param of HealthCheck.healthCheckHost is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.HealthCheck.healthCheckHttpVersion', 'message' => 'The param of HealthCheck.healthCheckHttpVersion is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.HealthCheck.healthCheckMethod', 'message' => 'The param of HealthCheck.healthCheckMethod is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.HealthCheckHost', 'message' => 'The param of HealthCheckHost is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.HealthCheckHttpCode', 'message' => 'The param of HealthCheckHttpCode is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.HealthCheckHttpVersion', 'message' => 'The param of HealthCheckHttpVersion is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.HealthCheckMethod', 'message' => 'The param of HealthCheckMethod is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.HealthCheckPath', 'message' => 'The param of HealthCheckPath is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.HealthyThreshold', 'message' => 'The param of HealthyThreshold is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Host', 'message' => 'The param of Rules.RuleConditions.HostConfig.Values is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.HttpCode', 'message' => 'The param of Rules.RuleActions.FixedResponseConfig.HttpCode is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.HttpVersion', 'message' => 'The param of HttpVersion is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.InternetChargeType', 'message' => 'The param of InternetChargeType is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.IntervalTime', 'message' => 'The param of IntervalTime is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.IP', 'message' => 'The param of IP is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Key', 'message' => 'The param of Rules.RuleActions.RemoveHeaderConfig.Key is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ListenerDescription', 'message' => 'The param of ListenerDescription is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ListenerIds', 'message' => 'The param of ListenerIds is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ListenerPort', 'message' => 'The param of ListenerPort is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ListenerProtocol', 'message' => 'The param of ListenerProtocol is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.LoadBalancerEdition', 'message' => 'The param of LoadBalancerEdition is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.LoadBalancerIds', 'message' => 'The param of LoadBalancerIds is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.LoadBalancerName', 'message' => 'The param of LoadBalancerName is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.MaxResults', 'message' => 'The param of MaxResults is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Method', 'message' => 'The param of Method is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Name', 'message' => 'The param of Name is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.NextToken', 'message' => 'The param of NextToken is illegal.', 'http_code' => 400, 'description' => 'The specified NextToken is illegal.'],
+ ['code' => 'IllegalParam.Order', 'message' => 'The param of Rules.RuleActions.TrafficLimitConfig.Order is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Path', 'message' => 'The param of Rules.RuleActions.RewriteConfig.Path is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.PayType', 'message' => 'The param of PayType is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Port', 'message' => 'The param of Rules.RuleActions.Redirect.Port is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Priority', 'message' => 'The param of Priority is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Protocol', 'message' => 'The param of Protocol is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Query', 'message' => 'The param of Rules.RuleActions.Redirect.Query is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Reason', 'message' => 'The param of ModificationProtectionConfig.Reason is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ResourceId', 'message' => 'ResourceId %s is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ResourceType', 'message' => 'The param of ResourceType is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.RuleAction', 'message' => 'The param of Rules.RuleActions is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.RuleIds', 'message' => 'The param of RuleIds is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.RuleIds', 'message' => 'Invalid RuleIds, array length cannot exceed 20.', 'http_code' => 400, 'description' => 'Invalid RuleIds, array length cannot exceed 20'],
+ ['code' => 'IllegalParam.RuleName', 'message' => 'The param of Rules.RuleName is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Rules.2.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param of Rules.2.RuleConditions.1.SourceIpConfig.Values is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Scheduler', 'message' => 'The param of Scheduler is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.SecurityPolicyName', 'message' => 'The param of SecurityPolicyName is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ServerGroupName', 'message' => 'The param of ServerGroupName is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ServerGroupStickySession', 'message' => 'The specified ServerGroupStickySession parameter is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ServerGroupType', 'message' => 'The param of ServerGroupType is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ServerIp', 'message' => 'The param of ServerIp is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Servers', 'message' => 'The param of Servers is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Status', 'message' => 'The param of Status is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.StickySession.cookie', 'message' => 'The param of StickySession.cookie is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.TagKey', 'message' => 'The param of TagKey is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.TagModels', 'message' => 'The param of TagModels is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.TagValue', 'message' => 'The param of TagValue is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.TargetType', 'message' => 'The param of TargetType is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Timeout', 'message' => 'The param of Timeout is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.TLSVersion', 'message' => 'The param of TLSVersion is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.TracingSample', 'message' => 'The param of AccessLogTracingConfig.TracingSample is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.TracingType', 'message' => 'The param of AccessLogTracingConfig.TracingType is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.TrafficLimitConfig', 'message' => 'The param of Rules.RuleActions.TrafficLimitConfig.QPS is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Type', 'message' => 'The param of Rules.RuleActions.Type is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.UnhealthyThreshold', 'message' => 'The param of UnhealthyThreshold is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Value', 'message' => 'The param of Rules.RuleConditions.ResponseStatusCode.Values is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.ValueType', 'message' => 'The param of Rules.RuleConditions.ValueType is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.Weight', 'message' => 'The param of Rules.RuleActions.ForwardGroupConfig.ServerGroupTuples.Weight is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.XForwardedForClientCertClientVerifyAlias', 'message' => 'The param of XForwardedForClientCertClientVerifyAlias is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.XForwardedForClientCertFingerprintAlias', 'message' => 'The param of XForwardedForClientCertFingerprintAlias is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.XForwardedForClientCertIssuerDNAlias', 'message' => 'The param of XForwardedForClientCertIssuerDNAlias is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParam.XForwardedForClientCertSubjectDNAlias', 'message' => 'The param of XForwardedForClientCertSubjectDNAlias is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamFormat.%s', 'message' => 'The param format of %s is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamFormat.ServerId', 'message' => 'The param format of ServerId is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamLength.%s', 'message' => 'The param length of %s is illegal.', 'http_code' => 400, 'description' => 'The parameter length of %s is illegal.'],
+ ['code' => 'IllegalParamLength.Host', 'message' => 'The param length of Host is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamLength.Key', 'message' => 'The param length of Rules.RuleActions.RemoveHeaderConfig.Key is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamLength.Path', 'message' => 'The param length of Rules.RuleActions.RewriteConfig.Path is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamLength.Query', 'message' => 'The param length of Rules.RuleActions.Redirect.Query is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamLength.Value', 'message' => 'The param length of Rules.RuleConditions.HostConfig.Values is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.%s', 'message' => 'The param size of %s is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.AdditionalCertificates', 'message' => 'The param size of AdditionalCertificates is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.Certificates', 'message' => 'The param size of Certificates is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param size of RuleConditions.1.SourceIpConfig.Values is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param of IllegalParamSize.RuleConditions.1.SourceIpConfig.Values is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.Rules.2.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param size of Rules.2.RuleConditions.1.SourceIpConfig.Values is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.Rules.2.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param of IllegalParamSize.Rules.2.RuleConditions.1.SourceIpConfig.Values is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.ServerGroupTuple', 'message' => 'The param size of ServerGroupTuple is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.ServerGroupTuples', 'message' => 'The param size of ServerGroupTuples is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.ServerGroupTuples', 'message' => 'The param of IllegalParamSize.ServerGroupTuples is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.Servers', 'message' => 'The param size of Servers is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.Value', 'message' => 'The param size of Rules.RuleConditions.HostConfig.Values is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IllegalParamSize.ZoneMappings', 'message' => 'The param size of ZoneMappings is illegal.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IncorrectBusinessStatus.CommonBandwidthPackage', 'message' => 'The business status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IncorrectBusinessStatus.Eip', 'message' => 'The business status of %s [%s]  is incorrect.', 'http_code' => 400, 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['code' => 'IncorrectBusinessStatus.Eip', 'message' => 'The business status of Eip [%s] is incorrect.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IncorrectBusinessStatus.LoadBalancer', 'message' => 'The business status of %s [%s]  is incorrect.', 'http_code' => 400, 'description' => 'The business status of %s [%s]  is incorrect.'],
+ ['code' => 'IncorrectBusinessStatus.LoadBalancer', 'message' => 'The business status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IncorrectStatus.Acl', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IncorrectStatus.AclNotStable', 'message' => 'The status of %s [%s] is not stable.', 'http_code' => 400, 'description' => 'The current ACL status does not support this operation.'],
+ ['code' => 'IncorrectStatus.CommonBandwidthPackage', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IncorrectStatus.Eni', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The status of %s [%s] is incorrect.'],
+ ['code' => 'IncorrectStatus.HealthCheckTemplate', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The status of %s [%s] is incorrect.'],
+ ['code' => 'IncorrectStatus.Listener', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IncorrectStatus.LoadBalancer', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IncorrectStatus.Rule', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'IncorrectStatus.SecurityPolicy', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The status of %s [%s] is incorrect.'],
+ ['code' => 'IncorrectStatus.ServerGroup', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The status of %s [%s] is incorrect.'],
+ ['code' => 'InternalError', 'message' => 'The request failed to be processed due to unknown errors or exceptions.', 'http_code' => 500, 'description' => 'The request processing has failed due to some unknown error, exception or failure.'],
+ ['code' => 'InvalidAccessLogRecordCustomizedHeadersEnabled', 'message' => 'AccessLogRecordCustomizedHeadersEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidCaEnabled', 'message' => 'CaEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidCookieTimeout', 'message' => 'CookieTimeout is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidDeletionProtectionEnabled', 'message' => 'DeletionProtectionEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidDryRun', 'message' => 'DryRun is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidEnabled', 'message' => 'Specified parameter Enabled is not valid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidGzipEnabled', 'message' => 'GzipEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidHealthCheckConnectPort', 'message' => 'HealthCheckConnectPort is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidHealthCheckInterval', 'message' => 'HealthCheckInterval is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidHealthCheckTcpFastCloseEnabled', 'message' => 'HealthCheckTcpFastCloseEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidHealthCheckTimeout', 'message' => 'HealthCheckTimeout is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidHealthyThreshold', 'message' => 'HealthyThreshold is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidHttp2Enabled', 'message' => 'Http2Enabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidIdleTimeout', 'message' => 'IdleTimeout is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidInternetBandwidth', 'message' => 'InternetBandwidth is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidMaxResults', 'message' => 'MaxResults is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidParameter', 'message' => 'Invalid parameter, please check the parameter input.', 'http_code' => 400, 'description' => 'Invalid parameter, please check the parameter input.'],
+ ['code' => 'InvalidQPS', 'message' => 'Specified parameter QPS is not valid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidQuicUpgradeEnabled', 'message' => 'QuicUpgradeEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidRequestTimeout', 'message' => 'RequestTimeout is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidTracingEnabled', 'message' => 'TracingEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidUnhealthyThreshold', 'message' => 'UnhealthyThreshold is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidXForwardedForClientCertClientVerifyEnabled', 'message' => 'XForwardedForClientCertClientVerifyEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidXForwardedForClientCertFingerprintEnabled', 'message' => 'XForwardedForClientCertFingerprintEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidXForwardedForClientCertIssuerDNEnabled', 'message' => 'XForwardedForClientCertIssuerDNEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidXForwardedForClientCertSubjectDNEnabled', 'message' => 'XForwardedForClientCertSubjectDNEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidXForwardedForClientSrcPortEnabled', 'message' => 'XForwardedForClientSrcPortEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidXForwardedForEnabled', 'message' => 'XForwardedForEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidXForwardedForProtoEnabled', 'message' => 'XForwardedForProtoEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidXForwardedForSLBIdEnabled', 'message' => 'XForwardedForSLBIdEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidXForwardedForSLBPortEnabled', 'message' => 'XForwardedForSLBPortEnabled is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'LockFailed', 'message' => 'The specified resource lock failed.', 'http_code' => 400, 'description' => 'The specified resource lock failed.'],
+ ['code' => 'Mismatch.IspType', 'message' => 'The IspType is mismatched for Eip and CommonBandwidthPackage.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'Mismatch.LoadBalancerEditionAndConnectionDrain', 'message' => 'The %s and %s are mismatched.', 'http_code' => 400, 'description' => 'The %s and %s are mismatched.'],
+ ['code' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable', 'message' => 'The %s and %s are mismatched.', 'http_code' => 400, 'description' => 'The %s and %s are mismatched.'],
+ ['code' => 'Mismatch.Protocol', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => 'The %s is mismatched for %s and %s.'],
+ ['code' => 'Mismatch.ServerGroupSchedulerAndSlowStartEnable', 'message' => 'The %s and %s are mismatched.', 'http_code' => 400, 'description' => 'The %s and %s are mismatched.'],
+ ['code' => 'Mismatch.ServerType', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'Mismatch.Type', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => 'The %s is mismatched for %s and %s.'],
+ ['code' => 'Mismatch.VpcId', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => 'The %s is mismatched for %s and %s.'],
+ ['code' => 'Mismatch.ZoneIdAndVSwitchId', 'message' => 'The %s and %s are mismatched.', 'http_code' => 400, 'description' => 'The %s and %s are mismatched.'],
+ ['code' => 'Mismatch.ZoneIdAndVSwitchId', 'message' => 'The ZoneId and VSwitchId are mismatched.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingLoadBalancerBillingConfig.PayType', 'message' => 'LoadBalancerBillingConfig.PayType is mandatory for this action.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.%s', 'message' => 'The param of %s is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.CaCertificates', 'message' => 'The param of CaCertificates is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.Certificates', 'message' => 'The param of Certificates is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.Ciphers', 'message' => 'The param of Ciphers is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.Cookie', 'message' => 'The param of Cookie is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.Key', 'message' => 'The param of Rules.RuleActions.RemoveHeaderConfig.Key is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.LoadBalancerId', 'message' => 'The param of LoadBalancerId is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.LoadBalancerName', 'message' => 'The param of LoadBalancerName is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.Port', 'message' => 'The param of Port is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.QuicListenerId', 'message' => 'The param of QuicListenerId is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.StickySession', 'message' => 'The param of StickySession is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.StickySession.cookie', 'message' => 'The param of StickySession.cookie is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.TagsOrResourceIds', 'message' => 'The param of TagsOrResourceIds is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.TLSVersions', 'message' => 'The param of TLSVersions is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.Type', 'message' => 'The param of Type is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.VpcId', 'message' => 'The param of VpcId is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingParam.Weight', 'message' => 'The param of Rules.RuleActions.ForwardGroupConfig.ServerGroupTuples.Weight is missing.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'MissingZoneMappings', 'message' => 'ZoneMappings is mandatory for this action.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'NotExist.ResourceGroup', 'message' => 'ResourceGroup does not exist.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.AcceleratorCidrConflictWithAclEntity', 'message' => 'The operation is not allowed because of ga back-to-source cidr conflict with acl entity which associated with listener in loadbalancer.', 'http_code' => 400, 'description' => 'GA cannot be enabled when the back-to-origin CIDR block of GA conflicts with a CIDR block in the ACL.'],
+ ['code' => 'OperationDenied.AcceleratorIpInAclBlackList', 'message' => 'The operation is not allowed because of ga back-source Ip in blacklist acl', 'http_code' => 400, 'description' => 'GA cannot be enabled when the back-to-origin IP address of GA is on the blacklist.'],
+ ['code' => 'OperationDenied.AccessLogDisabled', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.AccessLogEnabled', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.AclNotSupport', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.AddressTypeNotChanged', 'message' => 'The operation is not allowed because of AddressTypeNotChanged.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.AddressTypeNotChanged', 'message' => 'The address type of the specified loadbalancer has not been changed.', 'http_code' => 400, 'description' => 'The address type of the specified loadbalancer has not been changed.'],
+ ['code' => 'OperationDenied.CaEnableListenerNotSupportGA', 'message' => 'The operation is not allowed because of the ALB instance has a listener configured for mutual authentication.', 'http_code' => 400, 'description' => 'Application acceleration is not supported when the ALB instance is associated with a listener which has mutual authentication enabled.'],
+ ['code' => 'OperationDenied.CertCommonNameEmpty', 'message' => 'The operation is not allowed because of CertCommonNameEmpty.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.CertificateTypeMismatched', 'message' => 'The operation is not allowed because of CertificateTypeMismatched.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.CloudBox', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'],
+ ['code' => 'OperationDenied.ConfigLastActiveZoneNotSupport', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'You are not allowed to remove, disable, or delete the A record of the last active zone.'],
+ ['code' => 'OperationDenied.ConfigManagedEnabled', 'message' => 'The operation is not allowed because the ConfigManaged is enabled.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.CrossListenerAScripts', 'message' => 'The operation is not allowed because of %s', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.CrossLoadBalancerQUICListener', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'],
+ ['code' => 'OperationDenied.CrossLoadBalancerRules', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'],
+ ['code' => 'OperationDenied.DefaultCertificateUsed', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.DeletionProtectionEnabled', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'],
+ ['code' => 'OperationDenied.Downgrade', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'."\n"],
+ ['code' => 'OperationDenied.EciNotSupportJobType', 'message' => 'he operation is not allowed because of eci not support job type.', 'http_code' => 400, 'description' => 'Job-optimized elastic container instances cannot be added to the server group.'],
+ ['code' => 'OperationDenied.EciNotSupportJobType', 'message' => 'The operation is not allowed because of eci not support job type.', 'http_code' => 400, 'description' => 'The operation is not allowed because of eci not support job type.'],
+ ['code' => 'OperationDenied.EditionNotChanged', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.EniStatusNotSupport', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'This operation is not supported by the status of the ENI.'],
+ ['code' => 'OperationDenied.GaNotSupportAcceleratorRegion', 'message' => 'The operation is not allowed because of ga not support this accelerator region.', 'http_code' => 400, 'description' => 'The specified acceleration area does not exist.'],
+ ['code' => 'OperationDenied.GaNotSupportAdditionalCertificate', 'message' => 'The operation is not allowed because of loadbalancer configured with additional certificate not support application acceleration.', 'http_code' => 400, 'description' => 'The ALB instance has been configured with an extended certificate and does not support application acceleration.'],
+ ['code' => 'OperationDenied.GaNotSupportCustomSecurityPolicy', 'message' => 'The operation is not allowed because of the ALB instance configured with custom TLS.', 'http_code' => 400, 'description' => 'Application acceleration is not supported when a custom TLS policy is configured for the ALB instance.'],
+ ['code' => 'OperationDenied.GaNotSupportQuic', 'message' => 'The operation is not allowed because of Ga not support Quic.', 'http_code' => 400, 'description' => 'The operation is not allowed, the load balancing instance has a QUIC protocol type monitoring, and one-click global acceleration is not supported.'],
+ ['code' => 'OperationDenied.GRPCServerGroup', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.GRPCServerGroupNotSupport', 'message' => 'The operation is not allowed because of ALB instances associated with gRPC backend server groups.', 'http_code' => 400, 'description' => 'Application acceleration is not supported when the ALB instance is associated with a gRPC server group.'],
+ ['code' => 'OperationDenied.HttpListenerNotSupport', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.IntranetLoadBalancer', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'],
+ ['code' => 'OperationDenied.Ipv6InternetInstance', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.Ipv6IntranetInstance', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.LbAssociatedAclCanNotJoinSecurityGroup', 'message' => 'The operation is not allowed because of loadBalancer associated acl can not join security group.', 'http_code' => 400, 'description' => 'This operation is not allowed because the listener under the Server Load Balancer instance has been bound to an access control policy. You are not allowed to join the security group again.'],
+ ['code' => 'OperationDenied.LbAssociatedGrpcServerGroupNotSupportGA', 'message' => 'The operation is not allowed because of ALB instances associated with gRPC backend server groups.', 'http_code' => 400, 'description' => 'ALB instances associated with gRPC backend server groups do not support application acceleration.'],
+ ['code' => 'OperationDenied.ListenerConfiguring', 'message' => 'The operation is not allowed because of Listener configuring.', 'http_code' => 400, 'description' => 'Application acceleration is not supported when the listener configurations are being modified.'],
+ ['code' => 'OperationDenied.ListenerEnabledCaNotSupportGA', 'message' => 'The operation is not allowed because of the ALB instance has a listener configured for mutual authentication.', 'http_code' => 400, 'description' => 'The ALB instance has a listener configured for mutual authentication. Application acceleration is not supported.'],
+ ['code' => 'OperationDenied.ListenerIdInconsistent', 'message' => 'The operation is not allowed because of ListenerIdInconsistent.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.LoadbalancerAlreadyEnableAccelerator', 'message' => 'The operation is not allowed because of Global Acceleration has been enabled for the instance.', 'http_code' => 400, 'description' => 'GA is already enabled for the ALB instance.'],
+ ['code' => 'OperationDenied.LoadbalancerAlreadyEnabledAccelerator', 'message' => 'The operation is not allowed because of Global Acceleration has been enabled for the instance.', 'http_code' => 400, 'description' => 'Global acceleration has been enabled for the instance.'],
+ ['code' => 'OperationDenied.LoadBalancerJoinedSecurityGroupNotSupportAcl', 'message' => 'The operation is not allowed because of loadbalancer joined security group not support acl.', 'http_code' => 400, 'description' => 'The operation is not supported because SLB instances in security groups cannot be added to ACLs.'],
+ ['code' => 'OperationDenied.MirrorActionSupportHttpGroupOnly', 'message' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.NoAvailableBusinessRegionForGa', 'message' => 'The operation is not allowed because of Global Acceleration is not available in this region.', 'http_code' => 400, 'description' => 'Global Acceleration GA is not available in this region and does not support application acceleration.'],
+ ['code' => 'OperationDenied.NoAvailableVSwitch', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'],
+ ['code' => 'OperationDenied.NoListenerInLoadbalancer', 'message' => 'The operation is not allowed because of the ALB instance does not contain listeners.', 'http_code' => 400, 'description' => 'Application acceleration is not supported when the ALB instance does not have a listener.'],
+ ['code' => 'OperationDenied.NonDualStackInstance', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.OnlyFixedAddressAllocatedModeSupported', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'This operation is not supported by the IP mode of the SLB instance.'],
+ ['code' => 'OperationDenied.OnlyPostPaidEipSupported', 'message' => 'The operation is not allowed because of OnlyPostPaidEipSupported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.ProtectedPrivateIPv4AddressChanged', 'message' => 'The operation is not allowed because of ProtectedPrivateIPv4AddressChanged.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', 'message' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.RewriteMissingForwardGroup', 'message' => 'The operation is not allowed because of RewriteMissingForwardGroup.', 'http_code' => 400, 'description' => 'The operation is not allowed because rewrite is missing the forward group.'],
+ ['code' => 'OperationDenied.SameGroupForForwardAndMirrorAction', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'],
+ ['code' => 'OperationDenied.SecurityGroupNotSupport', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.ServerGroupProtocolNotSupport', 'message' => 'The operation is not allowed because of ServerGroupProtocolNotSupport.', 'http_code' => 400, 'description' => 'The operation is not allowed because the server group protocol is not supported.'],
+ ['code' => 'OperationDenied.ServiceManagedResource', 'message' => 'The operation is not allowed because the current resource is managed resource.', 'http_code' => 400, 'description' => 'The operation is not allowed because the current resource is being managed.'],
+ ['code' => 'OperationDenied.ServiceManagedResource', 'message' => 'The operation is not allowed because the current resource of %s is managed resource.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.TcpFastCloseNotSupport', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'],
+ ['code' => 'OperationDenied.UnsupportedInternetChargeTypeConvert', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'],
+ ['code' => 'OperationDenied.UpstreamKeepaliveDisabled', 'message' => 'The operation is not allowed because of UpstreamKeepaliveDisabled.', 'http_code' => 400, 'description' => 'Updating not allowed Backend long connection is closed'],
+ ['code' => 'OperationDenied.UpstreamKeepaliveEnabled', 'message' => 'The operation is not allowed because of UpstreamKeepaliveEnabled.', 'http_code' => 400, 'description' => 'Update not allowed to open Backend Long connection is in the open state'],
+ ['code' => 'OperationDenied.VgwVipNotFound', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'],
+ ['code' => 'OperationDenied.VpcNotSupportIpv6', 'message' => 'The operation is not allowed because of VpcNotSupportIpv6.', 'http_code' => 400, 'description' => 'This operation is not allowed because the IPv6 function is not enabled for the current VPC.'],
+ ['code' => 'OperationDenied.VpcVportNotFound', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'],
+ ['code' => 'OperationDenied.WafVersionNotSupport', 'message' => 'The operation is not allowed because of WafVersionNotSupport.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.WrongTargetAddressType', 'message' => 'The operation is not allowed because of WrongTargetAddressType.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.ZoneMappingsNotChanged', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationDenied.ZoneVSwitchChanged', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because of %s.'."\n"],
+ ['code' => 'OperationDenied.ZoneVSwitchNotExist', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The instance does not contain the zone or vSwitch specified in the request.'],
+ ['code' => 'OperationDenyed.ServiceLinkedRoleNotExist', 'message' => 'The service linked role AliyunServiceRoleForAlb does not exist.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationFailed.CancelShiftLoadBalancerZonesFailed', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'Failed to restore the A record of the IP address in the zone.'],
+ ['code' => 'OperationFailed.CertCommonNameEmpty', 'message' => 'The operation failed because of CertCommonNameEmpty.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationFailed.DefaultCertificateNotFound', 'message' => 'The operation failed because of %s.', 'http_code' => 400, 'description' => 'The operation failed because of %s.'],
+ ['code' => 'OperationFailed.LockFailed', 'message' => 'The operation failed because of LockFailed.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'OperationFailed.ResourceGroupStatusCheckFail', 'message' => 'The operation failed because of ResourceGroupStatusCheckFail.', 'http_code' => 400, 'description' => 'The operation failed because resource group status check failed.'],
+ ['code' => 'OperationFailed.ShiftLoadBalancerZonesFailed', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'Failed to remove the A record of the IP address in the zone.'],
+ ['code' => 'QuotaExceeded.AclEntriesNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded. Usage %s/%s.'],
+ ['code' => 'QuotaExceeded.AclsNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['code' => 'QuotaExceeded.ConnectionDrainTimeout', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['code' => 'QuotaExceeded.HealthCheckTemplatesNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded. Usage: %s/%s.'],
+ ['code' => 'QuotaExceeded.LoadBalancerCertificatesNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['code' => 'QuotaExceeded.LoadBalancersNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['code' => 'QuotaExceeded.RuleActionsNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded. Usage: %s/%s.'],
+ ['code' => 'QuotaExceeded.RuleMatchEvaluationsNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'QuotaExceeded.RuleWildcardsNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded, usage %s/%s.'."\n"],
+ ['code' => 'QuotaExceeded.SecurityPoliciesNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded. Usage: %s/%s.'],
+ ['code' => 'QuotaExceeded.ServerGroupsNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['code' => 'QuotaExceeded.SlowStartDuration', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded, usage %s/%s.'],
+ ['code' => 'ResourceAlreadyAssociated.Certificate', 'message' => 'The specified resource %s is already associated.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceAlreadyAssociated.Listener', 'message' => 'The specified resource %s is already associated.', 'http_code' => 400, 'description' => 'The specified resource %s is already associated.'],
+ ['code' => 'ResourceAlreadyAssociated.SecurityGroup', 'message' => 'The specified resource of %s is already associated.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceAlreadyExist.AclEntry', 'message' => 'The specified resource %s already exists.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceAlreadyExist.Listener', 'message' => 'The specified resource %s is already exist.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceInConfiguring', 'message' => 'The specified resource of %s is being configured. Please try again later.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceInConfiguring.BackendServer', 'message' => 'The specified resource of BackendServer is being configured. Please try again later.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceInConfiguring.BackendServer', 'message' => 'The specified resource of %s is being configured, please try again later.', 'http_code' => 400, 'description' => 'The specified resource of %s is being configured, please try again later.'],
+ ['code' => 'ResourceInConfiguring.Listener', 'message' => 'The specified resource %s is configuring, please try again later.', 'http_code' => 400, 'description' => 'The specified resource %s is being configured. Please try again later.'],
+ ['code' => 'ResourceInConfiguring.Listener', 'message' => 'The specified listener is being configured, please try again later.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceInConfiguring.Listener', 'message' => 'The specified resource is being configured, please try again later.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceInConfiguring.Listener', 'message' => 'The specified resource of %s is being configured, please try again later.', 'http_code' => 400, 'description' => 'The specified resource of %s is being configured, please try again later.'],
+ ['code' => 'ResourceInConfiguring.LoadBalancer', 'message' => 'The specified resource of %s is being configured, please try again later.', 'http_code' => 400, 'description' => 'The specified resource of %s is being configured, please try again later.'],
+ ['code' => 'ResourceInConfiguring.SecurityPolicy', 'message' => 'The specified resource %s is being configured. Please try again later.', 'http_code' => 400, 'description' => 'The specified resource %s is being configured. Please try again later.'],
+ ['code' => 'ResourceInUse.Acl', 'message' => 'The specified resource %s is in use.', 'http_code' => 400, 'description' => 'The specified resource %s is in use.'],
+ ['code' => 'ResourceInUse.Eni', 'message' => 'The specified resource %s is in use.', 'http_code' => 400, 'description' => 'The specified resource %s is in use.'],
+ ['code' => 'ResourceInUse.IP', 'message' => 'The specified resource %s is in use.', 'http_code' => 400, 'description' => 'The specified resource %s is in use.'],
+ ['code' => 'ResourceInUse.Listener', 'message' => 'The specified resource %s is in use.', 'http_code' => 400, 'description' => 'The specified resource %s is in use.'],
+ ['code' => 'ResourceInUse.SecurityPolicy', 'message' => 'The specified resource %s is in use.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceInUse.ServerGroup', 'message' => 'The specified resource %s is in use.', 'http_code' => 400, 'description' => 'The specified resource %s is in use.'],
+ ['code' => 'ResourceInUse.ServerGroup', 'message' => 'The specified server group is in use.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceNotAssociated.Acl', 'message' => 'The specified resource %s is not associated.', 'http_code' => 404, 'description' => 'The specified resource %s is not associated.'],
+ ['code' => 'ResourceNotAssociated.Certificate', 'message' => 'The specified resource %s is not associated.', 'http_code' => 400, 'description' => 'The specified resource %s is not associated.'],
+ ['code' => 'ResourceNotAssociated.SecurityGroup', 'message' => 'The specified resource of %s is not associated.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceNotEnough.VSwitchIp', 'message' => 'The specified resource %s is not enough.', 'http_code' => 400, 'description' => 'The specified resource %s is not enough.'],
+ ['code' => 'ResourceNotFound', 'message' => 'The specified resource (%s) is not found.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceNotFound.Acl', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.AclEntry', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => 'The specified resource %s is not found.'],
+ ['code' => 'ResourceNotFound.AScript', 'message' => 'The specified resource %s is not found.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceNotFound.Ascript', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.BackendServer', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.Certificate', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => 'The specified resource %s is not found.'],
+ ['code' => 'ResourceNotFound.Certificate', 'message' => 'The specified certificate is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.CommonBandwidthPackage', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.Eci', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.Ecs', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.Eip', 'message' => 'The specified resource ResourceNotFound.Eip is not found.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceNotFound.Eni', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => 'The specified resource %s is not found.'],
+ ['code' => 'ResourceNotFound.HealthCheckTemplate', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => 'The specified resource %s is not found.'],
+ ['code' => 'ResourceNotFound.Ipv6Gateway', 'message' => 'The specified resource is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.Listener', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.LoadBalancer', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => 'The specified resource %s is not found.'],
+ ['code' => 'ResourceNotFound.LoadBalancer', 'message' => 'The specified LoadBalancer is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.LoadBalancer', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => 'The specified resource of %s is not found.'],
+ ['code' => 'ResourceNotFound.ResourceGroup', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => 'The specified resource %s is not found.'],
+ ['code' => 'ResourceNotFound.Rule', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => 'The specified resource %s is not found.'],
+ ['code' => 'ResourceNotFound.SecurityGroup', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.SecurityPolicy', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => 'The specified resource %s is not found.'],
+ ['code' => 'ResourceNotFound.ServerGroup', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.ServerLoadBalancer', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.Vpc', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'ResourceNotFound.VSwitch', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => 'The specified resource %s is not found.'],
+ ['code' => 'ResourceQuotaExceeded.AclEntriesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceQuotaExceeded.AScriptLinesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceQuotaExceeded.AScriptsNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceQuotaExceeded.AScriptsTotalLinesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceQuotaExceeded.FcServerGroupServersNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceQuotaExceeded.ListenerAclEntriesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded for resource %s, usage %s/%s.'],
+ ['code' => 'ResourceQuotaExceeded.LoadBalancerAclEntriesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded for resource %s, usage %s/%s.'],
+ ['code' => 'ResourceQuotaExceeded.LoadBalancerCertificatesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceQuotaExceeded.LoadBalancerListenersNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded for resource %s, usage %s/%s.'],
+ ['code' => 'ResourceQuotaExceeded.LoadBalancerRulesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceQuotaExceeded.SecurityGroupNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceQuotaExceeded.SecurityPolicyAttachedNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded for resource %s. Usage: %s/%s.'],
+ ['code' => 'ResourceQuotaExceeded.ServerAddedNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ServiceUnavailable', 'message' => 'The request has failed due to a temporary failure of the server.', 'http_code' => 400, 'description' => 'The request has failed due to a temporary failure of the server.'],
+ ['code' => 'SystemBusy', 'message' => 'System is busy, please try again later.', 'http_code' => 400, 'description' => 'The system is busy. Please try again later.'],
+ ['code' => 'SystemBusy', 'message' => 'System is busy now, please try again later.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'Throttling', 'message' => 'Request was denied due to flow control.', 'http_code' => 429, 'description' => 'Request was denied due to flow control.'],
+ ['code' => 'UnauthorizedRegion', 'message' => 'The specified region of %s is not authorized.', 'http_code' => 403, 'description' => ''],
+ ['code' => 'UnauthorizedZone', 'message' => 'The specified zone of %s is not authorized.', 'http_code' => 403, 'description' => 'The specified zone of %s is not authorized.'],
+ ['code' => 'UnsupportedFeature.ConnectionDrain', 'message' => 'The feature of %s is not supported.', 'http_code' => 400, 'description' => 'The feature of %s is not supported.'],
+ ['code' => 'UnsupportedFeature.CookieForward', 'message' => 'The feature of CookieForward is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.CustomizeTLS', 'message' => 'The feature of CustomizeTLS is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.FcServerGroup', 'message' => 'The feature of TcpFastClose is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.FcServerGroup', 'message' => 'Server groups of type FC are not supported.', 'http_code' => 400, 'description' => 'Server groups of type FC are not supported'],
+ ['code' => 'UnsupportedFeature.FC_SUPPORT_CA', 'message' => 'The feature of FC SUPPORT CA is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.FixResponse', 'message' => 'The feature of FixResponse is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.FullTraceHttps', 'message' => 'The feature of FullTraceHttps is not supported for current instance.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.GroupStickySession', 'message' => 'The feature of GroupStickySession is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.GRPC', 'message' => 'The feature of GRPC is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.HttpMethodForward', 'message' => 'The feature of HttpMethodForward is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.IpServerGroup', 'message' => 'The feature of IpServerGroup is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.QueryStringForward', 'message' => 'The feature of QueryStringForward is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.ResponseRule', 'message' => 'The feature of ResponseRule is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.Rewrite', 'message' => 'The feature of Rewrite is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.SelectCommonBandwidthPackage', 'message' => 'The feature of SelectCommonBandwidthPackage is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.ServiceName', 'message' => 'The feature of ServiceName is not supported.', 'http_code' => 400, 'description' => 'ServiceName feature not supported'],
+ ['code' => 'UnsupportedFeature.SlowStart', 'message' => 'The feature of %s is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.SourceIpCondition', 'message' => 'The feature of SourceIpCondition is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.SupportCA', 'message' => 'The feature of SupportCA is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.TcpFastClose', 'message' => 'The feature of TcpFastClose is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedFeature.UpstreamKeepalive', 'message' => 'The feature of UpstreamKeepalive is not supported.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'UnsupportedRegion', 'message' => 'The feature of %s is not supported in region of %s.', 'http_code' => 400, 'description' => 'The feature of %s is not supported in region %s.'],
+ ['code' => 'UnsupportedZone', 'message' => 'The feature of %s is not supported in zone of %s.', 'http_code' => 400, 'description' => 'The feature of %s is not supported in zone %s.'],
+ ['code' => 'OperationDenied.DeploymentSetsNotSharedToAlb', 'message' => 'DeploymentSets are not shared to alb.', 'http_code' => 400, 'description' => 'These deployment sets are not shared to the ALB.'],
+ ['code' => 'OperationDenied.CACertificateCorrupted', 'message' => 'The CA certificate is corrupted.', 'http_code' => 400, 'description' => 'CA certificate is corrupted'],
+ ],
+ 'changeSet' => [],
+ 'ram' => [
+ 'productCode' => 'ALB',
+ 'productName' => 'Server Load Balancer',
+ 'ramCodes' => ['alb'],
+ 'ramLevel' => 'RESOURCE',
+ 'ramConditions' => [
+ [
+ 'name' => 'alb:ServerGroupProtocol',
+ 'schema' => [
+ 'type' => 'String',
+ 'description' => 'The server group protocol type of Application Load Balancer',
+ 'enums' => ['GRPC', 'HTTP', 'HTTPS'],
+ ],
+ ],
+ [
+ 'name' => 'alb:AddressType',
+ 'schema' => [
+ 'type' => 'String',
+ 'description' => 'The address type of Application Load Balancer',
+ 'enums' => ['Internet', 'Intranet'],
+ ],
+ ],
+ [
+ 'name' => 'alb:ListenerProtocol',
+ 'schema' => [
+ 'type' => 'String',
+ 'description' => 'The listening protocol type of Application Load Balancer',
+ 'enums' => ['HTTP', 'HTTPS', 'QUIC'],
+ ],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'apiName' => 'UpdateListenerLogConfig',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateListenerLogConfig',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
- [
- 'errorCode' => 'OperationDenied.CapacityUnitsBelowMinimum',
- 'errorMessage' => 'The operation is not allowed because of CapacityUnitsBelowMinimum.',
+ ],
+ ],
+ [
+ 'apiName' => 'EnableLoadBalancerAccessLog',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:EnableLoadBalancerAccessLog',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
- [
- 'errorCode' => 'OperationDenied.CapacityDecreaseRequestLimitExceeded',
- 'errorMessage' => 'The operation is not allowed because of CapacityDecreaseRequestLimitExceeded.',
+ ],
+ ],
+ [
+ 'apiName' => 'AssociateAdditionalCertificatesWithListener',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:AssociateAdditionalCertificatesWithListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
- [
- 'errorCode' => 'OperationDenied.PriorRequestNotComplete',
- 'errorMessage' => 'The operation is not allowed because of PriorRequestNotComplete.',
+ ],
+ ],
+ [
+ 'apiName' => 'AttachCommonBandwidthPackageToLoadBalancer',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:AttachCommonBandwidthPackageToLoadBalancer',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
],
- [
- 'errorCode' => 'OperationDenied.DeploymentSetExists',
- 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetExists.',
+ ],
+ ],
+ [
+ 'apiName' => 'CreateRule',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateRule',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
],
- [
- 'errorCode' => 'OperationDenied.DeploymentSetIsEmpty',
- 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetIsEmpty.',
+ ],
+ ],
+ [
+ 'apiName' => 'ListTagValues',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'alb:ListTagValues',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'All Resource', 'arn' => '*'],
],
- [
- 'errorCode' => 'OperationDenied.DeploymentSetsConflicts',
- 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetsConflicts.',
+ ],
+ ],
+ [
+ 'apiName' => 'DeleteHealthCheckTemplates',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteHealthCheckTemplates',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#HealthCheckTemplatesId}'],
],
- [
- 'errorCode' => 'OperationDenied.DeploymentSetsNotSupport',
- 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetsNotSupport.',
+ ],
+ ],
+ [
+ 'apiName' => 'CreateSecurityPolicy',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateSecurityPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/*'],
],
- [
- 'errorCode' => 'OperationDenied.DeploymentSetsStrategyNotMatch',
- 'errorMessage' => 'The operation is not allowed because of DeploymentSetsStrategyNotMatch.',
+ ],
+ ],
+ [
+ 'apiName' => 'GetHealthCheckTemplateAttribute',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:GetHealthCheckTemplateAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthchecktemplateId}'],
],
- [
- 'errorCode' => 'QuotaExceeded.ReservationMaxLcuPerLb',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
+ ],
+ ],
+ [
+ 'apiName' => 'UpdateServerGroupServersAttribute',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateServerGroupServersAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:ecs/{#ecsId}'],
],
- [
- 'errorCode' => 'QuotaExceeded.ReservationMaxLcuPerRegion',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
+ ],
+ ],
+ [
+ 'apiName' => 'DeleteRule',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteRule',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'acs:ResourceTag', 'validationType' => 'always'],
],
- [
- 'errorCode' => 'QuotaExceeded.DeploymentSetsNum',
- 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.',
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'apiName' => 'GetListenerAttribute',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:GetListenerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'acs:ResourceTag', 'validationType' => 'always'],
+ ],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ [
+ 'apiName' => 'DissociateAclsFromListener',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DissociateAclsFromListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","type":"json"}]',
- ],
- 'DescribeCapacityReservation' => [
- 'summary' => '查询资源预留',
- 'path' => '',
- 'methods' => [
- 'get',
- 'post',
+ [
+ 'apiName' => 'UpdateAScripts',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateAScripts',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
],
- 'schemes' => [
- 'https',
+ [
+ 'apiName' => 'UpdateListenerAttribute',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateListenerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'UpdateRulesAttribute',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateRulesAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ],
],
],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
+ [
+ 'apiName' => 'DeleteSecurityPolicy',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteSecurityPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'UpdateLoadBalancerAttribute',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateLoadBalancerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'LoadBalancerJoinSecurityGroup',
+ 'description' => '',
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'alb:LoadBalancerJoinSecurityGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'AddEntriesToAcl',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:AddEntriesToAcl',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'DisableDeletionProtection',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:DisableDeletionProtection',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListAclEntries',
+ 'description' => '',
'operationType' => 'get',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeNodes' => [
- 'FEATUREslbEUW2CG',
+ 'ramAction' => [
+ 'action' => 'alb:ListAclEntries',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ],
],
- 'autoTest' => true,
- 'tenantRelevance' => 'tenant',
],
- 'parameters' => [
- [
- 'name' => 'LoadBalancerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '应用型负载均衡实例ID。',
- 'description' => '',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'alb-o9ulmq5hgn68jk****'."\n",
+ [
+ 'apiName' => 'UpdateLoadBalancerEdition',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateLoadBalancerEdition',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'Schema of Response',
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'title' => '请求id',
- 'description' => '',
- 'type' => 'string',
- 'example' => '365F4154-92F6-4AE4-92F8-7FF3******',
- ],
- 'CapacityReservationState' => [
- 'title' => '容量预留状态',
- 'description' => '',
- 'type' => 'array',
- 'items' => [
- 'type' => 'object',
- 'properties' => [
- 'AvailabilityZone' => [
- 'title' => '资源可用区',
- 'description' => '',
- 'type' => 'string',
- 'example' => 'cn-hangzhou-k',
- ],
- 'EffectiveCapacityUnits' => [
- 'title' => '有效的LCU容量',
- 'description' => '',
- 'type' => 'number',
- 'format' => 'double',
- 'example' => '50.0',
- ],
- 'Status' => [
- 'description' => '',
- 'type' => 'string',
- 'enumValueTitles' => [
- 'Rebalancing' => 'Rebalancing',
- 'Failed' => 'Failed',
- 'Pending' => 'Pending',
- 'Provisioned' => 'Provisioned',
- ],
- 'example' => 'Provisioned',
- ],
- 'Reason' => [
- 'description' => '',
- 'type' => 'string',
- 'example' => 'INSUFFICIENT_CAPACITY',
- ],
- ],
- ],
- ],
- 'DecreaseRequestsRemaining' => [
- 'title' => '剩余降配、取消资源预留的次数',
- 'description' => '',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
- 'LastModifiedTime' => [
- 'title' => '容量预留最后修改时间,格式为yyyy-MM-ddTHH:mm:ssZ。',
- 'description' => '',
- 'type' => 'string',
- 'example' => '2025-08-22 05:06:58',
- ],
- 'MinimumLoadBalancerCapacity' => [
- 'title' => '负载均衡请求的最小预留容量',
- 'description' => '',
- 'type' => 'object',
- 'properties' => [
- 'CapacityUnits' => [
- 'title' => 'LCU数量',
- 'description' => '',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '100',
- ],
- ],
- ],
- ],
+ [
+ 'apiName' => 'ListListenerCertificates',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListListenerCertificates',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
],
- 'errorCodes' => [
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource of %s is not found.',
+ [
+ 'apiName' => 'UpdateSecurityPolicyAttribute',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateSecurityPolicyAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'],
],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ [
+ 'apiName' => 'CreateAcl',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateAcl',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/*'],
+ ],
+ ],
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"CapacityReservationState\\": [\\n {\\n \\"AvailabilityZone\\": \\"cn-hangzhou-k\\",\\n \\"EffectiveCapacityUnits\\": 50,\\n \\"Status\\": \\"Provisioned\\",\\n \\"Reason\\": \\"INSUFFICIENT_CAPACITY\\"\\n }\\n ],\\n \\"DecreaseRequestsRemaining\\": 2,\\n \\"LastModifiedTime\\": \\"2025-08-22 05:06:58\\",\\n \\"MinimumLoadBalancerCapacity\\": {\\n \\"CapacityUnits\\": 100\\n }\\n}","type":"json"}]',
- ],
- 'UpdateAScripts' => [
- 'summary' => 'Updates AScript rules.',
- 'methods' => [
- 'get',
- 'post',
+ [
+ 'apiName' => 'AddServersToServerGroup',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:AddServersToServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'],
+ ],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ [
+ 'apiName' => 'UpdateAclAttribute',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateAclAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'EnableDeletionProtection',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:EnableDeletionProtection',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
- 'operationType' => 'write',
- 'deprecated' => false,
- 'systemTags' => [
+ [
+ 'apiName' => 'CreateLoadBalancer',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateLoadBalancer',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'alb:AddressType', 'validationType' => 'always'],
+ ],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'UpdateHealthCheckTemplateAttribute',
+ 'description' => '',
'operationType' => 'update',
- 'abilityTreeCode' => '34540',
- 'abilityTreeNodes' => [
- 'FEATUREslb2Q6O49',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateHealthCheckTemplateAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthchecktemplateId}'],
+ ],
],
],
- 'parameters' => [
- [
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n"
- ."\n"
- .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'b1f642ac-5558-4a36-b7d9-cf53f40ea5c8',
+ [
+ 'apiName' => 'UpdateLoadBalancerZones',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateLoadBalancerZones',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
- [
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false**(default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
+ ],
+ [
+ 'apiName' => 'ListHealthCheckTemplates',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'alb:ListHealthCheckTemplates',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/*'],
],
],
- [
- 'name' => 'AScripts',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '脚本',
- 'description' => 'The information about the AScript rule.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The AScript rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AScriptName' => [
- 'title' => '脚本名称',
- 'description' => 'The name of the AScript rule.'."\n"
- ."\n"
- .'The name must be 2 to 128 character in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Group1',
- ],
- 'Enabled' => [
- 'title' => '是否启用',
- 'description' => 'Specifies whether to enable the AScript rule. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- 'ScriptContent' => [
- 'title' => '脚本内容',
- 'description' => 'The content of the AScript rule.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'if and(match_re($uri, \'^/1.txt$\'), $arg_type) { rewrite(concat(\'/1.\', $arg_type), \'break\') }',
- ],
- 'ExtAttributes' => [
- 'title' => '扩展属性',
- 'description' => 'The extended attribute.'."\n",
- 'type' => 'array',
- 'items' => [
- 'type' => 'object',
- 'properties' => [
- 'AttributeKey' => [
- 'title' => '属性名称',
- 'description' => 'The attribute name.'."\n"
- ."\n"
- .'Set the value to **EsDebug**, which specifies that when requests carry the \\_es_dbg parameter whose value is the specified key, the debugging header is enabled to output the execution result.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'EsDebug',
- ],
- 'AttributeValue' => [
- 'title' => '属性值',
- 'description' => 'The attribute value, which must be 1 to 128 characters in length, and can contain letters and digits.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'test123',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- 'AScriptId' => [
- 'title' => '脚本Id',
- 'description' => 'The rule ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'as-mhqxcanmivn4g5****',
- ],
- 'ExtAttributeEnabled' => [
- 'title' => '是否启用扩展属性',
- 'description' => 'Specifies whether to enable the extended attributes of the Ascript rule. Valid values:'."\n"
- ."\n"
- .'* true'."\n"
- .'* false (false)'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
+ ],
+ [
+ 'apiName' => 'RemoveServersFromServerGroup',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:RemoveServersFromServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'Updates AScript rules.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '2e82b5f4-1ba9-4d20-89c8-1082ebaa****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'ACA19FE1-C09E-53C7-8FDA-560F49D71891',
- ],
- ],
+ [
+ 'apiName' => 'RemoveEntriesFromAcl',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:RemoveEntriesFromAcl',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ [
+ 'apiName' => 'CreateRules',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateRules',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
],
- [
- 'errorCode' => 'ResourceQuotaExceeded.AScriptsNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
+ ],
+ ],
+ [
+ 'apiName' => 'UpdateLoadBalancerAddressTypeConfig',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateLoadBalancerAddressTypeConfig',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'alb:AddressType', 'validationType' => 'always'],
],
- [
- 'errorCode' => 'ResourceQuotaExceeded.AScriptsTotalLinesNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
],
- [
- 'errorCode' => 'ResourceQuotaExceeded.AScriptLinesNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
+ ],
+ ],
+ [
+ 'apiName' => 'DetachCommonBandwidthPackageFromLoadBalancer',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:DetachCommonBandwidthPackageFromLoadBalancer',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Ascript',
- 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'apiName' => 'DeleteListener',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"2e82b5f4-1ba9-4d20-89c8-1082ebaa****\\",\\n \\"RequestId\\": \\"ACA19FE1-C09E-53C7-8FDA-560******\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateAScriptsResponse>\\n <JobId>2e82b5f4-1ba9-4d20-89c8-1082ebaa****</JobId>\\n <RequestId>ACA19FE1-C09E-53C7-8FDA-560F49D71891</RequestId>\\n</UpdateAScriptsResponse>","errorExample":""}]',
- 'title' => 'UpdateAScripts',
- 'description' => '**UpdateAScripts** is an an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAScripts](~~472574~~) operation to query the status of an AScript rule.'."\n"
- ."\n"
- .'* If the rule is in the **Configuring** state, the rule is being updated.'."\n"
- .'* If the rule is in the **Available** state, the rule is updated.'."\n",
- ],
- 'CreateAScripts' => [
- 'summary' => 'Creates AScript rules.',
- 'methods' => [
- 'get',
- 'post',
+ [
+ 'apiName' => 'StartShiftLoadBalancerZones',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:StartShiftLoadBalancerZones',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ [
+ 'apiName' => 'ListSecurityPolicies',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'alb:ListSecurityPolicies',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/*'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'ListRules',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListRules',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
- 'operationType' => 'write',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeCode' => '34526',
- 'abilityTreeNodes' => [
- 'FEATUREslb2Q6O49',
+ [
+ 'apiName' => 'DisableLoadBalancerAccessLog',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:DisableLoadBalancerAccessLog',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
],
],
- 'parameters' => [
- [
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898',
+ [
+ 'apiName' => 'UpdateServerGroupAttribute',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateServerGroupAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
],
],
- [
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false**(default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
+ ],
+ [
+ 'apiName' => 'MoveResourceGroup',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:MoveResourceGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
],
],
- [
- 'name' => 'ListenerId',
- 'in' => 'query',
- 'schema' => [
- 'title' => '监听id',
- 'description' => 'The listener ID.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsn-6hfq3zs0x04ibn****',
+ ],
+ [
+ 'apiName' => 'ListServerGroupServers',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListServerGroupServers',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
],
],
- [
- 'name' => 'AScripts',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '脚本',
- 'description' => 'The information about the AScript rules.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information about the AScript rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AScriptName' => [
- 'title' => '脚本名称',
- 'description' => 'The name of the AScript rule.'."\n"
- ."\n"
- .'The length must be between 2 and 128 characters. This name must start with a letter and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'test',
- ],
- 'Position' => [
- 'title' => '执行位置',
- 'description' => 'The position where the Ascript rule is evaluated. Valid values are:'."\n"
- ."\n"
- .'* RequestHead (default): before inbound rules are evaluated'."\n"
- .'* RequestFoot: after inbound rules are evaluated'."\n"
- .'* ResponseHead: before outbound rules are evaluated'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'RequestFoot',
- 'default' => 'RequestHead',
- ],
- 'Enabled' => [
- 'title' => '是否启用',
- 'description' => 'Enables the AScript rule. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false** (default)'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'ScriptContent' => [
- 'title' => '脚本内容',
- 'description' => 'The content of the AScript rule.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'if and(match_re($uri, \'^/1.txt$\'), $arg_type) { rewrite(concat(\'/1.\', $arg_type), \'break\') }',
- ],
- 'ExtAttributes' => [
- 'title' => '扩展属性',
- 'description' => 'The extended attribute of the AScript rule.'."\n",
- 'type' => 'array',
- 'items' => [
- 'type' => 'object',
- 'properties' => [
- 'AttributeKey' => [
- 'title' => '属性名称',
- 'description' => 'The key of the extended attribute.'."\n"
- ."\n"
- .'You can only set the key to **EsDebug**. This extended attribute adds a debug response header to record the execution of the AScript rule if the client request includes the \\_es_dbg parameter and its value matches the specified value of the extended attribute.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'EsDebug',
- ],
- 'AttributeValue' => [
- 'title' => '属性值',
- 'description' => 'The value of the extended attribute, which can contain a maximum of 128 characters, including letters and digits.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test123',
- ],
- ],
- 'required' => false,
- 'description' => '',
- ],
- 'required' => false,
- ],
- 'ExtAttributeEnabled' => [
- 'title' => '是否启用扩展属性',
- 'description' => 'Enables the extended attribute of the Ascript rule. Valid values:'."\n"
- ."\n"
- .'* true'."\n"
- .'* false (default)'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
+ ],
+ [
+ 'apiName' => 'AssociateAclsWithListener',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:AssociateAclsWithListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The AScript rules that are created.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '5c607642-535e-4e06-9d77-df53049b****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'BF0FE763-9603-558F-A55B-0F4B9A3E3C02',
- ],
- 'AScriptIds' => [
- 'title' => '可编程脚本列表',
- 'description' => 'The AScript rule IDs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The AScript rule ID.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AScriptId' => [
- 'title' => '脚本id',
- 'description' => 'The AScript rule ID.'."\n",
- 'type' => 'string',
- 'example' => 'as-xvq5igaa7uv6vr****',
- ],
- ],
- ],
- ],
- ],
+ [
+ 'apiName' => 'LoadBalancerLeaveSecurityGroup',
+ 'description' => '',
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'alb:LoadBalancerLeaveSecurityGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ [
+ 'apiName' => 'StartListener',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:StartListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
- [
- 'errorCode' => 'ResourceQuotaExceeded.AScriptsNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
+ ],
+ ],
+ [
+ 'apiName' => 'ListTagResources',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListTagResources',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securityPolicyId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
],
- [
- 'errorCode' => 'ResourceQuotaExceeded.AScriptsTotalLinesNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
+ ],
+ ],
+ [
+ 'apiName' => 'DisableLoadBalancerIpv6Internet',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:DisableLoadBalancerIpv6Internet',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
],
- [
- 'errorCode' => 'ResourceQuotaExceeded.AScriptLinesNum',
- 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
+ ],
+ ],
+ [
+ 'apiName' => 'ListListeners',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListListeners',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"5c607642-535e-4e06-9d77-df53049b****\\",\\n \\"RequestId\\": \\"BF0FE763-9603-558F-A55B-0F4******\\",\\n \\"AScriptIds\\": [\\n {\\n \\"AScriptId\\": \\"as-xvq5igaa7uv6vr****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<CreateAScriptsResponse>\\n <JobId>5c607642-535e-4e06-9d77-df53049b****</JobId>\\n <RequestId>BF0FE763-9603-558F-A55B-0F4B9A3E3C02</RequestId>\\n <AScriptIds>\\n <AScriptId>as-xvq5igaa7uv6vr****</AScriptId>\\n </AScriptIds>\\n</CreateAScriptsResponse>","errorExample":""}]',
- 'title' => 'CreateAScripts',
- 'description' => '### [](#)Prerequisites'."\n"
- ."\n"
- .'* A standard or WAF-enabled Application Load Balancer (ALB) instance is created. For more information, see [CreateLoadBalancer](~~214358~~).'."\n"
- ."\n"
- .'### [](#)Usage notes'."\n"
- ."\n"
- .'**CreateAScripts** an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAScripts](~~472574~~) operation to query the status of a script.'."\n"
- ."\n"
- .'* If the script is in the **Creating** state, the script is being created.'."\n"
- .'* If the script is in the **Available**, the script is created.'."\n",
- ],
- 'DeleteAScripts' => [
- 'summary' => 'Deletes AScript rules.',
- 'methods' => [
- 'get',
- 'post',
+ [
+ 'apiName' => 'ListAclRelations',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListAclRelations',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#AclId}'],
+ ],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ [
+ 'apiName' => 'EnableLoadBalancerIpv6Internet',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:EnableLoadBalancerIpv6Internet',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'alb:AddressType', 'validationType' => 'always'],
+ ],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'UpdateRuleAttribute',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:UpdateRuleAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ],
],
],
- 'operationType' => 'write',
- 'deprecated' => false,
- 'systemTags' => [
+ [
+ 'apiName' => 'DeleteAScripts',
+ 'description' => '',
'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteAScripts',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
],
- 'parameters' => [
- [
- 'name' => 'ClientToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '幂等标识',
- 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
- ."\n"
- .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'f516e84e-fc0c-4c2d-a461-6cd774a84dbd',
+ [
+ 'apiName' => 'CreateServerGroup',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'alb:ServerGroupProtocol', 'validationType' => 'always'],
+ ],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/*'],
],
],
- [
- 'name' => 'DryRun',
- 'in' => 'query',
- 'schema' => [
- 'title' => ' 是否只预检此次请求',
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
- .'* **false**(default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
+ ],
+ [
+ 'apiName' => 'UnTagResources',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:UnTagResources',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#AclId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'],
],
],
- [
- 'name' => 'AScriptIds',
- 'in' => 'query',
- 'style' => 'repeatList',
- 'schema' => [
- 'title' => '脚本id列表',
- 'description' => 'The AScript rule IDs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The AScript rule ID.'."\n"
- ."\n"
- .'You can delete up to four AScript rules at a time.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'as-123',
- ],
- 'required' => true,
- 'maxItems' => 10,
- 'minItems' => 1,
+ ],
+ [
+ 'apiName' => 'CreateHealthCheckTemplate',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateHealthCheckTemplate',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/*'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The AScript rules that are deleted.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'JobId' => [
- 'title' => '异步任务Id',
- 'description' => 'The asynchronous task ID.'."\n",
- 'type' => 'string',
- 'example' => '03cf3fe1-ab37-479b-92a6-b481d762****',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '1B7B7695-3596-50C8-B739-030C6C685E61',
- ],
- ],
+ [
+ 'apiName' => 'StopListener',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:StopListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'ResourceNotFound.AScript',
- 'errorMessage' => 'The specified resource %s is not found.',
+ [
+ 'apiName' => 'DeleteLoadBalancer',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteLoadBalancer',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'DeleteAcl',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteAcl',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'CreateListener',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [
+ ['conditionKey' => 'alb:ListenerProtocol', 'validationType' => 'always'],
],
- [
- 'errorCode' => 'IncorrectStatus.Listener',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
],
- [
- 'errorCode' => 'OperationDenied.CrossListenerAScripts',
- 'errorMessage' => 'The operation is not allowed because of %s',
+ ],
+ ],
+ [
+ 'apiName' => 'DeleteServerGroup',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"03cf3fe1-ab37-479b-92a6-b481d762****\\",\\n \\"RequestId\\": \\"1B7B7695-3596-50C8-B739-030C******\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteAScriptsResponse>\\n <JobId>03cf3fe1-ab37-479b-92a6-b481d762****</JobId>\\n <RequestId>1B7B7695-3596-50C8-B739-030C6C685E61</RequestId>\\n</DeleteAScriptsResponse>","errorExample":""}]',
- 'title' => 'DeleteAScripts',
- 'description' => '**DeleteAScripts** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListAScripts](~~472574~~) operation to query the status of the task:'."\n"
- ."\n"
- .'* If an AScript rule is in the **Deleting** state, the AScript rule is being deleted.'."\n"
- .'* If an AScript rule cannot be found, the AScript rule is deleted.'."\n",
- ],
- 'ListAScripts' => [
- 'summary' => 'Queries AScript rules.',
- 'methods' => [
- 'get',
- 'post',
+ [
+ 'apiName' => 'TagResources',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:TagResources',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#AclId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'],
+ ],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ [
+ 'apiName' => 'ListAsynJobs',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListAsynJobs',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'ListAcls',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'alb:ListAcls',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/*'],
+ ],
],
],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
+ [
+ 'apiName' => 'GetLoadBalancerAttribute',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:GetLoadBalancerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ReplaceServersInServerGroup',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:ReplaceServersInServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListAScripts',
+ 'description' => '',
'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'alb:ListAScripts',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
],
- 'parameters' => [
- [
- 'name' => 'NextToken',
- 'in' => 'query',
- 'allowEmptyValue' => true,
- 'schema' => [
- 'title' => '标记当前开始读取的位置,置空表示从头开始',
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* You do not need to specify this parameter for the first request.****'."\n"
- .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
+ [
+ 'apiName' => 'GetListenerHealthStatus',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:GetListenerHealthStatus',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
- [
- 'name' => 'MaxResults',
- 'in' => 'query',
- 'allowEmptyValue' => true,
- 'schema' => [
- 'title' => '本次读取的最大数据记录数量',
- 'description' => 'The maximum number of entries to return.'."\n"
- ."\n"
- .'Valid values: **1** to **100**.'."\n"
- ."\n"
- .'Default value: **20**. If you do not specify this parameter, the default value is used.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '50',
+ ],
+ [
+ 'apiName' => 'ListLoadBalancers',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListLoadBalancers',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/*'],
+ ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
- [
- 'name' => 'ListenerIds',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The listener IDs. You can specify at most 20 listener IDs in each call.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The listener ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'lsn-9v9b8576m2laih****',
- ],
- 'required' => false,
+ ],
+ [
+ 'apiName' => 'DeleteRules',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DeleteRules',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
- [
- 'name' => 'AScriptIds',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The AScript rule IDs. You can specify at most 20 IDs in each call.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The rule ID.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'as-aznwocxofkakf7****',
- ],
- 'required' => false,
+ ],
+ [
+ 'apiName' => 'CreateAScripts',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'alb:CreateAScripts',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
],
],
- [
- 'name' => 'AScriptNames',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The AScript rule names. You can specify at most 10 names in each call.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The name of the AScript rule.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'test',
- ],
- 'required' => false,
+ ],
+ [
+ 'apiName' => 'ListServerGroups',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListServerGroups',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/*'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'Schema of Response'."\n",
- 'type' => 'object',
- 'properties' => [
- 'TotalCount' => [
- 'title' => 'TotalCount本次请求条件下的数据总量,此参数为可选参数,默认可不返回',
- 'description' => 'The total number of entries returned.'."\n"
- ."\n"
- .'> This parameter is optional. By default, this parameter is not returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1000',
- ],
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '2CA81429-F160-593A-8AB5-A2A9617845B9',
- ],
- 'NextToken' => [
- 'title' => '表示当前调用返回读取到的位置,空代表数据已经读取完毕',
- 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
- ."\n"
- .'* If **NextToken** is empty, no next page exists.'."\n"
- .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'MaxResults' => [
- 'title' => 'MaxResults本次请求所返回的最大记录条数',
- 'description' => 'The maximum number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '50',
- ],
- 'AScripts' => [
- 'title' => '可编程脚本列表',
- 'description' => 'The AScript rules.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The AScript rule.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AScriptId' => [
- 'title' => '脚本id',
- 'description' => 'The AScript rule ID.'."\n",
- 'type' => 'string',
- 'example' => 'as-aznwocxofkakf7****',
- ],
- 'AScriptName' => [
- 'title' => '脚本名称',
- 'description' => 'The name of the AScript rule.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- 'Enabled' => [
- 'title' => '是否启用',
- 'description' => 'Indicates whether the AScript rule is enabled. Valid values:'."\n"
- ."\n"
- .'* **true**'."\n"
- .'* **false**'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'ScriptContent' => [
- 'title' => '脚本内容',
- 'description' => 'The content of the AScript rule.'."\n",
- 'type' => 'string',
- 'example' => '{test}',
- ],
- 'AScriptStatus' => [
- 'title' => '脚本状态',
- 'description' => 'The status of the AScript rule. Valid values:'."\n"
- ."\n"
- .'* **Creating**'."\n"
- .'* **Available**'."\n"
- .'* **Configuring**'."\n"
- .'* **Deleting**'."\n",
- 'type' => 'string',
- 'example' => 'Available',
- ],
- 'ListenerId' => [
- 'title' => '监听id',
- 'description' => 'The listener ID.'."\n",
- 'type' => 'string',
- 'example' => 'lsn-t0w1m9r6suiwmc****',
- ],
- 'LoadBalancerId' => [
- 'title' => '实例id',
- 'description' => 'The Application Load Balancer (ALB) instance ID.'."\n",
- 'type' => 'string',
- 'example' => 'alb-vv9rg2ub31tyec****',
- ],
- ],
- ],
- ],
- ],
+ [
+ 'apiName' => 'ListTagKeys',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListTagKeys',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'Forbidden.LoadBalancer',
- 'errorMessage' => 'Authentication has failed for LoadBalancer.',
+ [
+ 'apiName' => 'CancelShiftLoadBalancerZones',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:CancelShiftLoadBalancerZones',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'DissociateAdditionalCertificatesFromListener',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'alb:DissociateAdditionalCertificatesFromListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListSecurityPolicyRelations',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'alb:ListSecurityPolicyRelations',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicy}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ApplyHealthCheckTemplateToServerGroup',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'alb:ApplyHealthCheckTemplateToServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthCheckTemplateId}'],
+ ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#serverGroupId}'],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1000,\\n \\"RequestId\\": \\"2CA81429-F160-593A-8AB5-A2A9617845B9\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 50,\\n \\"AScripts\\": [\\n {\\n \\"AScriptId\\": \\"as-aznwocxofkakf7****\\",\\n \\"AScriptName\\": \\"test\\",\\n \\"Enabled\\": true,\\n \\"ScriptContent\\": \\"{test}\\",\\n \\"AScriptStatus\\": \\"Available\\",\\n \\"ListenerId\\": \\"lsn-t0w1m9r6suiwmc****\\",\\n \\"LoadBalancerId\\": \\"alb-vv9rg2ub31tyec****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListAScriptsResponse>\\n <TotalCount>1000</TotalCount>\\n <RequestId>2CA81429-F160-593A-8AB5-A2A9617845B9</RequestId>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>50</MaxResults>\\n <AScripts>\\n <AScriptId>as-aznwocxofkakf7****</AScriptId>\\n <AScriptName>test</AScriptName>\\n <Enabled>true</Enabled>\\n <ScriptContent>{test}</ScriptContent>\\n <AScriptStatus>Available</AScriptStatus>\\n <ListenerId>lsn-t0w1m9r6suiwmc****</ListenerId>\\n <LoadBalancerId>alb-vv9rg2ub31tyec****</LoadBalancerId>\\n </AScripts>\\n</ListAScriptsResponse>","errorExample":""}]',
- 'title' => 'ListAScripts',
- ],
- ],
- 'endpoints' => [
- [
- 'regionId' => 'cn-qingdao',
- 'endpoint' => 'alb.cn-qingdao.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-beijing',
- 'endpoint' => 'alb.cn-beijing.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-zhangjiakou',
- 'endpoint' => 'alb.cn-zhangjiakou.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-zhengzhou-jva',
- 'endpoint' => 'alb.cn-zhengzhou-jva.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-wulanchabu',
- 'endpoint' => 'alb.cn-wulanchabu.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-hangzhou',
- 'endpoint' => 'alb.cn-hangzhou.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-shanghai',
- 'endpoint' => 'alb.cn-shanghai.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-nanjing',
- 'endpoint' => 'alb.cn-nanjing.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-fuzhou',
- 'endpoint' => 'alb.cn-fuzhou.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-shenzhen',
- 'endpoint' => 'alb.cn-shenzhen.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-heyuan',
- 'endpoint' => 'alb.cn-heyuan.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-guangzhou',
- 'endpoint' => 'alb.cn-guangzhou.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-chengdu',
- 'endpoint' => 'alb.cn-chengdu.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-wuhan-lr',
- 'endpoint' => 'alb.cn-wuhan-lr.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-hongkong',
- 'endpoint' => 'alb.cn-hongkong.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-northeast-1',
- 'endpoint' => 'alb.ap-northeast-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-northeast-2',
- 'endpoint' => 'alb.ap-northeast-2.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-southeast-1',
- 'endpoint' => 'alb.ap-southeast-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-southeast-2',
- 'endpoint' => 'alb.ap-southeast-2.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-southeast-3',
- 'endpoint' => 'alb.ap-southeast-3.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-southeast-5',
- 'endpoint' => 'alb.ap-southeast-5.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-southeast-6',
- 'endpoint' => 'alb.ap-southeast-6.aliyuncs.com',
- ],
- [
- 'regionId' => 'us-east-1',
- 'endpoint' => 'alb.us-east-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'us-west-1',
- 'endpoint' => 'alb.us-west-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'eu-west-1',
- 'endpoint' => 'alb.eu-west-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'eu-central-1',
- 'endpoint' => 'alb.eu-central-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-south-1',
- 'endpoint' => 'alb.ap-south-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'me-east-1',
- 'endpoint' => 'alb.me-east-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-hangzhou-finance',
- 'endpoint' => 'alb.cn-hangzhou.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-shanghai-finance-1',
- 'endpoint' => 'alb.cn-shanghai-finance-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-shenzhen-finance-1',
- 'endpoint' => 'alb.cn-shenzhen-finance-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-southeast-7',
- 'endpoint' => 'alb.ap-southeast-7.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-beijing-finance-1',
- 'endpoint' => 'alb.cn-beijing-finance-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'me-central-1',
- 'endpoint' => 'alb.me-central-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-heyuan-acdr-1',
- 'endpoint' => 'alb.cn-heyuan-acdr-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'na-south-1',
- 'endpoint' => 'alb.na-south-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'us-southeast-1',
- 'endpoint' => 'alb.us-southeast-1.aliyuncs.com',
],
- [
- 'regionId' => 'cn-wulanchabu-gic-1',
- 'endpoint' => 'alb.cn-wulanchabu-gic-1.aliyuncs.com',
+ 'resourceTypes' => [
+ ['validationType' => 'always', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'always', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'],
+ ['validationType' => 'conditional', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/*'],
+ ['validationType' => 'conditional', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/*'],
+ ['validationType' => 'conditional', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/*'],
+ ['validationType' => 'conditional', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/*'],
+ ['validationType' => 'always', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#HealthCheckTemplatesId}'],
+ ['validationType' => 'always', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthchecktemplateId}'],
+ ['validationType' => 'always', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:ecs/{#ecsId}'],
+ ['validationType' => 'always', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'],
+ ['validationType' => 'always', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'],
+ ['validationType' => 'conditional', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'],
+ ['validationType' => 'conditional', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'],
+ ['validationType' => 'conditional', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'],
+ ['validationType' => 'always', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/*'],
+ ['validationType' => 'always', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicy}'],
],
],
];