summaryrefslogtreecommitdiff
path: root/data/en_us/gwlb
diff options
context:
space:
mode:
authorZhineng Li <[email protected]>2026-02-13 10:54:11 +0800
committerZhineng Li <[email protected]>2026-02-13 10:54:11 +0800
commit7347bac4ab7e136157fc94777e6cf87ef9e08599 (patch)
tree0dec367dac6e152161a6f7cc0dba6ebbef1f34a2 /data/en_us/gwlb
downloadacs-metadata-full-7347bac4ab7e136157fc94777e6cf87ef9e08599.tar.gz
acs-metadata-full-7347bac4ab7e136157fc94777e6cf87ef9e08599.zip
Diffstat (limited to 'data/en_us/gwlb')
-rw-r--r--data/en_us/gwlb/2024-04-15/api-docs.php5578
1 files changed, 5578 insertions, 0 deletions
diff --git a/data/en_us/gwlb/2024-04-15/api-docs.php b/data/en_us/gwlb/2024-04-15/api-docs.php
new file mode 100644
index 0000000..6504567
--- /dev/null
+++ b/data/en_us/gwlb/2024-04-15/api-docs.php
@@ -0,0 +1,5578 @@
+<?php return [
+ 'version' => '1.0',
+ 'info' => [
+ 'style' => 'RPC',
+ 'product' => 'Gwlb',
+ 'version' => '2024-04-15',
+ ],
+ 'directories' => [
+ [
+ 'id' => 198458,
+ 'title' => 'Region and zone management',
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeRegions',
+ 'DescribeZones',
+ ],
+ ],
+ [
+ 'id' => 198461,
+ 'title' => 'Gateway Load Balancer instances',
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateLoadBalancer',
+ 'UpdateLoadBalancerAttribute',
+ 'UpdateLoadBalancerZones',
+ 'DeleteLoadBalancer',
+ 'ListLoadBalancers',
+ 'GetLoadBalancerAttribute',
+ ],
+ ],
+ [
+ 'id' => 198468,
+ 'title' => 'Server groups',
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateServerGroup',
+ 'UpdateServerGroupAttribute',
+ 'DeleteServerGroup',
+ 'AddServersToServerGroup',
+ 'RemoveServersFromServerGroup',
+ 'ListServerGroups',
+ 'ListServerGroupServers',
+ ],
+ ],
+ [
+ 'id' => 198476,
+ 'title' => 'Listeners',
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateListener',
+ 'UpdateListenerAttribute',
+ 'DeleteListener',
+ 'ListListeners',
+ 'GetListenerAttribute',
+ 'GetListenerHealthStatus',
+ ],
+ ],
+ [
+ 'id' => 198483,
+ 'title' => 'Tags',
+ 'type' => 'directory',
+ 'children' => [
+ 'TagResources',
+ 'UntagResources',
+ 'ListTagResources',
+ ],
+ ],
+ [
+ 'id' => 198487,
+ 'title' => 'Resource groups',
+ 'type' => 'directory',
+ 'children' => [
+ 'MoveResourceGroup',
+ ],
+ ],
+ ],
+ 'components' => [
+ 'schemas' => [],
+ ],
+ 'apis' => [
+ 'DescribeRegions' => [
+ 'summary' => 'Queries the most recent region list of Gateway Load Balancer (GWLB).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '222561',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbM7ALO6',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AcceptLanguage',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The supported language. Valid values:'."\n"
+ ."\n"
+ .'* **zh-CN**: Chinese'."\n"
+ .'* **en-US** (default): English'."\n"
+ .'* **ja**: Japanese'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'zh-CN',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Regions' => [
+ 'description' => 'A list of regions.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The details about the region.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'LocalName' => [
+ 'description' => 'The region name.'."\n",
+ 'type' => 'string',
+ 'example' => 'China (Hangzhou)',
+ ],
+ 'RegionEndpoint' => [
+ 'description' => 'The region endpoint.'."\n",
+ 'type' => 'string',
+ 'example' => 'gwlb.cn-hangzhou.aliyuncs.com',
+ ],
+ 'RegionId' => [
+ 'description' => 'The region ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '162FCE8D-CEEC-5083-90BF-B45D8C4F81FB',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"China (Hangzhou)\\",\\n \\"RegionEndpoint\\": \\"gwlb.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ],\\n \\"RequestId\\": \\"162FCE8D-CEEC-5083-90BF-B45D8C4F81FB\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeRegions',
+ ],
+ 'DescribeZones' => [
+ 'summary' => 'Queries the most recent zone list of Gateway Load Balancer (GWLB).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '222562',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbHRNRPI',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AcceptLanguage',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The supported language. Valid values:'."\n"
+ ."\n"
+ .'* **zh-CN**: Chinese'."\n"
+ .'* **en-US** (default): English'."\n"
+ .'* **ja**: Japanese'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'zh-CN',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C605F7E-D0F6-54E2-B004-F9B132F0D8B2',
+ ],
+ 'Zones' => [
+ 'description' => 'A list of zones.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the zone.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'LocalName' => [
+ 'description' => 'The zone name.'."\n",
+ 'type' => 'string',
+ 'example' => 'Hangzhou Zone G',
+ ],
+ 'ZoneId' => [
+ 'description' => 'The zone ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-g',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C605F7E-D0F6-54E2-B004-F9B132F0D8B2\\",\\n \\"Zones\\": [\\n {\\n \\"LocalName\\": \\"Hangzhou Zone G\\",\\n \\"ZoneId\\": \\"cn-hangzhou-g\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeZones',
+ ],
+ 'CreateLoadBalancer' => [
+ 'summary' => 'Creates a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '221915',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbHRNRPI',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AddressIpVersion',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The IP version. Valid values:'."\n"
+ ."\n"
+ .'* **Ipv4** (default): IPv4'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'IPv4',
+ 'default' => 'Ipv4',
+ 'enum' => [],
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerName',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The GWLB instance 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' => 'testGwlbName',
+ ],
+ ],
+ [
+ 'name' => 'VpcId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The virtual private cloud (VPC) ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'vpc-uf6qcgpv22ttrnnjh****',
+ ],
+ ],
+ [
+ 'name' => 'ZoneMappings',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The mappings between zones and vSwitches. You must specify at least one zone. You can specify at most 20 zones. If the region supports two or more zones, specify at least two zones.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone of a GWLB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'vsw-2f0eb020****',
+ ],
+ 'ZoneId' => [
+ 'description' => 'The zone ID. You can call the DescribeZones operation to query the most recent zone list.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou-a',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => true,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The tags that are added to the instance.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag. You can specify up to 20 tags in each call.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key. The tag key cannot be an empty string.'."\n"
+ ."\n"
+ .'It can be up to 128 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testTagKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value. It can be up to 256 characters in length and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testTagValue',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The resource group ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'rg-acfmwbufq6q3****',
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'dryRun标记',
+ 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '幂等token',
+ 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-426655440000',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'LoadBalancerId' => [
+ 'description' => 'The GWLB instance ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'gwlb-9njtjmqt7zfcqm****',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '00B19438-66BB-58C3-8C2F-DA5B6F95CBDA',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'DuplicatedParam.ZoneId',
+ 'errorMessage' => 'The param of ZoneId is duplicated.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.VSwitchNotSupportIpv6',
+ 'errorMessage' => 'The operation is not allowed because of VSwitchNotSupportIpv6.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotEnough.VSwitchIp',
+ 'errorMessage' => 'The specified resource of VSwitchIp is not enough.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.VSwitchId',
+ 'errorMessage' => 'The param of VSwitchId is duplicated.',
+ ],
+ [
+ 'errorCode' => 'IllegalParamSize.ZoneMappings',
+ 'errorMessage' => 'The param size of ZoneMappings is illegal.',
+ ],
+ [
+ 'errorCode' => 'Mismatch.ZoneIdAndVSwitchId',
+ 'errorMessage' => 'The ZoneId and VSwitchId are mismatched.',
+ ],
+ [
+ 'errorCode' => 'QuotaExceeded.LoadBalancersNum',
+ 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.TagKey',
+ 'errorMessage' => 'The param of %s is duplicated.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.TagKey',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'asynchronous',
+ 'callback' => 'Gwlb::2024-04-15::GetLoadBalancerAttribute',
+ 'callbackInterval' => 3000,
+ 'maxCallbackTimes' => 100,
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"LoadBalancerId\\": \\"gwlb-9njtjmqt7zfcqm****\\",\\n \\"RequestId\\": \\"00B19438-66BB-58C3-8C2F-DA5B6F95CBDA\\"\\n}","type":"json"}]',
+ 'title' => 'CreateLoadBalancer',
+ 'description' => '**Ensure that you fully understand the billing methods and [pricing](~~2806160~~) of GWLB before calling this operation.**'."\n"
+ ."\n"
+ .'* When you create a GWLB instance, the service-linked role AliyunServiceRoleForGwlb is automatically created.'."\n"
+ ."\n"
+ .'* **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](~~2853555~~) operation to query the status of a GWLB instance.'."\n"
+ ."\n"
+ .' * If the GWLB instance is in the **Provisioning** state, the GWLB instance is being created.'."\n"
+ .' * If the GWLB instance is in the **Active** state, the GWLB instance is created.'."\n",
+ ],
+ 'UpdateLoadBalancerAttribute' => [
+ 'summary' => 'Updates the attributes of a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '221916',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbHRNRPI',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The GWLB instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'gwlb-9njtjmqt7zfcqm****',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerName',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The GWLB instance 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' => 'testGwlbName',
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'dryRun标记',
+ 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-426655440000',
+ ],
+ ],
+ [
+ 'name' => 'TrafficMode',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'Specifies the traffic processing mode. Valid values:'."\n"
+ ."\n"
+ .'* **LoadBalance**: load balancing mode. In this mode, GWLB forwards traffic to backend servers.'."\n"
+ .'* **ByPass**: bypass mode. GWLB returns traffic directly to the GWLB endpoint instead of forwarding the traffic to backend servers.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'LoadBalance',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'B956C629-0E8C-5EFF-BAC1-B0E3A8C5CBDD',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => 'ResourceNotFound.LoadBalancer',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'asynchronous',
+ 'callback' => 'Gwlb::2024-04-15::GetLoadBalancerAttribute',
+ 'callbackInterval' => 3000,
+ 'maxCallbackTimes' => 100,
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B956C629-0E8C-5EFF-BAC1-B0E3A8C5CBDD\\"\\n}","type":"json"}]',
+ 'title' => 'UpdateLoadBalancerAttribute',
+ 'description' => '* UpdateLoadBalancerAttribute 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 operation to query the status of the GWLB instance.'."\n"
+ ."\n"
+ .' * If the GWLB instance is in the Configuring state, the GWLB instance is being modified.'."\n"
+ .' * If the GWLB instance is in the Active state, the GWLB instance is modified.'."\n",
+ ],
+ 'UpdateLoadBalancerZones' => [
+ 'summary' => 'Updates the zones of a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '221912',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb23BWZ4',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The GWLB instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'gwlb-9njtjmqt7zfcqm****',
+ ],
+ ],
+ [
+ 'name' => 'ZoneMappings',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The mappings between zones and vSwitches. You must specify at least one zone. You can specify at most 20 zones. If the region supports two or more zones, we recommend that you select two or more zones.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone of a GWLB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'vsw-bp1n75pbs77v5q6p3****',
+ ],
+ 'ZoneId' => [
+ 'description' => 'The zone ID. You can call the DescribeZones operation to query the most recent zone list.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou-h',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => true,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'dryRun标记',
+ 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '幂等token',
+ 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-42665544****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'ED8905C2-A4F6-5E43-87B7-6A5DC8757146',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'OperationDenied.VSwitchChangeNotSupport',
+ 'errorMessage' => 'The operation is not allowed because of VSwitchChangeNotSupport.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.VSwitchId',
+ 'errorMessage' => 'The param of VSwitchId is duplicated.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.ZoneId',
+ 'errorMessage' => 'The param of ZoneId is duplicated.',
+ ],
+ [
+ 'errorCode' => 'IllegalParamSize.ZoneMappings',
+ 'errorMessage' => 'The param size of ZoneMappings is illegal.',
+ ],
+ [
+ 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
+ 'errorMessage' => 'The business status of %s [%s] is incorrect.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.LoadBalancer',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ [
+ 'errorCode' => 'Mismatch.ZoneIdAndVSwitchId',
+ 'errorMessage' => 'The ZoneId and VSwitchId are mismatched.',
+ ],
+ [
+ 'errorCode' => 'MissingParam.LoadBalancerId',
+ 'errorMessage' => 'The param of LoadBalancerId is missing.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.VSwitchNotSupportIpv6',
+ 'errorMessage' => 'The operation is not allowed because of VSwitchNotSupportIpv6.',
+ ],
+ [
+ 'errorCode' => 'ResourceAlreadyAssociated.GwlbeAssociated',
+ 'errorMessage' => 'The specified resource of %s is already associated.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotEnough.VSwitchIp',
+ 'errorMessage' => 'The specified resource of VSwitchIp is not enough.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.LoadBalancer',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'asynchronous',
+ 'callback' => 'Gwlb::2024-04-15::GetLoadBalancerAttribute',
+ 'callbackInterval' => 3000,
+ 'maxCallbackTimes' => 100,
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"ED8905C2-A4F6-5E43-87B7-6A5DC8757146\\"\\n}","type":"json"}]',
+ 'title' => 'UpdateLoadBalancerZones',
+ 'description' => '**Ensure that you fully understand the billing methods and [pricing](~~2806160~~) of GWLB before calling this operation.**'."\n"
+ ."\n"
+ .'**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 the [GetLoadBalancerAttribute](~~2853555~~) operation to query the status of the GWLB instance.'."\n"
+ ."\n"
+ .'* If the GWLB instance is in the **Configuring** state, the GWLB instance is being modified.'."\n"
+ .'* If the GWLB instance is in the **Active** state, the GWLB instance is modified.'."\n"
+ ."\n"
+ .'> Before you initiate a call, ensure that all zones, including the current zones and the zones that you want to add, are specified. The zones that you do not specify are deleted. You can call the GetLoadBalancerAttribute operation to query the current zones of your GWLB instance.'."\n",
+ ],
+ 'DeleteLoadBalancer' => [
+ 'summary' => 'Deletes a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '221917',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb12YEWG',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The GWLB instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'gwlb-9njtjmqt7zfcqm****',
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'dryRun标记',
+ 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '幂等token',
+ 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-426655440000',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '37907828-01AB-5AC3-9DDE-25D419091D54',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => 'MissingParam.LoadBalancerId',
+ 'errorMessage' => 'The param of LoadBalancerId is missing.',
+ ],
+ [
+ 'errorCode' => 'ResourceAlreadyAssociated.GwlbeAssociated',
+ 'errorMessage' => 'The specified resource of %s is already associated.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.LoadBalancer',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"37907828-01AB-5AC3-9DDE-25D419091D54\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteLoadBalancer',
+ ],
+ 'ListLoadBalancers' => [
+ 'summary' => 'Queries Gateway Load Balancer (GWLB) instances.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '221914',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbHRNRPI',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ZoneIds',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The zone IDs. You can query at most 20 zone IDs in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The zone ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing-h',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'VpcIds',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '专有网络唯一标识',
+ 'description' => 'The virtual private cloud (VPC) IDs. You can query at most 20 IDs in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The VPC ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vpc-bp1xuejaht4o7yhh2****',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'AddressIpVersion',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '协议类型',
+ 'description' => 'The IP version of the NLB instance. Valid values:'."\n"
+ ."\n"
+ .'* **Ipv4**'."\n"
+ ."\n"
+ .'Enumeration values:'."\n"
+ ."\n"
+ .'* IPv4: IPv4'."\n"
+ .'* DualStack: dual-stack'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 'IPv4' => 'IPv4',
+ 'DualStack' => 'DualStack',
+ ],
+ 'example' => 'IPv4',
+ 'enum' => [],
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerStatus',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '实例状态',
+ 'description' => 'The GWLB instance status. Valid values:'."\n"
+ ."\n"
+ .'* **Active**: The GWLB instance is running.'."\n"
+ .'* **Inactive**: The GWLB instance is disabled. Listeners of GWLB instances in the Inactive state do not forward traffic.'."\n"
+ .'* **Provisioning**: The GWLB instance is being created.'."\n"
+ .'* **Configuring**: The GWLB instance is being modified.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Active',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerBusinessStatus',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '实例业务状态',
+ 'description' => 'The business status of the GWLB instance. Valid values:'."\n"
+ ."\n"
+ .'* **Normal**: running as expected'."\n"
+ .'* **FinancialLocked**: locked due to overdue payments'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Normal',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerNames',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '负载均衡实例名称',
+ 'description' => 'The GWLB instance names. You can specify at most 20 GWLB instance names in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The GWLB instance name.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testGwlbName',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '企业资源组标识',
+ 'description' => 'The resource group ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'rg-aek2htf5qsyrn****',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerIds',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '实例列表',
+ 'description' => 'The GWLB instance IDs. You can query at most 20 GWLB instances in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The GWLB instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'gwlb-cp6prgqy40hols****',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'TrafficMode',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'Specifies the traffic processing mode. Valid values:'."\n"
+ ."\n"
+ .'* **LoadBalance**: load balancing mode. GWLB continues to forward traffic to backend servers.'."\n"
+ .'* **ByPass**: bypass mode. GWLB directly returns traffic to the GWLB endpoint without forwarding it to the backend servers.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'LoadBalance',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '标签',
+ 'description' => 'The tags. You can specify up to 20 tags in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key. You cannot specify an empty string as a tag key.'."\n"
+ ."\n"
+ .'The tag key can be up to 128 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testTagKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value. It can be up to 256 characters in length and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testTagValue',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'NextToken',
+ 'in' => 'formData',
+ 'schema' => [
+ '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 a value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'WyJyb290IiwibiIsIm4iLDEsMCwxNjg1MDY1NTgyNzYwLCI2NDcwMGY2ZTc2Zjc0MWFiZGEyZjQyNzc4ZDk2MmJkOTk3ZGZmM2Nm****',
+ ],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '分页大小',
+ 'description' => 'The number of entries per page. Valid values: 1 to 1000. Default value: 20.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '20',
+ ],
+ ],
+ [
+ 'name' => 'Skip',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The number of entries to be skipped in the call.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'LoadBalancers' => [
+ 'description' => 'The GWLB instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the GWLB instances.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'AddressIpVersion' => [
+ 'description' => 'The IP version. Valid values:'."\n"
+ ."\n"
+ .'* **IPv4**'."\n",
+ 'type' => 'string',
+ 'example' => 'IPv4',
+ ],
+ 'CreateTime' => [
+ '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' => '2024-08-05 18:24:07',
+ ],
+ 'LoadBalancerBusinessStatus' => [
+ 'description' => 'The business status of the GWLB instance. Valid values:'."\n"
+ ."\n"
+ .'* **Normal**: running as expected'."\n"
+ .'* **FinancialLocked**: locked due to overdue payments'."\n",
+ 'type' => 'string',
+ 'example' => 'Normal',
+ ],
+ 'LoadBalancerId' => [
+ 'description' => 'The GWLB instance ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'gwlb-9njtjmqt7zfcqm****'."\n",
+ ],
+ 'LoadBalancerName' => [
+ 'description' => 'The GWLB instance 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',
+ 'example' => 'testGwlbName',
+ ],
+ 'LoadBalancerStatus' => [
+ 'description' => 'The GWLB instance status. Valid values:'."\n"
+ ."\n"
+ .'* **Active**: The GWLB instance is running.'."\n"
+ .'* **Inactive**: The GWLB instance is disabled. Listeners of GWLB instances in the Inactive state do not forward traffic.'."\n"
+ .'* **Provisioning**: The GWLB instance is being created.'."\n"
+ .'* **Configuring**: The GWLB instance is being modified.'."\n",
+ 'type' => 'string',
+ 'example' => 'Active',
+ ],
+ 'ResourceGroupId' => [
+ 'description' => 'The resource group ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'rg-aek26jasguy****',
+ ],
+ 'Tags' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key. The tag key cannot be an empty string.'."\n"
+ ."\n"
+ .'The tag key can be up to 128 characters in length. The tag key cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'example' => 'testTagKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value. You can specify at most 20 tag values. The tag value cannot be an empty string.'."\n"
+ ."\n"
+ .'The tag value can be up to 128 characters in length. It must start with a letter and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'example' => 'testTagValue',
+ ],
+ ],
+ ],
+ ],
+ 'VpcId' => [
+ 'description' => 'The VPC ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'vpc-uf6eg0vndlsa84n7r****',
+ ],
+ 'ZoneMappings' => [
+ 'description' => 'The mappings between zones and vSwitches. You must specify at least one zone. You can specify at most 20 zones. If the region supports two or more zones, specify at least two zones.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the zones and vSwitches.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'LoadBalancerAddresses' => [
+ 'description' => 'The GWLB instance addresses.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the GWLB instance addresses.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EniId' => [
+ 'description' => 'The ID of the elastic network interface (ENI) used by the GWLB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'eni-bp17qv9zbzyqy629****',
+ ],
+ 'PrivateIpv4Address' => [
+ 'description' => 'The private IPv4 address.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168.XX.XX',
+ ],
+ ],
+ ],
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch in the zone. By default, each zone contains one vSwitch and one subnet.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-2zemule5dz7okwqfv****',
+ ],
+ 'ZoneId' => [
+ 'description' => 'The zone ID. You can call the DescribeZones operation to query the most recent zone list.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-g',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'MaxResults' => [
+ 'description' => 'The number of entries per page. Valid values: 1 to 1000. Default value: 20.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ '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"
+ .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n",
+ 'type' => 'string',
+ 'example' => 'CAESGgoSChAKDGNvbXBsZXRlVGltZRABCgQiAggAGAAiQAoJAIldD2UAAAAACjMDLgAAADFTNzMyZDMwMzAzMDY5NzQzNDM0NmI3NzM2NjUzNzc4NzM2YTc0NjYzOTYz****',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '378A80E9-4262-5D8E-8D62-0969E52D7358',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"LoadBalancers\\": [\\n {\\n \\"AddressIpVersion\\": \\"IPv4\\",\\n \\"CreateTime\\": \\"2024-08-05T18:24:07Z\\",\\n \\"LoadBalancerBusinessStatus\\": \\"Normal\\",\\n \\"LoadBalancerId\\": \\"gwlb-9njtjmqt7zfcqm****\\",\\n \\"LoadBalancerName\\": \\"testGwlbName\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"ResourceGroupId\\": \\"rg-aek26jasguy****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"testTagKey\\",\\n \\"Value\\": \\"testTagValue\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-uf6eg0vndlsa84n7r****\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"EniId\\": \\"eni-bp17qv9zbzyqy629****\\",\\n \\"PrivateIpv4Address\\": \\"192.168.XX.XX\\"\\n }\\n ],\\n \\"VSwitchId\\": \\"vsw-2zemule5dz7okwqfv****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-g\\"\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"CAESGgoSChAKDGNvbXBsZXRlVGltZRABCgQiAggAGAAiQAoJAIldD2UAAAAACjMDLgAAADFTNzMyZDMwMzAzMDY5NzQzNDM0NmI3NzM2NjUzNzc4NzM2YTc0NjYzOTYz****\\",\\n \\"RequestId\\": \\"378A80E9-4262-5D8E-8D62-0969E52D7358\\",\\n \\"TotalCount\\": 100\\n}","type":"json"}]',
+ 'title' => 'ListLoadBalancers',
+ ],
+ 'GetLoadBalancerAttribute' => [
+ 'summary' => 'Queries the details of a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '221913',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbHRNRPI',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The GWLB instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'gwlb-9njtjmqt7zfcqm****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'AddressIpVersion' => [
+ 'description' => 'The protocol version. Valid values:'."\n"
+ ."\n"
+ .'* **Ipv4**: IPv4.'."\n",
+ 'type' => 'string',
+ 'example' => 'IPv4',
+ ],
+ 'CreateTime' => [
+ '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' => '2024-07-08T10:12:58Z',
+ ],
+ 'LoadBalancerBusinessStatus' => [
+ 'description' => 'The business status of the GWLB instance. Valid values:'."\n"
+ ."\n"
+ .'* **Normal**: running as expected'."\n"
+ .'* **FinancialLocked**: locked due to overdue payments'."\n",
+ 'type' => 'string',
+ 'example' => 'Normal',
+ ],
+ 'LoadBalancerId' => [
+ 'description' => 'The GWLB instance ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'gwlb-9njtjmqt7zfcqm****',
+ ],
+ 'LoadBalancerName' => [
+ 'description' => 'The GWLB instance 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',
+ 'example' => 'gwlb',
+ ],
+ 'LoadBalancerStatus' => [
+ 'description' => 'The GWLB instance status. Valid values:'."\n"
+ ."\n"
+ .'* **Active**: The GWLB instance is running.'."\n"
+ .'* **Inactive**: The GWLB instance is disabled. Listeners of GWLB instances in the Inactive state do not forward traffic.'."\n"
+ .'* **Provisioning**: The GWLB instance is being created.'."\n"
+ .'* **Configuring**: The GWLB instance is being modified.'."\n",
+ 'type' => 'string',
+ 'example' => 'Active',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'B6DC5DDC-9560-59BF-80FA-ED1E5CB417DF',
+ ],
+ 'ResourceGroupId' => [
+ 'description' => 'The resource group ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'rg-acfmx7pmxcy****',
+ ],
+ 'Tags' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key. The tag key cannot be an empty string.'."\n"
+ ."\n"
+ .'The tag key can be up to 128 characters in length. The tag key cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'example' => 'testTagKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value. The tag value can be up to 256 characters in length and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'example' => 'testTagValue',
+ ],
+ ],
+ ],
+ ],
+ 'VpcId' => [
+ 'description' => 'The VPC ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'vpc-k1aajsbwbaq4todet****',
+ ],
+ 'ZoneMappings' => [
+ 'description' => 'The mappings between zones and vSwitches. You must specify at least one zone. You can specify at most 20 zones. If the region supports two or more zones, specify at least two zones.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the zones and vSwitches.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'LoadBalancerAddresses' => [
+ 'description' => 'The GWLB instance addresses.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The details about the GWLB instance addresses.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EniId' => [
+ 'description' => 'The ID of the elastic network interface (ENI) used by the GWLB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'eni-bp1iahwz3rzgvltz****',
+ ],
+ 'PrivateIpv4Address' => [
+ 'description' => 'The private IPv4 address.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168.XX.XX',
+ ],
+ ],
+ ],
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone of a GWLB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-uf6v8l7d2f1k53xrl****',
+ ],
+ 'ZoneId' => [
+ 'description' => 'The zone ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-j',
+ ],
+ ],
+ ],
+ ],
+ 'TrafficMode' => [
+ 'description' => 'Traffic processing mode. Valid values:'."\n"
+ ."\n"
+ .'* **LoadBalance**: load balancing mode. GWLB forwards traffic to backend servers.'."\n"
+ .'* **ByPass**: bypass mode. GWLB directly returns traffic to the GWLB endpoint without forwarding it to the backend servers.'."\n",
+ 'type' => 'string',
+ 'example' => 'LoadBalance',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ResourceNotFound.LoadBalancer',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'MissingParam.LoadBalancerId',
+ 'errorMessage' => 'The param of LoadBalancerId is missing.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AddressIpVersion\\": \\"Ipv4\\",\\n \\"CreateTime\\": \\"2024-07-08T10:12:58Z\\",\\n \\"LoadBalancerBusinessStatus\\": \\"Normal\\",\\n \\"LoadBalancerId\\": \\"gwlb-9njtjmqt7zfcqm****\\",\\n \\"LoadBalancerName\\": \\"gwlb\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"RequestId\\": \\"B6DC5DDC-9560-59BF-80FA-ED1E5CB417DF\\",\\n \\"ResourceGroupId\\": \\"rg-acfmx7pmxcy****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"testTagKey\\",\\n \\"Value\\": \\"testTagValue\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-k1aajsbwbaq4todet****\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"EniId\\": \\"eni-bp1iahwz3rzgvltz****\\",\\n \\"PrivateIpv4Address\\": \\"192.168.XX.XX\\"\\n }\\n ],\\n \\"VSwitchId\\": \\"vsw-uf6v8l7d2f1k53xrl****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-j\\"\\n }\\n ],\\n \\"TrafficMode\\": \\"LoadBalance\\"\\n}","type":"json"}]',
+ 'title' => 'GetLoadBalancerAttribute',
+ ],
+ 'CreateServerGroup' => [
+ 'summary' => 'Creates a server group for a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '225035',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb88O4KB',
+ 'FEATUREslb98XMCW',
+ 'FEATUREslb4EL8LZ',
+ 'FEATUREslb5QFSS9',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupType',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '服务器组类型',
+ 'description' => 'The type of the server group. Valid values:'."\n"
+ ."\n"
+ .'* **Instance** (default): allows you to specify resources of the **Ecs**, **Eni**, or **Eci** type.'."\n"
+ .'* **Ip**: allows you to add servers by specifying their IP addresses.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Instance',
+ 'enum' => [
+ 'Instance',
+ 'Ip',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'ServerGroupName',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '服务器组名称',
+ 'description' => 'The server group name.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testServerGroupName',
+ ],
+ ],
+ [
+ 'name' => 'Protocol',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '后端服务器类型',
+ 'description' => 'The backend protocol. Valid value:'."\n"
+ ."\n"
+ .'* **GENEVE** (default)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 'GENEVE' => 'GENEVE',
+ ],
+ 'example' => 'GENEVE',
+ 'enum' => [
+ 'GENEVE',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Scheduler',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '会话保持类型',
+ 'description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **5TCH** (default): specifies consistent hashing that is based on the following factors: source IP address, destination IP address, source port, protocol, and destination port. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.'."\n"
+ .'* **3TCH**: specifies consistent hashing that is based on the following factors: source IP address, destination IP address, and protocol. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.'."\n"
+ .'* **2TCH**: specifies consistent hashing that is based on the following factors: source IP address and destination IP address. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '5TCH',
+ 'enum' => [
+ '5TCH',
+ '3TCH',
+ '2TCH',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'ServerFailoverMode',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'Specifies how GWLB processes requests over existing connections when a backend server is not running as expected. Valid values:'."\n"
+ ."\n"
+ .'* **NoRebalance** (default): GWLB continues to forward requests over existing connections to the unavailable backend server.'."\n"
+ .'* **Rebalance**: GWLB forwards requests over existing connections to the remaining healthy backend servers.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'NoRebalance',
+ 'enum' => [
+ 'NoRebalance',
+ 'Rebalance',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'VpcId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '服务器组所在vpc的id',
+ 'description' => 'The VPC ID.'."\n"
+ ."\n"
+ .'> If **ServerGroupType** is set to **Instance**, only servers in the specified VPC can be added to the server group.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'docRequired' => false,
+ 'example' => 'vpc-bp15zckdt37pq72zv****',
+ ],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '企业资源组id',
+ 'description' => 'The resource group ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'rg-atstuj3rtop****',
+ ],
+ ],
+ [
+ 'name' => 'ConnectionDrainConfig',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '连接优雅中断配置',
+ 'description' => 'The configurations of connection draining.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ConnectionDrainEnabled' => [
+ 'title' => '是否开启连接优雅中断',
+ 'description' => 'Specifies whether to enable connection draining. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ 'ConnectionDrainTimeout' => [
+ 'title' => '连接优雅中断超时时间',
+ 'description' => 'The timeout period of connection draining.'."\n"
+ ."\n"
+ .'Unit: seconds'."\n"
+ ."\n"
+ .'Valid values: **1** to **3600**.'."\n"
+ ."\n"
+ .'Default value: **300**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '300',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConfig',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '健康检查配置',
+ 'description' => 'The health check configurations.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckConnectPort' => [
+ 'title' => '健康检查使用的端口',
+ 'description' => 'The backend server port used for health checks.'."\n"
+ ."\n"
+ .'Valid values: **1** to **65535**.'."\n"
+ ."\n"
+ .'Default value: **80**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '80',
+ ],
+ 'HealthCheckConnectTimeout' => [
+ 'title' => '健康检查响应的最大超时时间',
+ 'description' => 'The maximum timeout period for a health check response.'."\n"
+ ."\n"
+ .'Unit: seconds.'."\n"
+ ."\n"
+ .'Valid values: **1** to **300**.'."\n"
+ ."\n"
+ .'Default value: **5**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '5',
+ ],
+ 'HealthCheckDomain' => [
+ 'title' => '健康检查的域名',
+ 'description' => 'The domain name used for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **$SERVER_IP** (default): the private IP address of a backend server.'."\n"
+ .'* **domain**: a domain name. The domain name must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), and periods (.).'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '$SERVER_IP',
+ ],
+ 'HealthCheckEnabled' => [
+ 'title' => '是否开启健康检查',
+ 'description' => 'Specifies whether to enable health checks. Valid values:'."\n"
+ ."\n"
+ .'* **true** (default)'."\n"
+ .'* **false**'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ 'HealthCheckHttpCode' => [
+ 'title' => '状态码,多个状态码用逗号分隔',
+ 'description' => 'The HTTP status codes that the system returns for health checks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The HTTP status codes returned for health checks. Multiple HTTP status codes are separated by commas (,). Valid values:'."\n"
+ ."\n"
+ .'* **http\\_2xx**'."\n"
+ .'* **http\\_3xx**'."\n"
+ .'* **http\\_4xx**'."\n"
+ .'* **http\\_5xx**'."\n"
+ ."\n"
+ .'Default value: **http\\_2xx**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'http_2xx',
+ 'enum' => [
+ 'http_2xx',
+ 'http_3xx',
+ 'http_4xx',
+ 'http_5xx',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'HealthCheckInterval' => [
+ 'title' => '健康检查时间间隔',
+ 'description' => 'The interval at which health checks are performed.'."\n"
+ ."\n"
+ .'Unit: seconds.'."\n"
+ ."\n"
+ .'Valid values: **1** to **50**.'."\n"
+ ."\n"
+ .'Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ 'HealthCheckPath' => [
+ 'title' => '健康检查的path',
+ 'description' => 'The path used for health checks.'."\n"
+ ."\n"
+ .'It must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), and ampersands (&). The URL can also contain the following extended characters: \\_ ; ~ ! ( ) \\* \\[ ] @ $ ^ : \' , + ='."\n"
+ ."\n"
+ .'It must start with a forward slash (/).'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/test/index.html',
+ ],
+ 'HealthCheckProtocol' => [
+ 'title' => '健康检查协议类型',
+ 'description' => 'The protocol used for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **TCP** (default): GWLB performs TCP health checks by sending SYN packets to a backend server to check whether the port of the backend server is available to receive requests.'."\n"
+ .'* **HTTP**: GWLB performs HTTP health checks to check whether backend servers are healthy by sending GET requests which simulate access from browsers.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TCP',
+ 'enum' => [
+ 'TCP',
+ 'HTTP',
+ ],
+ ],
+ 'HealthyThreshold' => [
+ 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success',
+ '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: **2**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '2',
+ ],
+ 'UnhealthyThreshold' => [
+ 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail',
+ '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: **2**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '2',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '标签列表',
+ 'description' => 'The tag keys.'."\n"
+ ."\n"
+ .'You can specify at most 20 tags in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key. The tag key cannot be an empty string. The tag key can be up to 128 characters in length, and cannot start with `acs:` or `aliyun`. The tag key cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testTagKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value. The tag value can be up to 256 characters in length and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testTagValue',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '幂等token',
+ 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-42665544****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
+ ],
+ 'ServerGroupId' => [
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IllegalParam.HealthCheckProtocol',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ [
+ 'errorCode' => 'QuotaExceeded.ServerGroupsNum',
+ 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.TagKey',
+ 'errorMessage' => 'The param of %s is duplicated.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.TagKey',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.Vpc',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'asynchronous',
+ 'callback' => 'Gwlb::2024-04-15::ListServerGroups',
+ 'callbackInterval' => 3000,
+ 'maxCallbackTimes' => 100,
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\"\\n}","type":"json"}]',
+ '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 the ListServerGroups operation to query the status of the task.'."\n"
+ ."\n"
+ .'* If the server group is in the **Creating** state, it indicates that the server group is being created.'."\n"
+ .'* If the server group is in the **Available** state, it indicates that the server group is created.'."\n",
+ ],
+ 'UpdateServerGroupAttribute' => [
+ 'summary' => 'Updates the attributes of a server group.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '225039',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb3GOGI0',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '服务器组ID',
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ ],
+ [
+ 'name' => 'ServerGroupName',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '服务器组名称',
+ 'description' => 'The server group name.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testServerGroupName',
+ ],
+ ],
+ [
+ 'name' => 'Scheduler',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '会话保持类型',
+ 'description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **5TCH**: specifies consistent hashing that is based on the following factors: source IP address, destination IP address, source port, protocol, and destination port. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.'."\n"
+ .'* **3TCH**: indicates consistent hashing that is based on the following factors: source IP address, destination IP address, and protocol. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.'."\n"
+ .'* **2TCH**: specifies consistent hashing that is based on the following factors: source IP address and destination IP address. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '5TCH',
+ 'enum' => [
+ '5TCH',
+ '3TCH',
+ '2TCH',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'ServerFailoverMode',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'Specifies how GWLB processes requests over existing connections when a backend server is not running as expected. Valid values:'."\n"
+ ."\n"
+ .'* **NoRebalance**: GWLB continues to forward requests over existing connections to the unavailable backend server.'."\n"
+ .'* **Rebalance**: GWLB forwards requests over existing connections to the remaining healthy backend servers.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'NoRebalance',
+ 'enum' => [
+ 'NoRebalance',
+ 'Rebalance',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'ConnectionDrainConfig',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '连接优雅中断配置',
+ 'description' => 'The configurations of connection draining.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ConnectionDrainEnabled' => [
+ 'title' => '是否开启连接优雅中断',
+ 'description' => 'Specifies whether to enable connection draining. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ 'ConnectionDrainTimeout' => [
+ 'title' => '连接优雅中断超时时间',
+ 'description' => 'The timeout period of connection draining.'."\n"
+ ."\n"
+ .'Unit: seconds'."\n"
+ ."\n"
+ .'Valid values: 1 to 3600.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '300',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConfig',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '健康检查配置',
+ 'description' => 'The health check configuration.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckConnectPort' => [
+ 'title' => '健康检查使用的端口',
+ 'description' => 'The backend server port that is used for health checks.'."\n"
+ ."\n"
+ .'Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '80',
+ ],
+ 'HealthCheckConnectTimeout' => [
+ 'title' => '健康检查响应的最大超时时间',
+ 'description' => 'The maximum timeout period for a health check response.'."\n"
+ ."\n"
+ .'Unit: seconds.'."\n"
+ ."\n"
+ .'Valid values: **1** to **300**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '5',
+ ],
+ 'HealthCheckDomain' => [
+ 'title' => '健康检查的域名',
+ 'description' => 'The domain name used for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **$SERVER_IP**: the internal IP address of a backend server.'."\n"
+ .'* **domain**: a domain name. The domain name must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), and periods (.).'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '$SERVER_IP',
+ ],
+ 'HealthCheckEnabled' => [
+ 'title' => '是否开启健康检查',
+ 'description' => 'Specifies whether to enable health checks. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ 'HealthCheckHttpCode' => [
+ 'title' => '状态码,多个状态码用逗号分隔',
+ 'description' => 'The HTTP status codes that the system returns for health checks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The HTTP status codes to return for health checks. Separate multiple HTTP status codes with commas (,). Valid values:'."\n"
+ ."\n"
+ .'* **http\\_2xx**: HTTP 2xx status codes.'."\n"
+ .'* **http\\_3xx**: HTTP 3xx status codes.'."\n"
+ .'* **http\\_4xx**: HTTP 4xx status codes.'."\n"
+ .'* **http\\_5xx**: HTTP 5xx status codes.'."\n"
+ ."\n"
+ .'Default value: **http\\_2xx**'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'http_2xx',
+ 'enum' => [
+ 'http_2xx',
+ 'http_3xx',
+ 'http_4xx',
+ 'http_5xx',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'HealthCheckInterval' => [
+ 'title' => '健康检查时间间隔',
+ 'description' => 'The interval at which health checks are performed.'."\n"
+ ."\n"
+ .'Unit: seconds.'."\n"
+ ."\n"
+ .'Valid values: **1** to **50**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ 'HealthCheckPath' => [
+ 'title' => '健康检查的path',
+ 'description' => 'The URL 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 must start with a forward slash (/).'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/test/index.html',
+ ],
+ 'HealthCheckProtocol' => [
+ 'title' => '健康检查协议类型',
+ 'description' => 'The protocol that is used for health checks. Valid values:'."\n"
+ ."\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"
+ .'* **HTTP**: HTTP health checks simulate a process that uses a web browser to access resources by sending GET requests to an instance. These requests are used to check whether the instance is healthy.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TCP',
+ 'enum' => [
+ 'TCP',
+ 'HTTP',
+ ],
+ ],
+ 'HealthyThreshold' => [
+ 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success',
+ 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health check status of the backend server changes from **fail** to **success**.'."\n"
+ ."\n"
+ .'Valid values: **2** to **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '2',
+ ],
+ 'UnhealthyThreshold' => [
+ 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail',
+ 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health check status of the backend server changes from **success** to **fail**.'."\n"
+ ."\n"
+ .'Valid values: **2** to **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '2',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '幂等token',
+ 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-42665544****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IllegalParam.HealthCheckProtocol',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.ServerGroup',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.SchedulerNotConfigurable',
+ 'errorMessage' => 'The scheduling algorithm of server group is configurable only when TCP idle timeout of listener is default value.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.ServerGroup',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'asynchronous',
+ 'callback' => 'Gwlb::2024-04-15::ListServerGroups',
+ 'callbackInterval' => 3000,
+ 'maxCallbackTimes' => 100,
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\\\n\\"\\n}","type":"json"}]',
+ 'title' => 'UpdateServerGroupAttribute',
+ 'description' => '**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 operation to query the status of the task.'."\n"
+ ."\n"
+ .'* If the server group is in the **Configuring** state, the configuration of the server group is being modified.'."\n"
+ .'* If the server group is in the **Available** state, the configuration of the server group is modified.'."\n",
+ ],
+ 'DeleteServerGroup' => [
+ 'summary' => 'Deletes a server group from a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '225038',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb5QFSS9',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '服务器组ID',
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '幂等token',
+ 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-42665544****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IncorrectStatus.BackendServer',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ [
+ 'errorCode' => 'ResourceInUse.ServerGroup',
+ 'errorMessage' => 'The specified resource of %s is in use.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.ServerGroup',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.ServerGroup',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteServerGroup',
+ 'description' => 'You can delete server groups that are not associated with listeners.'."\n",
+ ],
+ 'AddServersToServerGroup' => [
+ 'summary' => 'Adds backend servers to the server group of a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '225056',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb3GOGI0',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ ],
+ [
+ 'name' => 'Servers',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The backend servers that you want to add.'."\n"
+ ."\n"
+ .'> You can add up to 200 backend servers in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The backend server.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Port' => [
+ 'title' => '服务器端口',
+ 'description' => 'The backend server port. Valid values:'."\n"
+ ."\n"
+ .'* **6081**'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '6081',
+ ],
+ 'ServerId' => [
+ 'title' => '服务器id',
+ 'description' => 'The backend server ID.'."\n"
+ ."\n"
+ .'* If the server group is of the **Instance** type, set this parameter to the IDs of resources of the **Ecs**, **Eni**, **Eci** type.'."\n"
+ .'* If the server group is of the **Ip** type, set ServerId to IP addresses.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-bp67acfmxazb4p****',
+ ],
+ 'ServerIp' => [
+ 'title' => '服务器ip',
+ 'description' => 'The IP address of the backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '192.168.XX.XX',
+ ],
+ 'ServerType' => [
+ 'title' => '服务器类型',
+ 'description' => 'The type of the backend server. Valid 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",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Ecs',
+ 'enum' => [
+ 'Ecs',
+ 'Eni',
+ 'Eci',
+ 'Ip',
+ ],
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => true,
+ 'maxItems' => 200,
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '幂等token',
+ 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n",
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Conflict.Server',
+ 'errorMessage' => 'The %s [%s] is conflict.',
+ ],
+ [
+ 'errorCode' => 'Mismatch.ServerType',
+ 'errorMessage' => 'The %s is mismatched for %s and %s.',
+ ],
+ [
+ 'errorCode' => 'ResourceInUse.IP',
+ 'errorMessage' => 'The specified resource of %s is in use.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.ServerIp',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.EcsNetworkType',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.Server',
+ 'errorMessage' => 'The param of %s is duplicated.',
+ ],
+ [
+ 'errorCode' => 'ResourceInUse.Eni',
+ 'errorMessage' => 'The specified resource of %s is in use.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.Eni',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.IP',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ [
+ 'errorCode' => 'Mismatch.IP',
+ 'errorMessage' => 'The %s is mismatched for %s and %s.',
+ ],
+ [
+ 'errorCode' => 'Mismatch.VpcId',
+ 'errorMessage' => 'The %s is mismatched for %s and %s.',
+ ],
+ [
+ 'errorCode' => 'QuotaExceeded.ServerGroupServersNum',
+ 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
+ ],
+ [
+ 'errorCode' => 'QuotaExceeded.ServerGroupAzServersNum',
+ 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.ServerGroup',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.Eni',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.Eci',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.ServerGroup',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.Ecs',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'asynchronous',
+ 'callback' => 'Gwlb::2024-04-15::ListServerGroupServers',
+ 'callbackInterval' => 3000,
+ 'maxCallbackTimes' => 100,
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]',
+ '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 operation to query the status of the 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 the ListServerGroupServers operation to query the status of the backend server.'."\n"
+ ."\n"
+ .'* If the backend server is in the **Adding** state, the backend server is being added to the server group.'."\n"
+ .'* If the backend server is in the **Available** state, the server is running.'."\n",
+ ],
+ 'RemoveServersFromServerGroup' => [
+ 'summary' => 'Removes backend servers from the server group of a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '225065',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb3GOGI0',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ ],
+ [
+ 'name' => 'Servers',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The backend servers that you want to remove.'."\n"
+ ."\n"
+ .'> You can remove at most 200 backend servers in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The backend server.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Port' => [
+ 'title' => '服务器端口',
+ 'description' => 'The port that is used by the backend server. Valid values:'."\n"
+ ."\n"
+ .'* **6081**'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '6081',
+ ],
+ 'ServerId' => [
+ 'title' => '服务器id',
+ 'description' => 'The backend server ID.'."\n"
+ ."\n"
+ .'* If the server group is of the **Instance** type, set this parameter to the IDs of servers of the **Ecs**, **Eni**, or **Eci** type.'."\n"
+ .'* If the server group is of the **Ip** type, set ServerId to IP addresses.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-bp67acfmxazb4p****',
+ ],
+ 'ServerIp' => [
+ 'title' => '服务器ip',
+ 'description' => 'The IP address of the backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '192.168.xxx.xxx'."\n",
+ ],
+ 'ServerType' => [
+ 'title' => '服务器类型',
+ 'description' => 'The type of the backend server. Valid 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",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Ecs',
+ 'enum' => [
+ 'Ecs',
+ 'Eni',
+ 'Eci',
+ 'Ip',
+ ],
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => true,
+ 'maxItems' => 200,
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '幂等token',
+ 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-42665544****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IncorrectStatus.BackendServer',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.ServerGroup',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.BackendServer',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.ServerGroup',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'asynchronous',
+ 'callback' => 'Gwlb::2024-04-15::ListServerGroupServers',
+ 'callbackInterval' => 3000,
+ 'maxCallbackTimes' => 100,
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]',
+ '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 the ListServerGroups operation 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 the ListServerGroupServers operation 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"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* If connection draining id enabled (**ConnectionDrainEnabled** set to true) for the server group of the backend server, the backend server that you remove enters the **Removing** state before entering the **Draining** state. When the connection draining timeout period (**ConnectionDrainTimeout**) ends, the backend server is removed from the server group.'."\n"
+ ."\n"
+ .'* You can add the backend server to the server group again before the connection draining timeout period ends. In this case, the status of the backend server changes from **Draining** to **Adding**. After the backend server is added to the server group, the backend server enters the **Available** state.'."\n",
+ ],
+ 'ListServerGroups' => [
+ 'summary' => 'Queries the server groups of a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '225041',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb5QFSS9',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupIds',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The server group IDs.'."\n"
+ ."\n"
+ .'You can specify at most 20 server group IDs in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'ServerGroupNames',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The server group names.'."\n"
+ ."\n"
+ .'You can specify at most 20 server group names in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The server group name.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testServerGroupName',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'ServerGroupType',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The server group type. Valid values:'."\n"
+ ."\n"
+ .'* **Instance**: allows you to specify resources of the **Ecs**, **Eni**, or **Eci** type.'."\n"
+ .'* **Ip**: allows you to add servers by specifying IP addresses.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Instance',
+ 'enum' => [
+ 'Instance',
+ 'Ip',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the resource group to which the instance belongs.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'rg-atstuj3rtop****',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The tag keys.'."\n"
+ ."\n"
+ .'You can specify at most 20 tags in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key. The tag key cannot be an empty string. The tag key can be up to 128 characters in length, and cannot start with `acs:` or `aliyun`. The tag key cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testTagKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value. The tag value can be up to 256 characters in length and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testTagValue',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'VpcId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '服务器组所在vpc的id',
+ 'description' => 'The VPC ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vpc-bp15zckdt37pq72zv****',
+ ],
+ ],
+ [
+ 'name' => 'NextToken',
+ 'in' => 'formData',
+ 'schema' => [
+ '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 a value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
+ ],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '分页大小',
+ 'description' => 'The number of entries per page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 1000.'."\n"
+ ."\n"
+ .'Default value: 20.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '20',
+ ],
+ ],
+ [
+ 'name' => 'Skip',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The number of entries to be skipped in the call.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'MaxResults' => [
+ 'description' => 'The number of entries per page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 1000.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'NextToken' => [
+ 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* If **NextToken** is empty, no next page exists.'."\n"
+ .'* If a value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n",
+ 'type' => 'string',
+ 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
+ ],
+ 'ServerGroups' => [
+ 'description' => 'The configurations of the server group.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The server group.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ConnectionDrainConfig' => [
+ 'description' => 'The configurations of connection draining.'."\n",
+ '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"
+ ."\n"
+ .'Unit: seconds'."\n"
+ ."\n"
+ .'Valid values: 1 to 3600.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '300',
+ ],
+ ],
+ ],
+ 'CreateTime' => [
+ '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' => '2024-08-05T18:24:07Z',
+ ],
+ 'HealthCheckConfig' => [
+ 'title' => '健康检查配置',
+ 'description' => 'The configuration of health checks.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckConnectPort' => [
+ 'title' => '健康检查使用的端口',
+ 'description' => 'The backend server port that is used for health checks.'."\n"
+ ."\n"
+ .'Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ ],
+ 'HealthCheckConnectTimeout' => [
+ 'title' => '健康检查响应的最大超时时间',
+ 'description' => 'The maximum timeout period of a health check.'."\n"
+ ."\n"
+ .'Unit: seconds'."\n"
+ ."\n"
+ .'Valid values: **1** to **300**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '5',
+ ],
+ 'HealthCheckDomain' => [
+ 'title' => '健康检查的域名',
+ 'description' => 'The domain name that is used for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **$SERVER_IP**: the internal IP address of a backend server.'."\n"
+ .'* **domain**: a domain name. The domain name must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), and periods (.).'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**.'."\n",
+ 'type' => 'string',
+ 'example' => '$SERVER_IP',
+ ],
+ 'HealthCheckEnabled' => [
+ 'title' => '是否开启健康检查',
+ 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'HealthCheckHttpCode' => [
+ 'title' => '状态码,多个状态码用逗号分隔',
+ 'description' => 'The HTTP status codes that the system returns for health checks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The HTTP status code to return for health checks. Separate multiple HTTP status codes with commas (,). Valid values:'."\n"
+ ."\n"
+ .'* **http\\_2xx**'."\n"
+ .'* **http\\_3xx**'."\n"
+ .'* **http\\_4xx**'."\n"
+ .'* **http\\_5xx**'."\n"
+ ."\n"
+ .'Default value: **http\\_2xx**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**.'."\n",
+ 'type' => 'string',
+ 'example' => 'http_2xx',
+ ],
+ ],
+ 'HealthCheckInterval' => [
+ 'title' => '健康检查时间间隔',
+ 'description' => 'The interval at which health checks are performed.'."\n"
+ ."\n"
+ .'Unit: seconds'."\n"
+ ."\n"
+ .'Valid values: **1** to **50**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ '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: ` - / . % ? # & `The URL must start with a forward slash (/).'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set **HealthCheckProtocol** to **HTTP**.'."\n",
+ 'type' => 'string',
+ 'example' => '/test/index.html',
+ ],
+ 'HealthCheckProtocol' => [
+ 'title' => '健康检查协议类型',
+ 'description' => 'The protocol that is used for health checks. Valid values:'."\n"
+ ."\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"
+ .'* **HTTP**: HTTP health checks simulate a process that uses a web browser to access resources by sending HEAD or GET requests to an instance. These requests are used to check whether the instance is healthy.'."\n",
+ 'type' => 'string',
+ 'example' => 'TCP',
+ ],
+ 'HealthyThreshold' => [
+ 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success',
+ '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",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'UnhealthyThreshold' => [
+ 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail',
+ '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",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ ],
+ ],
+ 'Protocol' => [
+ 'title' => '后端协议',
+ 'description' => 'The backend protocol. Valid values:'."\n"
+ ."\n"
+ .'* **GENEVE**.'."\n",
+ 'type' => 'string',
+ 'example' => 'GENEVE',
+ ],
+ 'RelatedLoadBalancerIds' => [
+ 'description' => 'The IDs of the GWLB instances that are associated with the server group.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the GWLB instance that is associated with the server group.'."\n",
+ 'type' => 'string',
+ 'example' => 'gwlb-cp6prgqy40hols****',
+ ],
+ ],
+ 'ResourceGroupId' => [
+ 'title' => '资源组id',
+ 'description' => 'The resource group ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'rg-atstuj3rtop****',
+ ],
+ 'Scheduler' => [
+ 'title' => '流量调度算法',
+ 'description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **5TCH**: indicates consistent hashing that is based on the following factors: source IP address, destination IP address, source port, protocol, and destination port. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.'."\n"
+ .'* **3TCH**: indicates consistent hashing that is based on the following factors: source IP address, destination IP address, and protocol. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.'."\n"
+ .'* **2TCH**: indicates consistent hashing that is based on the following factors: source IP address and destination IP address. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.'."\n",
+ 'type' => 'string',
+ 'example' => '5TCH',
+ ],
+ 'ServerCount' => [
+ 'description' => 'The number of server groups.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'ServerGroupId' => [
+ 'title' => '服务器组id',
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ 'ServerGroupName' => [
+ 'title' => '服务器组名称',
+ 'description' => 'The server group name.'."\n",
+ 'type' => 'string',
+ 'example' => 'testServerGroupName',
+ ],
+ '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**: allows you to specify servers of the **Ecs**, **Eni**, or **Eci** type.'."\n"
+ .'* **Ip**: allows you to add servers of by specifying IP addresses.'."\n",
+ 'type' => 'string',
+ 'example' => 'Instance',
+ ],
+ 'ServerFailoverMode' => [
+ 'description' => 'Specifies how GWLB processes requests over existing connections when a backend server is not running as expected. Valid values:'."\n"
+ ."\n"
+ .'* **NoRebalance**: GWLB continues to forward requests over existing connections to the unhealthy backend server.'."\n"
+ .'* **Rebalance**: GWLB forwards requests over existing connections to the remaining healthy backend servers.'."\n",
+ 'type' => 'string',
+ 'example' => 'NoRebalance',
+ ],
+ 'Tags' => [
+ 'title' => '标签',
+ 'description' => 'The tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key. The tag key cannot be an empty string. The tag key can be up to 128 characters in length, and cannot start with `acs:` or `aliyun`. The tag key cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'example' => 'testTagKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value. The tag value can be up to 256 characters in length and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'example' => 'testTagValue',
+ ],
+ ],
+ ],
+ ],
+ 'VpcId' => [
+ 'title' => '服务器组的vpcid',
+ 'description' => 'The VPC ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'vpc-bp15zckdt37pq72zv****',
+ ],
+ ],
+ ],
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroups\\": [\\n {\\n \\"ConnectionDrainConfig\\": {\\n \\"ConnectionDrainEnabled\\": false,\\n \\"ConnectionDrainTimeout\\": 300\\n },\\n \\"CreateTime\\": \\"2024-08-05T18:24:07Z\\",\\n \\"HealthCheckConfig\\": {\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckConnectTimeout\\": 5,\\n \\"HealthCheckDomain\\": \\"$SERVER_IP\\",\\n \\"HealthCheckEnabled\\": true,\\n \\"HealthCheckHttpCode\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckInterval\\": 10,\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"TCP\\",\\n \\"HealthyThreshold\\": 2,\\n \\"UnhealthyThreshold\\": 2\\n },\\n \\"Protocol\\": \\"GENEVE\\",\\n \\"RelatedLoadBalancerIds\\": [\\n \\"gwlb-cp6prgqy40hols****\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Scheduler\\": \\"5TCH\\",\\n \\"ServerCount\\": 2,\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"ServerGroupName\\": \\"testServerGroupName\\",\\n \\"ServerGroupStatus\\": \\"Available\\",\\n \\"ServerGroupType\\": \\"Instance\\",\\n \\"ServerFailoverMode\\": \\"NoRebalance\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"testTagKey\\",\\n \\"Value\\": \\"testTagValue\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\"\\n }\\n ],\\n \\"TotalCount\\": 1\\n}","type":"json"}]',
+ 'title' => 'ListServerGroups',
+ ],
+ 'ListServerGroupServers' => [
+ 'summary' => 'Queries the server groups of a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '225066',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb3GOGI0',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ ],
+ [
+ 'name' => 'ServerIds',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The server IDs.'."\n"
+ ."\n"
+ .'You can specify at most 200 servers in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The server group ID.'."\n"
+ ."\n"
+ .'* If the server group is of the **Instance** type, set this parameter to the IDs of servers of the **Ecs**, **Eni**, or **Eci** type.'."\n"
+ .'* If the server group is of the **Ip** type, set ServerId to IP addresses.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-bp67acfmxazb4p****',
+ ],
+ 'required' => false,
+ 'maxItems' => 200,
+ ],
+ ],
+ [
+ 'name' => 'ServerIps',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The server IP addresses.'."\n"
+ ."\n"
+ .'You can specify at most 200 servers in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The server IP address.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '192.168.xxx.xxx',
+ ],
+ 'required' => false,
+ 'maxItems' => 200,
+ ],
+ ],
+ [
+ 'name' => 'NextToken',
+ 'in' => 'formData',
+ 'schema' => [
+ '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 a value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
+ ],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '分页大小',
+ 'description' => 'The number of entries per page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 1000.'."\n"
+ ."\n"
+ .'Default value: 20.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '20',
+ ],
+ ],
+ [
+ 'name' => 'Skip',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The number of entries to be skipped in the call.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'MaxResults' => [
+ 'description' => 'The number of entries per page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 1000.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ '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"
+ .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n",
+ 'type' => 'string',
+ 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
+ ],
+ 'Servers' => [
+ 'description' => 'The backend servers.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The backend server.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Port' => [
+ 'title' => '服务器端口',
+ 'description' => 'The backend server port. Valid values:'."\n"
+ ."\n"
+ .'* **6081**'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '6081',
+ ],
+ 'ServerGroupId' => [
+ 'title' => '服务器所属的服务器组ID',
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ 'ServerId' => [
+ 'title' => '服务器id',
+ 'description' => 'The backend server ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-bp67acfmxazb4p****',
+ ],
+ 'ServerIp' => [
+ 'title' => '服务器ip',
+ 'description' => 'The IP address of the backend server.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168.xxx.xxx',
+ ],
+ 'ServerType' => [
+ 'title' => '服务器类型',
+ 'description' => 'The type of the backend server. Valid 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",
+ 'type' => 'string',
+ 'example' => 'Ecs',
+ ],
+ 'Status' => [
+ 'title' => '资源状态',
+ 'description' => 'Indicates the status of the backend server. Valid values:'."\n"
+ ."\n"
+ .'* **Adding**: The backend server is being added.'."\n"
+ .'* **Available**: The backend server is available.'."\n"
+ .'* **Draining**: The backend server is in connection draining.'."\n"
+ .'* **Removing**: The backend server is being removed.'."\n"
+ .'* **Replacing**: The backend server is being replaced.'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ ],
+ ],
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"Servers\\": [\\n {\\n \\"Port\\": 6081,\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"ServerId\\": \\"i-bp67acfmxazb4p****\\",\\n \\"ServerIp\\": \\"192.168.xxx.xxx\\",\\n \\"ServerType\\": \\"Ecs\\",\\n \\"Status\\": \\"Available\\"\\n }\\n ],\\n \\"TotalCount\\": 1\\n}","type":"json"}]',
+ 'title' => 'ListServerGroupServers',
+ ],
+ 'CreateListener' => [
+ 'summary' => 'Creates a listener for a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '220131',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbPNW4R2',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The GWLB instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'gwlb-te609d6696632f7*****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerDescription',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The description of the listener.'."\n"
+ ."\n"
+ .'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",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'listener-description',
+ ],
+ ],
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sgp-ckh01px70dszof****',
+ ],
+ ],
+ [
+ 'name' => 'TcpIdleTimeout',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'TCP连接空闲超时时间。默认值:**350**秒。'."\n"
+ ."\n"
+ .'取值范围:**60**-**6000**秒。',
+ 'description' => 'The timeout period of an idle TCP connection. Unit: seconds.'."\n"
+ ."\n"
+ .'Default value: **350**.'."\n"
+ ."\n"
+ .'Valid values: **60** to **6000**.',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'default' => '350',
+ 'example' => '350',
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'dryRun标记',
+ 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '幂等token',
+ 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-42665544****',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The tags. You can specify at most 20 tags in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key. The tag key cannot be an empty string. The tag key can be up to 128 characters in length, and cannot start with `acs:` or `aliyun`. The tag key cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value. The tag value can be up to 256 characters in length and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testValue',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ListenerId' => [
+ 'title' => '',
+ 'description' => 'The listener ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'lsn-wi3c0v30ivysrg****',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'A045E652-D298-5E70-A978-7247135336FB',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
+ 'errorMessage' => 'The business status of %s [%s] is incorrect.',
+ ],
+ [
+ 'errorCode' => 'MissingParam.TagKey',
+ 'errorMessage' => 'The param of TagKey is missing.',
+ ],
+ [
+ 'errorCode' => 'MissingParam.TagValue',
+ 'errorMessage' => 'The param of TagValue is missing.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.TooManyListeners',
+ 'errorMessage' => 'The operation is not allowed because of TooManyListener.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.LoadBalancer',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ [
+ 'errorCode' => 'ResourceInUse.IP',
+ 'errorMessage' => 'The specified resource of IP is in use.',
+ ],
+ [
+ 'errorCode' => 'Mismatch.VpcId',
+ 'errorMessage' => 'The %s is mismatched for %s and %s.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.ServerGroup',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.TagKey',
+ 'errorMessage' => 'The param of %s is duplicated.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.TagKey',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.TagValue',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.TcpIdleTimeoutConflictWithScheduler',
+ 'errorMessage' => 'The TCP idle timeout of listener must be default value when the scheduling algorithm of server group is not 5TCH.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.LoadBalancer',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.ServerGroup',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'asynchronous',
+ 'callback' => 'Gwlb::2024-04-15::GetListenerAttribute',
+ 'callbackInterval' => 3000,
+ 'maxCallbackTimes' => 100,
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ListenerId\\": \\"lsn-wi3c0v30ivysrg****\\",\\n \\"RequestId\\": \\"A045E652-D298-5E70-A978-7247135336FB\\"\\n}","type":"json"}]',
+ 'title' => 'CreateListener',
+ 'description' => '**CreateListener** 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** operation to query the status of the task.'."\n"
+ ."\n"
+ .'* If the listener is in the **Provisioning** state, the listener is being created.'."\n"
+ .'* If the listener is in the **Running** state, the listener is running.'."\n",
+ ],
+ 'UpdateListenerAttribute' => [
+ 'summary' => 'Updates the configurations of a Gateway Load Balancer (GWLB) listener.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '221402',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbC68LB1',
+ 'FEATUREslbPNW4R2',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The listener ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lsn-lxce8iqbof2vl0****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerDescription',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The listener description.'."\n"
+ ."\n"
+ .'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",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'listener_description',
+ ],
+ ],
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sgp-sp8d2r6y7t0xtl****',
+ ],
+ ],
+ [
+ 'name' => 'TcpIdleTimeout',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'TCP连接空闲超时时间。取值范围:**60**-**6000**秒。',
+ 'description' => 'The timeout period of an idle TCP connection. Unit: seconds.'."\n"
+ ."\n"
+ .'Valid values: **60** to **6000**.',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '350',
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'dryRun标记',
+ 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ '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 token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters. If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-42665544****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '7DBFC67C-A272-5952-8287-6C3EBE4E04D9',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => 'Mismatch.VpcId',
+ 'errorMessage' => 'The %s is mismatched for %s and %s.',
+ ],
+ [
+ 'errorCode' => 'ResourceInUse.IP',
+ 'errorMessage' => 'The specified resource of IP is in use.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.ServerGroup',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.TcpIdleTimeoutConflictWithScheduler',
+ 'errorMessage' => 'The TCP idle timeout of listener must be default value when the scheduling algorithm of server group is not 5TCH.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.TcpIdleTimeoutNotConfigurable',
+ 'errorMessage' => 'The TCP idle timeout of listener is configurable only when the scheduling algorithm of server group is 5TCH.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.LoadBalancer',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.Listener',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.ServerGroup',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'asynchronous',
+ 'callback' => 'Gwlb::2024-04-15::GetListenerAttribute',
+ 'callbackInterval' => 3000,
+ 'maxCallbackTimes' => 100,
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7DBFC67C-A272-5952-8287-6C3EBE4E04D9\\"\\n}","type":"json"}]',
+ '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** operation to query the status of a listener.'."\n"
+ ."\n"
+ .'* If the listener is in the **Configuring** state, the listener is being modified.'."\n"
+ .'* If the listener is in the **Running** state, the listener is modified.'."\n",
+ ],
+ 'DeleteListener' => [
+ 'summary' => 'Deletes a listener from a Gateway Load Balancer (GWLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '221398',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbC68LB1',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The listener ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lsn-brx2y3hqdincizg***',
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'dryRun标记',
+ 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '幂等token',
+ 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-42665544****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '5C6E3548-086F-5FF6-A2B3-B1871B3AB488',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer',
+ 'errorMessage' => 'The business status of %s [%s] is incorrect.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.Listener',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.LoadBalancer',
+ 'errorMessage' => 'The status of %s [%s] is incorrect.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.LoadBalancer',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.Listener',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'asynchronous',
+ 'callback' => 'Gwlb::2024-04-15::GetListenerAttribute',
+ 'callbackInterval' => 3000,
+ 'maxCallbackTimes' => 100,
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5C6E3548-086F-5FF6-A2B3-B1871B3AB488\\"\\n}","type":"json"}]',
+ '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 the **GetListenerAttribute** operation 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 Gateway Load Balancer (GWLB) listeners.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '221401',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbC68LB1',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerIds',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ '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-w3t3vpgjj12b2i****',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerIds',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The GWLB instance IDs. You can specify at most 20 instance IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The GWLB instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'gwlb-rbtjolkkbudmrr****',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'NextToken',
+ 'in' => 'formData',
+ 'schema' => [
+ '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 a value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'd209f4e63ec942c967c50c888a13****',
+ ],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '分页大小',
+ 'description' => 'The maximum number of results to be returned from a single query when the NextToken parameter is used in the query. Valid values: 1 to 1000. Default value: 20.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '20',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The tags. You can specify at most 20 tags in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key. The tag key cannot be an empty string.'."\n"
+ ."\n"
+ .'The tag key can be up to 128 characters in length. The tag key cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tagKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value. The tag value can be up to 256 characters in length and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tagValue',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Skip',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The number of entries to be skipped in the call.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Listeners' => [
+ 'description' => 'The GWLB listeners.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the listeners.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ListenerDescription' => [
+ 'title' => '监听描述',
+ 'description' => 'The description of the listener.'."\n",
+ 'type' => 'string',
+ 'example' => 'listener-description',
+ ],
+ 'ListenerId' => [
+ 'title' => '自己生成后赋值',
+ 'description' => 'The listener ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'lsn-vu7folhh5ntm8u****',
+ ],
+ '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"
+ .'* **Deleting**: The listener is being deleted.'."\n",
+ 'type' => 'string',
+ 'example' => 'Running',
+ ],
+ 'LoadBalancerId' => [
+ 'title' => '负载均衡实例ID',
+ 'description' => 'The GWLB instance ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'gwlb-uf6hbeh795xlqln7g****',
+ ],
+ 'ServerGroupId' => [
+ 'title' => '服务器组ID',
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'sgp-5yapcb422i51ru****',
+ ],
+ 'TcpIdleTimeout' => [
+ 'title' => 'TCP连接空闲超时时间。',
+ 'description' => 'The timeout period of an idle TCP connection. Unit: seconds.',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '350',
+ ],
+ 'Tags' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key.'."\n",
+ 'type' => 'string',
+ 'example' => 'testKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value.'."\n",
+ 'type' => 'string',
+ 'example' => 'testValue',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'MaxResults' => [
+ 'description' => 'The maximum number of results to be returned from a single query when the NextToken parameter is used in the query. Valid values: 1 to 1000. Default value: 20.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'NextToken' => [
+ 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* If **NextToken** is empty, no next page exists.'."\n"
+ .'* If a value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n",
+ 'type' => 'string',
+ 'example' => '5c281c0a0d6bfb6355ed088c2108aca8e0b5e8707e68****',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '7DBFC67C-A272-5952-8287-6C3EBE4E04D9',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '8',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParam.TagKey',
+ 'errorMessage' => 'The param of TagKey is missing.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.TagKey',
+ 'errorMessage' => 'The param of %s is duplicated.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Listeners\\": [\\n {\\n \\"ListenerDescription\\": \\"listener-description\\",\\n \\"ListenerId\\": \\"lsn-vu7folhh5ntm8u****\\",\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"LoadBalancerId\\": \\"gwlb-uf6hbeh795xlqln7g****\\",\\n \\"ServerGroupId\\": \\"sgp-5yapcb422i51ru****\\",\\n \\"TcpIdleTimeout\\": 350,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"testKey\\",\\n \\"Value\\": \\"testValue\\"\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"5c281c0a0d6bfb6355ed088c2108aca8e0b5e8707e68****\\",\\n \\"RequestId\\": \\"7DBFC67C-A272-5952-8287-6C3EBE4E04D9\\",\\n \\"TotalCount\\": 8\\n}","type":"json"}]',
+ 'title' => 'ListListeners',
+ ],
+ 'GetListenerAttribute' => [
+ 'summary' => 'Queries the details of a Gateway Load Balancer (GWLB) listener.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '221399',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbC68LB1',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The listener ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lsn-brx2y3hqdinciz****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ListenerDescription' => [
+ 'title' => '监听描述',
+ 'description' => 'The listener description.'."\n"
+ ."\n"
+ .'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",
+ 'type' => 'string',
+ 'example' => 'listener_description',
+ ],
+ 'ListenerId' => [
+ 'title' => '',
+ 'description' => 'The listener ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'lsn-3kbj3587mqhm3p****',
+ ],
+ 'ListenerStatus' => [
+ 'title' => '监听状态',
+ 'description' => 'The listener status. Valid values:'."\n"
+ ."\n"
+ .'* **Provisioning**: The listener is being created.'."\n"
+ .'* **Running**: The listener is running.'."\n"
+ .'* **Configuring**: The listener is being configured.'."\n"
+ .'* **Deleting**: The listener is being deleted.'."\n",
+ 'type' => 'string',
+ 'example' => 'Provisioning',
+ ],
+ 'LoadBalancerId' => [
+ 'title' => '负载均衡实例ID',
+ 'description' => 'The GWLB instance ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'gwlb-te609d6696632f76****',
+ ],
+ 'RegionId' => [
+ 'title' => '',
+ 'description' => 'The region ID of the GWLB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '75CC3312-7757-5EE1-90D8-49CEA66608AE',
+ ],
+ 'ServerGroupId' => [
+ 'title' => '服务器组ID',
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'sgp-sp8d2r6y7t0xtl****',
+ ],
+ 'TcpIdleTimeout' => [
+ 'title' => 'TCP连接空闲超时时间。',
+ 'description' => 'The timeout period of an idle TCP connection. Unit: seconds.',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '350',
+ ],
+ 'Tags' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key. The tag key cannot be an empty string. The tag key can be up to 128 characters in length, and cannot start with `acs: `or `aliyun`. The tag key cannot contain `http://` or `https://`.',
+ 'type' => 'string',
+ 'example' => 'testKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value. The tag value can be up to 256 characters in length and cannot contain `http://` or `https://`.',
+ 'type' => 'string',
+ 'example' => 'testValue',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.Listener',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ListenerDescription\\": \\"listener_description\\",\\n \\"ListenerId\\": \\"lsn-3kbj3587mqhm3p****\\",\\n \\"ListenerStatus\\": \\"Provisioning\\",\\n \\"LoadBalancerId\\": \\"gwlb-te609d6696632f76****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"RequestId\\": \\"75CC3312-7757-5EE1-90D8-49CEA66608AE\\",\\n \\"ServerGroupId\\": \\"sgp-sp8d2r6y7t0xtl****\\",\\n \\"TcpIdleTimeout\\": 350,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"testKey\\",\\n \\"Value\\": \\"testValue\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'GetListenerAttribute',
+ ],
+ 'GetListenerHealthStatus' => [
+ 'summary' => 'Queries the health check status of a Gateway Load Balancer (GWLB) listener.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '221400',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbL239O5',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The listener ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lsn-7sixpvm5fc3v0b****',
+ ],
+ ],
+ [
+ 'name' => 'NextToken',
+ 'in' => 'formData',
+ 'schema' => [
+ '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 a value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '4f1d7cc9f51e18904e8a063603a6b0c3d03bc69f78734254e0b5e8707e68****',
+ ],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '分页大小',
+ 'description' => 'The number of entries per page. Valid values: 1 to 1000. Default value: 20.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '1000',
+ 'minimum' => '1',
+ 'example' => '20',
+ ],
+ ],
+ [
+ 'name' => 'Skip',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The number of entries to be skipped in the call.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ [
+ 'name' => 'Filter',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The filter conditions. You can specify at most 20 filter conditions.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The filter condition.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => 'The filter condition name. You can filter by one or more filter condition names. The URL must meet the following requirements:'."\n"
+ ."\n"
+ .'* **Status**: the health status.'."\n"
+ .'* **ReasonCode**: the cause of an unhealthy server.'."\n"
+ .'* **ServerId**: the ID of the backend server.'."\n"
+ .'* **ServerIp**: the IP address of the backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Status',
+ 'enum' => [
+ 'Status',
+ 'ReasonCode',
+ 'ServerId',
+ 'ServerIp',
+ ],
+ ],
+ 'Values' => [
+ 'description' => 'The filter condition values. You can specify at most 20 condition values.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The filter condition value. The valid values vary based on the specified filter condition name in the response.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Unhealthy',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ListenerHealthStatus' => [
+ 'description' => 'The health check status of the server groups that are associated with the listener.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The health check status of the server groups that are associated with the listener.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ListenerId' => [
+ 'description' => 'The listener ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'lsn-sg8aha6pzjavvo****',
+ ],
+ 'ServerGroupInfos' => [
+ 'description' => 'The information about the server groups.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the server group.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckEnabled' => [
+ 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'ServerGroupId' => [
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'sgp-0vdsbyszro3nr6****',
+ ],
+ 'Servers' => [
+ 'description' => 'The backend servers.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The backend server.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Port' => [
+ 'title' => '服务器端口',
+ 'description' => 'The backend port.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '6081',
+ ],
+ 'Reason' => [
+ 'description' => 'The reason why **Status** indicates an unhealthy status.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ReasonCode' => [
+ 'description' => 'The reason why **Status** indicates an unhealthy status. Valid values:'."\n"
+ ."\n"
+ .'* **CONNECT_TIMEOUT**: The GWLB instance failed to connect to the backend server within the specified period of time.'."\n"
+ .'* **CONNECT_FAILED**: The GWLB instance failed to connect to the backend server.'."\n"
+ .'* **RECV_RESPONSE_TIMEOUT**: The GWLB instance failed to receive a response from the backend server within the specified period of time.'."\n"
+ .'* **CONNECT_INTERRUPT**: The connection between the health check and the backend server was interrupted.'."\n"
+ .'* **HTTP_CODE_NOT_MATCH**: The HTTP status code from the backend server is not the expected one.'."\n"
+ .'* **HTTP_INVALID_HEADER**: The format of the response from the backend servers is invalid.'."\n",
+ 'type' => 'string',
+ 'example' => 'CONNECT_TIMEOUT',
+ ],
+ ],
+ ],
+ 'ServerId' => [
+ 'title' => '服务器id',
+ 'description' => 'The backend server ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-2ze4rnh8yj9kif3z****',
+ ],
+ 'ServerIp' => [
+ 'title' => '服务器ip',
+ 'description' => 'The IP address of the server.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168.0.XXX',
+ ],
+ 'Status' => [
+ 'description' => 'The health status of the backend server. Valid values:'."\n"
+ ."\n"
+ .'* **Initial**: Health checks are configured for the GWLB instance, but no data is found.'."\n"
+ .'* **Unhealthy**: The backend server consecutively fails health checks.'."\n"
+ .'* **Unused**: The backend server is not in use.'."\n"
+ .'* **Unavailable**: Health checks are disabled.'."\n"
+ .'* **Healthy**: The backend server is healthy.'."\n",
+ 'type' => 'string',
+ 'example' => 'Healthy',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'MaxResults' => [
+ 'description' => 'The number of entries per page. Valid values: 1 to 1000. Default value: 20.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'NextToken' => [
+ 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* If **NextToken** is empty, no next page exists.'."\n"
+ .'* If a value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n",
+ 'type' => 'string',
+ 'example' => 'U12WEI6Ro2ol3wA54rBNSwdC5+lYy6q5SjIQEvc1wz5mjZxV+YjsHRdXV8XauY1BpOQIvwX63E0en54H3D****',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '0ED4F222-36A0-5470-8A9A-AAB4E96BAC1A',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '31',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IllegalParam.FilterValue',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.FilterName',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.Listener',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ListenerHealthStatus\\": [\\n {\\n \\"ListenerId\\": \\"lsn-sg8aha6pzjavvo****\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HealthCheckEnabled\\": true,\\n \\"ServerGroupId\\": \\"sgp-0vdsbyszro3nr6****\\",\\n \\"Servers\\": [\\n {\\n \\"Port\\": 6081,\\n \\"Reason\\": {\\n \\"ReasonCode\\": \\"CONNECT_TIMEOUT\\"\\n },\\n \\"ServerId\\": \\"i-2ze4rnh8yj9kif3z****\\",\\n \\"ServerIp\\": \\"192.168.0.XXX\\",\\n \\"Status\\": \\"Healthy\\"\\n }\\n ]\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"U12WEI6Ro2ol3wA54rBNSwdC5+lYy6q5SjIQEvc1wz5mjZxV+YjsHRdXV8XauY1BpOQIvwX63E0en54H3D****\\",\\n \\"RequestId\\": \\"0ED4F222-36A0-5470-8A9A-AAB4E96BAC1A\\",\\n \\"TotalCount\\": 31\\n}","type":"json"}]',
+ 'title' => 'GetListenerHealthStatus',
+ ],
+ 'TagResources' => [
+ 'summary' => 'Creates and adds tags to resources.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '225141',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbRXTOWD',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The type of resource. Valid values:'."\n"
+ ."\n"
+ .'* **loadbalancer**: Gateway Load Balancer (GWLB) instance'."\n"
+ .'* **listener**: listener'."\n"
+ .'* **servergroup**: server group'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'loadbalancer',
+ 'enum' => [],
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The resource IDs. You can specify at most 50 resource IDs in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The resource ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'gwlb-nrnrxwd15en27r****',
+ ],
+ 'required' => true,
+ 'maxItems' => 50,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The tags. You can specify at most 20 tags in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key. The tag key cannot be an empty string. The tag key can be up to 128 characters in length, and cannot start with `acs:` or `aliyun`. The tag key cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'testKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value. The tag value can be up to 256 characters in length and cannot contain `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'testValue',
+ ],
+ ],
+ 'required' => true,
+ ],
+ 'required' => true,
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'dryRun标记',
+ 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '幂等token',
+ 'description' => 'The client token 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. Only ASCII characters are allowed.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the 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****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '54F6E60A-1777-5C17-A6A9-BCC1A7FE945B',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParam.TagKey',
+ 'errorMessage' => 'The param of TagKey is missing.',
+ ],
+ [
+ 'errorCode' => 'MissingParam.TagValue',
+ 'errorMessage' => 'The param of TagValue is missing.',
+ ],
+ [
+ 'errorCode' => 'ResourceQuotaExceeded.TagNum',
+ 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.TagKey',
+ 'errorMessage' => 'The param of %s is duplicated.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.TagKey',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.TagValue',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.ResourceId',
+ 'errorMessage' => 'The param of %s is duplicated.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.LoadBalancer',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.Listener',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.ServerGroup',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54F6E60A-1777-5C17-A6A9-BCC1A7FE945B\\"\\n}","type":"json"}]',
+ 'title' => 'TagResources',
+ ],
+ 'UntagResources' => [
+ 'summary' => 'Removes tags from resources.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '225142',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbRXTOWD',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The type of resource. Valid values:'."\n"
+ ."\n"
+ .'* **loadbalancer**: Gateway Load Balancer (GWLB) instance'."\n"
+ .'* **listener**: listener'."\n"
+ .'* **servergroup**: server group'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'loadbalancer',
+ 'enum' => [],
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The resource IDs. You can specify at most 50 resource IDs in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The resource ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'gwlb-nrnrxwd15en27r****',
+ ],
+ 'required' => true,
+ 'maxItems' => 50,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'TagKey',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The keys of the tags that you want to remove. You can remove at most 20 tags in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The key of the tag that you want to remove.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testKey',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'All',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'Specifies whether to remove all tags from the specified resource. This parameter is ignored if the TagKey parameter is specified. Valid values:'."\n"
+ ."\n"
+ .'* **true**: removes all tags from the specified resource.'."\n"
+ .'* **false**: does not remove all tags from the specified resource. This is the default value.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'dryRun标记',
+ 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ '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 token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters. If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-42665544****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '3DC0064C-C09E-5C99-8FD4-9CDB2DA7FA21',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ExclusiveParam.TagKeyAndAll',
+ 'errorMessage' => 'The param of %s and %s are mutually exclusive.',
+ ],
+ [
+ 'errorCode' => 'MissingParam.TagKey',
+ 'errorMessage' => 'The param of TagKey is missing.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.ResourceId',
+ 'errorMessage' => 'The param of %s is duplicated.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.TagKey',
+ 'errorMessage' => 'The param of %s is duplicated.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.TagKey',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.Listener',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.LoadBalancer',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.ServerGroup',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3DC0064C-C09E-5C99-8FD4-9CDB2DA7FA21\\"\\n}","type":"json"}]',
+ 'title' => 'UntagResources',
+ ],
+ 'ListTagResources' => [
+ 'summary' => 'Queries the tags of resources.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '225143',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbRXTOWD',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The type of resource. Valid values:'."\n"
+ ."\n"
+ .'* **loadbalancer**: Gateway Load Balancer (GWLB) instance'."\n"
+ .'* **listener**: listener'."\n"
+ .'* **servergroup**: server group'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'loadbalancer',
+ 'enum' => [],
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The resource IDs. You can specify at most 50 resource IDs in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The resource ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'gwlb-nrnrxwd15en27r****',
+ ],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The tags. You can specify at most 20 tags in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The tag key.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testKey',
+ ],
+ 'Value' => [
+ 'description' => 'The tag value.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testValue',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'NextToken',
+ 'in' => 'formData',
+ 'schema' => [
+ '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 a value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'WyI2NDQ3MWUxM2EzOWNhMmY0Y2M2YTRiNzZhOWQwNmU1Y2RlNTYzMGEzIiwibiIsIm4iLDEsLTEsMTY5ODcxMzI2NjU0MywiNjU0MDRlYjI2MmI3MDhjY2JiMjM0ZmU0ODNkNTVmMGRhZDllOTBi****',
+ ],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The maximum number of results to be returned from a single query when the NextToken parameter is used in the query. Valid values: 1 to 1000. Default value: 20.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '20',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'NextToken' => [
+ 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n"
+ ."\n"
+ .'* If **NextToken** is empty, no next page exists.'."\n"
+ .'* If a value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n",
+ 'type' => 'string',
+ 'example' => 'd209f4e63ec942c967c50c888a13****',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'A95325A2-E421-58A6-88AD-7A26CE610F45',
+ ],
+ 'TagResources' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the tag that is added to the resource.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ResourceId' => [
+ 'description' => 'The resource ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'gwlb-nrnrxwd15en27r****'."\n",
+ ],
+ 'ResourceType' => [
+ 'description' => 'The resource type. Valid values:'."\n"
+ ."\n"
+ .'* **loadbalancer**: GWLB instance'."\n"
+ .'* **listener**: listener'."\n"
+ .'* **servergroup**: server group'."\n",
+ 'type' => 'string',
+ 'example' => 'loadbalancer',
+ ],
+ 'TagKey' => [
+ 'description' => 'The tag key.'."\n",
+ 'type' => 'string',
+ 'example' => 'testKey',
+ ],
+ 'TagValue' => [
+ 'description' => 'The tag value.'."\n",
+ 'type' => 'string',
+ 'example' => 'testValue',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParam.TagsOrResourceIds',
+ 'errorMessage' => 'The param of TagsOrResourceIds is missing.',
+ ],
+ [
+ 'errorCode' => 'MissingParam.TagKey',
+ 'errorMessage' => 'The param of TagKey is missing.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.ResourceId',
+ 'errorMessage' => 'The param of %s is duplicated.',
+ ],
+ [
+ 'errorCode' => 'DuplicatedParam.TagKey',
+ 'errorMessage' => 'The param of %s is duplicated.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"d209f4e63ec942c967c50c888a13****\\",\\n \\"RequestId\\": \\"A95325A2-E421-58A6-88AD-7A26CE610F45\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"gwlb-nrnrxwd15en27r****\\\\n\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"TagKey\\": \\"testKey\\",\\n \\"TagValue\\": \\"testValue\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'ListTagResources',
+ ],
+ 'MoveResourceGroup' => [
+ 'summary' => 'Changes the resource group to which a specified cloud resource belongs.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '225546',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbRXTOWD',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The resource ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'gwlb-nrnrxwd15en27r****',
+ ],
+ ],
+ [
+ 'name' => 'NewResourceGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the resource group to which you want to move the resource.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'rg-aek253e4oit****',
+ ],
+ ],
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The type of resource. Valid values:'."\n"
+ ."\n"
+ .'* **loadbalancer**: Gateway Load Balancer (GWLB) instance'."\n"
+ .'* **servergroup**: server group'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'loadbalancer',
+ 'enum' => [
+ 'loadbalancer',
+ 'servergroup',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'dryRun标记',
+ 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n"
+ .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '幂等token',
+ 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
+ ."\n"
+ .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n"
+ ."\n"
+ .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123e4567-e89b-12d3-a456-42665544****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '78828B5C-521E-50F3-84D4-7019691D1382',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'OperationDenied.NotExist.ResourceGroup',
+ 'errorMessage' => 'The operation is not allowed because of NotExist.ResourceGroup.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.StatusCheckFail.ResourceGroup',
+ 'errorMessage' => 'The operation is not allowed because of StatusCheckFail.ResourceGroup.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.LoadBalancer',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.ServerGroup',
+ 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"78828B5C-521E-50F3-84D4-7019691D1382\\"\\n}","type":"json"}]',
+ 'title' => 'MoveResourceGroup',
+ ],
+ ],
+ 'endpoints' => [
+ [
+ 'regionId' => 'cn-wulanchabu',
+ 'endpoint' => 'gwlb.cn-wulanchabu.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-1',
+ 'endpoint' => 'gwlb.ap-southeast-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-beijing',
+ 'endpoint' => 'gwlb.cn-beijing.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai',
+ 'endpoint' => 'gwlb.cn-shanghai.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou',
+ 'endpoint' => 'gwlb.cn-hangzhou.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hongkong',
+ 'endpoint' => 'gwlb.cn-hongkong.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-northeast-1',
+ 'endpoint' => 'gwlb.ap-northeast-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shenzhen',
+ 'endpoint' => 'gwlb.cn-shenzhen.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-3',
+ 'endpoint' => 'gwlb.ap-southeast-3.aliyuncs.com',
+ ],
+ ],
+];