summaryrefslogtreecommitdiff
path: root/data/zh_cn/gwlb
diff options
context:
space:
mode:
Diffstat (limited to 'data/zh_cn/gwlb')
-rw-r--r--data/zh_cn/gwlb/2024-04-15/api-docs.php6932
1 files changed, 2816 insertions, 4116 deletions
diff --git a/data/zh_cn/gwlb/2024-04-15/api-docs.php b/data/zh_cn/gwlb/2024-04-15/api-docs.php
index 5c12259..1796505 100644
--- a/data/zh_cn/gwlb/2024-04-15/api-docs.php
+++ b/data/zh_cn/gwlb/2024-04-15/api-docs.php
@@ -1,216 +1,289 @@
<?php return [
'version' => '1.0',
- 'info' => [
- 'style' => 'RPC',
- 'product' => 'Gwlb',
- 'version' => '2024-04-15',
- ],
+ 'info' => ['style' => 'RPC', 'product' => 'Gwlb', 'version' => '2024-04-15'],
'directories' => [
[
- 'id' => 198458,
- 'title' => '地域与可用区',
+ 'children' => ['DescribeRegions', 'DescribeZones'],
'type' => 'directory',
- 'children' => [
- 'DescribeRegions',
- 'DescribeZones',
- ],
+ 'title' => '地域与可用区',
+ 'id' => 81989,
],
[
- 'id' => 198461,
- 'title' => '实例',
+ 'children' => ['CreateLoadBalancer', 'UpdateLoadBalancerAttribute', 'UpdateLoadBalancerZones', 'DeleteLoadBalancer', 'ListLoadBalancers', 'GetLoadBalancerAttribute'],
'type' => 'directory',
- 'children' => [
- 'CreateLoadBalancer',
- 'UpdateLoadBalancerAttribute',
- 'UpdateLoadBalancerZones',
- 'DeleteLoadBalancer',
- 'ListLoadBalancers',
- 'GetLoadBalancerAttribute',
- ],
+ 'title' => '实例',
+ 'id' => 82204,
],
[
- 'id' => 198468,
- 'title' => '服务器组',
+ 'children' => ['CreateServerGroup', 'UpdateServerGroupAttribute', 'DeleteServerGroup', 'AddServersToServerGroup', 'RemoveServersFromServerGroup', 'ListServerGroups', 'ListServerGroupServers'],
'type' => 'directory',
- 'children' => [
- 'CreateServerGroup',
- 'UpdateServerGroupAttribute',
- 'DeleteServerGroup',
- 'AddServersToServerGroup',
- 'RemoveServersFromServerGroup',
- 'ListServerGroups',
- 'ListServerGroupServers',
- ],
+ 'title' => '服务器组',
+ 'id' => 82211,
],
[
- 'id' => 198476,
- 'title' => '监听',
+ 'children' => ['CreateListener', 'UpdateListenerAttribute', 'DeleteListener', 'ListListeners', 'GetListenerAttribute', 'GetListenerHealthStatus'],
'type' => 'directory',
- 'children' => [
- 'CreateListener',
- 'UpdateListenerAttribute',
- 'DeleteListener',
- 'ListListeners',
- 'GetListenerAttribute',
- 'GetListenerHealthStatus',
- ],
+ 'title' => '监听',
+ 'id' => 82219,
],
[
- 'id' => 198483,
- 'title' => '标签',
+ 'children' => ['TagResources', 'UntagResources', 'ListTagResources'],
'type' => 'directory',
- 'children' => [
- 'TagResources',
- 'UntagResources',
- 'ListTagResources',
- ],
+ 'title' => '标签',
+ 'id' => 82226,
],
[
- 'id' => 198487,
- 'title' => '资源组',
+ 'children' => ['MoveResourceGroup'],
'type' => 'directory',
- 'children' => [
- 'MoveResourceGroup',
- ],
+ 'title' => '资源组',
+ 'id' => 82230,
],
],
'components' => [
'schemas' => [],
],
'apis' => [
- 'DescribeRegions' => [
- 'summary' => '查询负载均衡支持地域和服务地址。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'AddServersToServerGroup' => [
+ 'methods' => ['post'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'none',
+ 'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '222561',
- 'abilityTreeNodes' => [
- 'FEATUREslbM7ALO6',
- ],
- 'tenantRelevance' => 'publicInformation',
+ 'abilityTreeCode' => '225056',
+ 'abilityTreeNodes' => ['FEATUREslb3GOGI0'],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'AcceptLanguage',
+ 'name' => 'ServerGroupId',
'in' => 'formData',
+ 'schema' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****'],
+ ],
+ [
+ 'name' => 'Servers',
+ 'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'description' => '支持的语言。取值:'."\n"
- ."\n"
- .'- **zh-CN**:中文'."\n"
- ."\n"
- .'- **en-US**(默认值):英文'."\n"
+ 'description' => '后端服务器列表。'."\n"
."\n"
- .'- **ja**:日文',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'zh-CN',
+ .'> 单次调用最多支持传入200个服务器。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '后端服务器。',
+ 'type' => 'object',
+ 'properties' => [
+ 'Port' => ['title' => '服务器端口', 'description' => '后端服务器使用的端口,取值:'."\n"
+ ."\n"
+ .'- **6081**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '6081'],
+ 'ServerId' => ['title' => '服务器id', 'description' => '后端服务器ID。'."\n"
+ ."\n"
+ .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源ID。'."\n"
+ ."\n"
+ .'- 当服务器组为**Ip**类型时,该参数为IP地址。', 'type' => 'string', 'required' => true, 'example' => 'i-bp67acfmxazb4p****'],
+ 'ServerIp' => ['title' => '服务器ip', 'description' => '后端服务器IP地址。', 'type' => 'string', 'required' => false, 'example' => '192.168.XX.XX'],
+ 'ServerType' => [
+ 'title' => '服务器类型',
+ 'description' => '后端服务器类型,取值:'."\n"
+ ."\n"
+ .'- **Ecs**:ECS实例。'."\n"
+ .'- **Eni**:ENI弹性网卡实例。'."\n"
+ .'- **Eci**:ECI弹性容器。'."\n"
+ .'- **Ip**:Ip地址。',
+ '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' => '是否只预检此次请求,取值:'."\n"
+ .'- **true**:发送检查请求,不会向服务器组中添加后端服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
+ ."\n"
+ .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
+ ],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
- 'description' => '',
+ 'description' => '返回数据结构体。',
'type' => 'object',
'properties' => [
- 'Regions' => [
- 'description' => '地域列表。',
- 'type' => 'array',
- 'items' => [
- 'description' => '地域信息对象。',
- 'type' => 'object',
- 'properties' => [
- 'LocalName' => [
- 'description' => '地域名称。',
- 'type' => 'string',
- 'example' => 'China (Hangzhou)',
- ],
- 'RegionEndpoint' => [
- 'description' => '地域服务地址。',
- 'type' => 'string',
- 'example' => 'gwlb.cn-hangzhou.aliyuncs.com',
- ],
- 'RegionId' => [
- 'description' => '地域ID。',
- 'type' => 'string',
- 'example' => 'cn-hangzhou',
- ],
- ],
- ],
- ],
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '162FCE8D-CEEC-5083-90BF-B45D8C4F81FB',
- ],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'],
],
],
],
],
- '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' => '查询地域',
- ],
- 'DescribeZones' => [
- 'summary' => '查询负载均衡支持可用区。',
- 'methods' => [
- 'post',
- 'get',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'Conflict.Server', 'errorMessage' => 'The %s [%s] is conflict.', 'description' => '%s冲突,已经存在同配置的%s。'],
+ ['errorCode' => 'Mismatch.ServerType', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => 'ServerType不匹配。'],
+ ['errorCode' => 'ResourceInUse.IP', 'errorMessage' => 'The specified resource of %s is in use.', 'description' => '指定的IP地址已被使用'],
+ ['errorCode' => 'IllegalParam.ServerIp', 'errorMessage' => 'The param of %s is illegal.', 'description' => '参数ServerIp非法,请检查输入参数。'],
+ ['errorCode' => 'IllegalParam.EcsNetworkType', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''],
+ ['errorCode' => 'DuplicatedParam.Server', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '参数中存在重复的server。'],
+ ['errorCode' => 'ResourceInUse.Eni', 'errorMessage' => 'The specified resource of %s is in use.', 'description' => '传入的eni不能是网关型负载均衡实例使用的eni,请检查参数。'],
+ ['errorCode' => 'IncorrectStatus.Eni', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
+ ['errorCode' => 'IllegalParam.IP', 'errorMessage' => 'The param of %s is illegal.', 'description' => '参数IP非法。请检查参数IP的输入值。'],
+ ['errorCode' => 'Mismatch.IP', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '输入的IP类型服务器的ID和IP不匹配。'],
+ ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '两个资源的VPC ID不匹配'],
+ ['errorCode' => 'QuotaExceeded.ServerGroupServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额gwlb_quota_servergroup_servers_num已超额度限制。'],
+ ['errorCode' => 'QuotaExceeded.ServerGroupAzServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额gwlb_quota_servergroup_az_servers_num已超额度限制。'],
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Eni', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的弹性网卡资源不存在。'],
+ ['errorCode' => 'ResourceNotFound.Eci', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的弹性容器实例资源不存在。'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的服务器组资源不存在。'],
+ ['errorCode' => 'ResourceNotFound.Ecs', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的云服务器资源不存在。'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Gwlb::2024-04-15::ListServerGroupServers', 'callbackInterval' => 3000, 'maxCallbackTimes' => 100],
+ 'title' => '服务器组中添加后端服务器',
+ 'summary' => '向负载均衡服务器组中添加后端服务器。',
+ 'description' => '**AddServersToServerGroup**接口属于异步接口,即系统返回一个请求ID,但该后端服务器尚未添加成功,系统后台的添加任务仍在进行。'."\n"
+ ."\n"
+ .'1. 您可以调用 ListServerGroups 查询服务器组的状态:'."\n"
+ ."\n"
+ .'- 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n"
+ .'- 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n"
+ ."\n"
+ .'2. 您可以调用 ListServerGroupServers 查询后端服务器的状态:'."\n"
+ ."\n"
+ .'- 当后端服务器处于**Adding**状态时,表示后端服务器正在加入服务器组。'."\n"
+ .'- 当后端服务器处于**Available**状态时,表示后端服务器运行中。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddServersToServerGroup'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'gwlb:AddServersToServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#InstanceId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:eni/{#ServerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:eci:{#regionId}:{#accountId}:containergroup/{#ServerId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]',
+ ],
+ 'CreateListener' => [
+ 'summary' => '创建负载均衡监听器。',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'none',
+ 'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '222562',
- 'abilityTreeNodes' => [
- 'FEATUREslbHRNRPI',
- ],
- 'tenantRelevance' => 'publicInformation',
+ 'abilityTreeCode' => '220131',
+ 'abilityTreeNodes' => ['FEATUREslbPNW4R2'],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'AcceptLanguage',
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => ['description' => '网关型负载均衡实例的ID。', 'type' => 'string', 'required' => true, 'example' => 'gwlb-te609d6696632f7*****'],
+ ],
+ [
+ 'name' => 'ListenerDescription',
'in' => 'formData',
+ 'schema' => ['description' => '自定义监听描述。'."\n"
+ ."\n"
+ .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'listener-description'],
+ ],
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => ['description' => '服务器组 ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-ckh01px70dszof****'],
+ ],
+ [
+ 'name' => 'TcpIdleTimeout',
+ 'in' => 'formData',
+ 'schema' => ['title' => 'TCP连接空闲超时时间。默认值:**350**秒。'."\n"
+ ."\n"
+ .'取值范围:**60**-**6000**秒。', 'description' => 'TCP连接空闲超时时间。'."\n"
+ ."\n"
+ .'取值范围:**60**-**6000** 秒。'."\n"
+ ."\n"
+ .'默认值:**350** 秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '350', 'default' => '350'],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求。取值:'."\n"
+ .'- **true**:发送检查请求,不会创建监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
+ ."\n"
+ .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'description' => '支持的语言。取值:'."\n"
- ."\n"
- .'- **zh-CN**:中文'."\n"
- ."\n"
- .'- **en-US**(默认值):英文'."\n"
- ."\n"
- .'- **ja**:日文',
- 'type' => 'string',
+ 'description' => '标签列表。一次调用最多支持添加20个标签。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '标签。',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => '标签键。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'testKey'],
+ 'Value' => ['description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'testValue'],
+ ],
+ 'required' => false,
+ ],
'required' => false,
- 'example' => 'zh-CN',
+ 'maxItems' => 20,
],
],
],
@@ -218,54 +291,69 @@
200 => [
'schema' => [
'title' => '',
- 'description' => '',
+ 'description' => '请求的返回值。',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '4C605F7E-D0F6-54E2-B004-F9B132F0D8B2',
- ],
- 'Zones' => [
- 'description' => '可用区列表。',
- 'type' => 'array',
- 'items' => [
- 'description' => '可用区信息对象。',
- 'type' => 'object',
- 'properties' => [
- 'LocalName' => [
- 'description' => '可用区名称。',
- 'type' => 'string',
- 'example' => 'Hangzhou Zone G',
- ],
- 'ZoneId' => [
- 'description' => '可用区ID。',
- 'type' => 'string',
- 'example' => 'cn-hangzhou-g',
- ],
- ],
- ],
- ],
+ 'ListenerId' => ['title' => '', 'description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-wi3c0v30ivysrg****'],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A045E652-D298-5E70-A978-7247135336FB'],
],
],
],
],
- 'errorCodes' => [],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => '资源%s业务状态%s不支持当前操作'],
+ ['errorCode' => 'MissingParam.TagKey', 'errorMessage' => 'The param of TagKey is missing.', 'description' => '标签键参数缺失'],
+ ['errorCode' => 'MissingParam.TagValue', 'errorMessage' => 'The param of TagValue is missing.', 'description' => '标签值参数缺失'],
+ ['errorCode' => 'OperationDenied.TooManyListeners', 'errorMessage' => 'The operation is not allowed because of TooManyListener.', 'description' => '负载均衡实例下的监听数量超过限制,操作不支持'],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
+ ['errorCode' => 'ResourceInUse.IP', 'errorMessage' => 'The specified resource of IP is in use.', 'description' => ''],
+ ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '两个资源的VPC ID不匹配'],
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
+ ['errorCode' => 'DuplicatedParam.TagKey', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '标签键参数重复'],
+ ['errorCode' => 'IllegalParam.TagKey', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''],
+ ['errorCode' => 'IllegalParam.TagValue', 'errorMessage' => 'The param of %s is illegal.', 'description' => '标签值参数不合法'],
+ ['errorCode' => 'OperationDenied.TcpIdleTimeoutConflictWithScheduler', 'errorMessage' => 'The TCP idle timeout of listener must be default value when the scheduling algorithm of server group is not 5TCH.', 'description' => '配置冲突,自定义配置了的TCP连接空闲超时时间,服务器组的调度算法需要使用五元组哈希。'],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的负载均衡资源不存在'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的服务器组资源不存在。'],
+ ],
],
- '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' => '查询可用区',
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Gwlb::2024-04-15::GetListenerAttribute', 'callbackInterval' => 3000, 'maxCallbackTimes' => 100],
+ 'title' => '创建监听',
+ 'description' => '**CreateListener** 接口属于异步接口,即系统返回一个请求 ID,但该监听尚未创建成功,系统后台的创建任务仍在进行。您可以调用[GetListenerAttribute](~~2853569~~)查询监听的创建状态:'."\n"
+ ."\n"
+ .'- 当监听处于 **Provisioning** 状态时,表示监听正在创建中。'."\n"
+ ."\n"
+ .'- 当监听处于 **Running** 状态时,表示监听创建成功。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateListener'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'gwlb:CreateListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ListenerId\\": \\"lsn-wi3c0v30ivysrg****\\",\\n \\"RequestId\\": \\"A045E652-D298-5E70-A978-7247135336FB\\"\\n}","type":"json"}]',
],
'CreateLoadBalancer' => [
'summary' => '创建负载均衡实例。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -278,9 +366,7 @@
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '221915',
- 'abilityTreeNodes' => [
- 'FEATUREslbHRNRPI',
- ],
+ 'abilityTreeNodes' => ['FEATUREslbHRNRPI'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
@@ -302,24 +388,14 @@
[
'name' => 'LoadBalancerName',
'in' => 'formData',
- 'schema' => [
- 'description' => '网关型负载均衡实例名称。'."\n"
- ."\n"
- .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testGwlbName',
- ],
+ 'schema' => ['description' => '网关型负载均衡实例名称。'."\n"
+ ."\n"
+ .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'testGwlbName'],
],
[
'name' => 'VpcId',
'in' => 'formData',
- 'schema' => [
- 'description' => '专有网络VPC ID。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'vpc-uf6qcgpv22ttrnnjh****',
- ],
+ 'schema' => ['description' => '专有网络VPC ID。', 'type' => 'string', 'required' => true, 'example' => 'vpc-uf6qcgpv22ttrnnjh****'],
],
[
'name' => 'ZoneMappings',
@@ -332,18 +408,8 @@
'description' => '可用区及交换机映射对象。',
'type' => 'object',
'properties' => [
- 'VSwitchId' => [
- 'description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'vsw-2f0eb020****',
- ],
- 'ZoneId' => [
- 'description' => '可用区ID,通过调用网关型负载均衡DescribeZones接口获得。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cn-hangzhou-a',
- ],
+ 'VSwitchId' => ['description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。', 'type' => 'string', 'required' => true, 'example' => 'vsw-2f0eb020****'],
+ 'ZoneId' => ['description' => '可用区ID,通过调用网关型负载均衡DescribeZones接口获得。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a'],
],
'required' => false,
],
@@ -362,20 +428,10 @@
'description' => '标签列表。一次调用最多支持20个标签。',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => '标签键。一旦传入该值,则不允许为空字符串。'."\n"
- ."\n"
- .'一个标签健最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testTagKey',
- ],
- 'Value' => [
- 'description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testTagValue',
- ],
+ 'Key' => ['description' => '标签键。一旦传入该值,则不允许为空字符串。'."\n"
+ ."\n"
+ .'一个标签健最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'testTagKey'],
+ 'Value' => ['description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'testTagValue'],
],
'required' => false,
],
@@ -386,40 +442,23 @@
[
'name' => 'ResourceGroupId',
'in' => 'formData',
- 'schema' => [
- 'description' => '资源组ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-acfmwbufq6q3****',
- ],
+ 'schema' => ['description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmwbufq6q3****'],
],
[
'name' => 'DryRun',
'in' => 'formData',
- 'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求。取值:'."\n"
- .'- **true**:发送检查请求,不会创建实例。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求。取值:'."\n"
+ .'- **true**:发送检查请求,不会创建实例。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
'name' => 'ClientToken',
'in' => 'formData',
- 'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
- ."\n"
- .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
+ ."\n"
+ .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
],
'responses' => [
@@ -429,66 +468,26 @@
'description' => '',
'type' => 'object',
'properties' => [
- 'LoadBalancerId' => [
- 'description' => '网关型负载均衡实例的ID。',
- 'type' => 'string',
- 'example' => 'gwlb-9njtjmqt7zfcqm****',
- ],
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '00B19438-66BB-58C3-8C2F-DA5B6F95CBDA',
- ],
+ 'LoadBalancerId' => ['description' => '网关型负载均衡实例的ID。', 'type' => 'string', 'example' => 'gwlb-9njtjmqt7zfcqm****'],
+ 'RequestId' => ['description' => '请求ID。', '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,
- ],
+ ['errorCode' => 'DuplicatedParam.ZoneId', 'errorMessage' => 'The param of ZoneId is duplicated.', 'description' => '列表中的ZoneId参数重复'],
+ ['errorCode' => 'OperationDenied.VSwitchNotSupportIpv6', 'errorMessage' => 'The operation is not allowed because of VSwitchNotSupportIpv6.', 'description' => '交换机vSwitch没有开启IPv6,操作不支持'],
+ ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource of VSwitchIp is not enough.', 'description' => 'vSwitch IP资源不足'],
+ ['errorCode' => 'DuplicatedParam.VSwitchId', 'errorMessage' => 'The param of VSwitchId is duplicated.', 'description' => '列表中的vSwitchId参数重复'],
+ ['errorCode' => 'IllegalParamSize.ZoneMappings', 'errorMessage' => 'The param size of ZoneMappings is illegal.', 'description' => 'ZoneMappings列表数量不合法'],
+ ['errorCode' => 'Mismatch.ZoneIdAndVSwitchId', 'errorMessage' => 'The ZoneId and VSwitchId are mismatched.', 'description' => '参数ZoneId和vSwitchId的值不匹配'],
+ ['errorCode' => 'QuotaExceeded.LoadBalancersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额gwlb_quota_loadbalancers_num已超额度限制。'],
+ ['errorCode' => 'DuplicatedParam.TagKey', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '标签键参数重复'],
+ ['errorCode' => 'IllegalParam.TagKey', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''],
+ ],
+ ],
+ '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' => '创建负载均衡实例',
'description' => '**请确保在使用该接口前,已充分了解网关型负载均衡产品的收费方式和[价格](~~2806160~~)**。'."\n"
@@ -496,97 +495,292 @@
.'- **CreateLoadBalancer**接口属于异步接口,即系统返回一个实例 ID,但该网关型负载均衡实例尚未创建成功,系统后台的创建任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~2853555~~)查询网关型负载均衡实例的创建状态:'."\n"
.' - 当网关型负载均衡实例处于**Provisioning**状态时,表示网关型负载均衡实例正在创建中。'."\n"
.' - 当网关型负载均衡实例处于**Active**状态时,表示网关型负载均衡实例创建成功。',
- ],
- 'UpdateLoadBalancerAttribute' => [
- 'summary' => '更新负载均衡实例属性。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '100', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateLoadBalancer'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'gwlb:CreateLoadBalancer',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/*'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'],
+ ],
+ ],
+ ],
],
+ ],
+ 'CreateServerGroup' => [
+ 'summary' => '创建负载均衡服务器组。',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
+ 'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '221916',
- 'abilityTreeNodes' => [
- 'FEATUREslbHRNRPI',
- ],
+ 'abilityTreeCode' => '225035',
+ 'abilityTreeNodes' => ['FEATUREslb88O4KB', 'FEATUREslb98XMCW', 'FEATUREslb4EL8LZ', 'FEATUREslb5QFSS9'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'ServerGroupType',
'in' => 'formData',
'schema' => [
- 'description' => '网关型负载均衡实例的ID。',
+ 'title' => '服务器组类型',
+ 'description' => '服务器组类型。取值:'."\n"
+ ."\n"
+ .'- **Instance**(默认值):服务器类型,该类型服务器组支持添加**Ecs**、**Eni**、**Eci**类型实例。'."\n"
+ ."\n"
+ .'- **Ip**:IP地址类型,该类型服务器组支持直接添加IP地址类型的后端服务器。',
'type' => 'string',
- 'required' => true,
- 'example' => 'gwlb-9njtjmqt7zfcqm****',
+ 'required' => false,
+ 'example' => 'Instance',
+ 'enum' => ['Instance', 'Ip'],
],
],
[
- 'name' => 'LoadBalancerName',
+ 'name' => 'ServerGroupName',
+ 'in' => 'formData',
+ 'schema' => ['title' => '服务器组名称', 'description' => '服务器组名称。'."\n"
+ ."\n"
+ .'长度为2~128个字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'testServerGroupName'],
+ ],
+ [
+ 'name' => 'Protocol',
'in' => 'formData',
'schema' => [
- 'description' => '网关型负载均衡实例名称。'."\n"
+ 'title' => '后端服务器类型',
+ 'description' => '后端转发协议。取值:'."\n"
."\n"
- .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。',
+ .'- **GENEVE**(默认值)。',
'type' => 'string',
'required' => false,
- 'example' => 'testGwlbName',
+ 'enumValueTitles' => ['GENEVE' => 'GENEVE'],
+ 'example' => 'GENEVE',
+ 'enum' => ['GENEVE'],
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'Scheduler',
'in' => 'formData',
'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求。取值:'."\n"
- .'- **true**:发送检查请求,不会更新实例属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
+ 'title' => '会话保持类型',
+ 'description' => '调度算法。取值:'."\n"
+ ."\n"
+ .'- **5TCH**(默认值):五元组哈希,基于五元组(源IP、目的IP、源端口、目的端口和协议)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n"
+ ."\n"
+ .'- **3TCH**:三元组哈希,基于三元组(源IP、目的IP和协议)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n"
+ ."\n"
+ .'- **2TCH**:二元组哈希,基于二元组(源IP和目的IP)的一致性哈希,相同的流会调度到相同的后端服务器。',
+ 'type' => 'string',
'required' => false,
- 'example' => 'false',
+ 'example' => '5TCH',
+ 'enum' => ['5TCH', '3TCH', '2TCH'],
],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'ServerFailoverMode',
'in' => 'formData',
'schema' => [
- 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
- ."\n"
- .'由客户端生成该参数值,要保证在不同请求间唯一。ClientToken只支持ASCII字符。'."\n"
+ 'title' => '',
+ 'description' => '服务器异常时,存量流量的处理方式。取值:'."\n"
."\n"
- .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。',
+ .'- **NoRebalance(默认值)**:不重新平衡现有流量。'."\n"
+ .'- **Rebalance**:重新平衡现有流量。',
'type' => 'string',
'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-426655440000',
+ 'example' => 'NoRebalance',
+ 'enum' => ['NoRebalance', 'Rebalance'],
],
],
[
- 'name' => 'TrafficMode',
+ 'name' => 'VpcId',
+ 'in' => 'formData',
+ 'schema' => ['title' => '服务器组所在vpc的id', 'description' => 'VPC实例ID。'."\n"
+ ."\n"
+ .'> 如果**ServerGroupType**取值为**Instance**时,只有该VPC下的服务器可以加入到该服务器组。', 'type' => 'string', 'required' => true, 'docRequired' => false, 'example' => 'vpc-bp15zckdt37pq72zv****'],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'formData',
+ 'schema' => ['title' => '企业资源组id', 'description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'],
+ ],
+ [
+ 'name' => 'ConnectionDrainConfig',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'description' => '流量模式。取值:'."\n"
+ 'title' => '连接优雅中断配置',
+ 'description' => '连接优雅中断相关配置。',
+ 'type' => 'object',
+ 'properties' => [
+ 'ConnectionDrainEnabled' => ['title' => '是否开启连接优雅中断', 'description' => '是否开启连接优雅中断。取值:'."\n"
+ ."\n"
+ .'- **true**:开启。'."\n"
+ ."\n"
+ .'- **false**(默认值):关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
+ 'ConnectionDrainTimeout' => ['title' => '连接优雅中断超时时间', 'description' => '连接优雅中断超时时间。'."\n"
+ ."\n"
+ .'单位:秒。'."\n"
+ ."\n"
+ .'取值范围:**1**~**3600**。'."\n"
+ ."\n"
+ .'默认值:**300**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '300'],
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConfig',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '健康检查配置',
+ 'description' => '健康检查相关配置。',
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckConnectPort' => ['title' => '健康检查使用的端口', 'description' => '健康检查使用的后端服务器的端口。'."\n"
+ ."\n"
+ .'取值范围: **1**~**65535**。'."\n"
+ ."\n"
+ .'默认值:**80**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80'],
+ 'HealthCheckConnectTimeout' => ['title' => '健康检查响应的最大超时时间', 'description' => '健康检查响应的最大超时时间。'."\n"
+ ."\n"
+ .'单位:秒。'."\n"
+ ."\n"
+ .'取值范围:**1**~**300**。'."\n"
+ ."\n"
+ .'默认值:**5**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'],
+ 'HealthCheckDomain' => ['title' => '健康检查的域名', 'description' => '用于健康检查的域名。取值:'."\n"
+ ."\n"
+ .'- **$SERVER_IP**(默认值):使用后端服务器内网IP。'."\n"
+ ."\n"
+ .'- **domain**:指定特定域名。长度限制1~80个字符,只能使用大小写字母、数字、短划线(-)、半角句号(.)。'."\n"
+ ."\n"
+ .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => '$SERVER_IP'],
+ 'HealthCheckEnabled' => ['title' => '是否开启健康检查', 'description' => '是否开启健康检查,取值:'."\n"
+ ."\n"
+ .'- **true**(默认值):开启。'."\n"
+ ."\n"
+ .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
+ 'HealthCheckHttpCode' => [
+ 'title' => '状态码,多个状态码用逗号分隔',
+ 'description' => '健康状态返回码列表。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n"
+ .'取值:'."\n"
+ .'- **http\\_2xx**'."\n"
+ .'- **http\\_3xx**'."\n"
+ .'- **http\\_4xx**'."\n"
+ .'- **http\\_5xx**'."\n"
+ ."\n"
+ .'默认值:**http\\_2xx** 。'."\n"
+ ."\n"
+ .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'http_2xx',
+ 'enum' => ['http_2xx', 'http_3xx', 'http_4xx', 'http_5xx'],
+ ],
+ 'required' => false,
+ ],
+ 'HealthCheckInterval' => ['title' => '健康检查时间间隔', 'description' => '健康检查的时间间隔。'."\n"
+ ."\n"
+ .'单位:秒。'."\n"
+ ."\n"
+ .'取值范围:**1**~**50**。'."\n"
+ ."\n"
+ .'默认值:**10**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'],
+ 'HealthCheckPath' => ['title' => '健康检查的path', 'description' => '健康检查路径。'."\n"
+ ."\n"
+ .'长度为1~80个字符,只能使用大小写英文字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)和and(&)以及扩展字符集_;~!()*[]@$^:\',+='."\n"
+ ."\n"
+ .'必须以正斜线(/)开头。'."\n"
+ .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => '/test/index.html'],
+ 'HealthCheckProtocol' => [
+ 'title' => '健康检查协议类型',
+ 'description' => '健康检查协议,取值:'."\n"
+ ."\n"
+ .'- **TCP**(默认值):通过发送SYN握手报文来检测服务器端口是否存活。'."\n"
+ ."\n"
+ .'- **HTTP**:通过发送GET请求模拟浏览器的访问行为来检查服务器应用是否健康。',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TCP',
+ 'enum' => ['TCP', 'HTTP'],
+ ],
+ 'HealthyThreshold' => ['title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success', 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n"
+ ."\n"
+ .'取值范围:**2**~**10**。'."\n"
+ ."\n"
+ .'默认值:**2**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'],
+ 'UnhealthyThreshold' => ['title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail', 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n"
+ ."\n"
+ .'取值范围:**2**~**10**。'."\n"
+ ."\n"
+ .'默认值:**2**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'],
+ 'HealthCheckReq' => ['type' => 'string'],
+ 'HealthCheckExp' => ['type' => 'string'],
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '标签列表',
+ 'description' => '标签列表。'."\n"
."\n"
- .'- **LoadBalance**:负载均衡。'."\n"
- .'- **ByPass**:绕行模式。',
- 'type' => 'string',
+ .'一次调用最多支持 20 个标签。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '标签。',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => '标签键。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'testTagKey'],
+ 'Value' => ['description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'testTagValue'],
+ ],
+ 'required' => false,
+ ],
'required' => false,
- 'example' => 'LoadBalance',
+ 'maxItems' => 20,
],
],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求。取值:'."\n"
+ .'- **true**:发送检查请求,不会创建服务器组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'False'],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
+ ."\n"
+ .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
+ ],
],
'responses' => [
200 => [
@@ -595,234 +789,147 @@
'description' => '',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => 'B956C629-0E8C-5EFF-BAC1-B0E3A8C5CBDD',
- ],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'],
+ 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****'],
],
],
],
],
'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.',
- ],
+ ['errorCode' => 'IllegalParam.HealthCheckProtocol', 'errorMessage' => 'The param of %s is illegal.', 'description' => '健康检查协议非法,请检查输入参数。'],
+ ['errorCode' => 'QuotaExceeded.ServerGroupsNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额gwlb_quota_servergroups_num已超额度限制。'],
+ ['errorCode' => 'DuplicatedParam.TagKey', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '标签键参数重复'],
+ ['errorCode' => 'IllegalParam.TagKey', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Vpc', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的专有网络资源不存在。'],
],
],
- 'staticInfo' => [
- 'returnType' => 'asynchronous',
- 'callback' => 'Gwlb::2024-04-15::GetLoadBalancerAttribute',
- 'callbackInterval' => 3000,
- 'maxCallbackTimes' => 100,
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Gwlb::2024-04-15::ListServerGroups', 'callbackInterval' => 3000, 'maxCallbackTimes' => 100],
+ 'title' => '创建服务器组',
+ 'description' => '**CreateServerGroup**接口属于异步接口,即系统返回一个请求ID,但该服务器组尚未创建成功,系统后台的创建任务仍在进行。您可以调用 ListServerGroups 查询服务器组的创建状态:'."\n"
+ .'- 当服务器组处于**Creating**状态时,表示服务器组正在创建中。'."\n"
+ .'- 当服务器组处于**Available**状态时,表示服务器组创建成功。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateServerGroup'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'gwlb:CreateServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/*'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'],
+ ],
+ ],
+ ],
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B956C629-0E8C-5EFF-BAC1-B0E3A8C5CBDD\\"\\n}","type":"json"}]',
- 'title' => '更新负载均衡实例属性',
- 'description' => '- UpdateLoadBalancerAttribute 属于异步接口,即系统返回一个请求 ID,但该实例属性尚未修改成功,系统后台的变更任务仍在进行。您可以调用 GetLoadBalancerAttribute 查询网关型负载均衡实例的更新状态:'."\n"
- .' - 当网关型负载均衡实例处于 Configuring 状态时,表示网关型负载均衡实例正在更新中。'."\n"
- .' - 当网关型负载均衡实例处于 Active 状态时,表示网关型负载均衡实例更新成功。',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\"\\n}","type":"json"}]',
],
- 'UpdateLoadBalancerZones' => [
- 'summary' => '更新负载均衡实例可用区。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'DeleteListener' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
+ 'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '221912',
- 'abilityTreeNodes' => [
- 'FEATUREslb23BWZ4',
- ],
+ 'abilityTreeCode' => '221398',
+ 'abilityTreeNodes' => ['FEATUREslbC68LB1'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'ListenerId',
'in' => 'formData',
- 'schema' => [
- 'description' => '网关型负载均衡实例的ID。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'gwlb-9njtjmqt7zfcqm****',
- ],
- ],
- [
- 'name' => 'ZoneMappings',
- 'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'description' => '可用区及交换机映射列表。至少需要添加一个可用区,最多支持添加20个可用区。若当前地域支持2个及以上的可用区,建议添加2个及以上可用区。',
- 'type' => 'array',
- 'items' => [
- 'description' => '可用区及交换机映射对象。',
- 'type' => 'object',
- 'properties' => [
- 'VSwitchId' => [
- 'description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'vsw-bp1n75pbs77v5q6p3****',
- ],
- 'ZoneId' => [
- 'description' => '可用区ID,通过调用网关型负载均衡DescribeZones接口获得。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cn-hangzhou-h',
- ],
- ],
- 'required' => false,
- ],
- 'required' => true,
- 'maxItems' => 20,
- ],
+ 'schema' => ['description' => '监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-brx2y3hqdincizg***'],
],
[
'name' => 'DryRun',
'in' => 'formData',
- 'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求。取值:'."\n"
- .'- **true**:发送检查请求,不会更新实例可用区。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求。取值:'."\n"
+ .'- **true**:发送检查请求,不会删除监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
'name' => 'ClientToken',
'in' => 'formData',
- 'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
- ."\n"
- .'由客户端生成该参数值,要保证在不同请求间唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
+ ."\n"
+ .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
- 'description' => '',
+ 'description' => '请求的返回值。',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => 'ED8905C2-A4F6-5E43-87B7-6A5DC8757146',
- ],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5C6E3548-086F-5FF6-A2B3-B1871B3AB488'],
],
],
],
],
'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.',
- ],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => '资源%s业务状态%s不支持当前操作'],
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作。'],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的负载均衡资源不存在'],
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的监听资源不存在'],
],
],
- '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' => '更新负载均衡可用区',
- 'description' => '**请确保在使用该接口前,已充分了解网关型负载均衡产品的收费方式和[价格](~~2806160~~)。**'."\n"
- ."\n"
- .'**UpdateLoadBalancerZones**属于异步接口,即系统返回一个请求ID,但该实例可用区及可用区属性尚未修改成功,系统后台的变更任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~2853555~~)查询网关型负载均衡实例的更新状态:'."\n"
- ."\n"
- .'- 当网关型负载均衡实例处于**Configuring**状态时,表示网关型负载均衡实例正在更新中。'."\n"
- .'- 当网关型负载均衡实例处于**Active**状态时,表示网关型负载均衡实例更新成功。'."\n"
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Gwlb::2024-04-15::GetListenerAttribute', 'callbackInterval' => 3000, 'maxCallbackTimes' => 100],
+ 'title' => '删除监听',
+ 'summary' => '删除负载均衡监听器。',
+ 'description' => '**DeleteListener** 接口属于异步接口,即系统返回一个请求 ID,但该监听尚未删除成功,系统后台的删除任务仍在进行。您可以调用 **GetListenerAttribute** 查询监听的删除状态:'."\n"
."\n"
- .'><notice>每次调用该接口时,请确保您传入该网关型负载均衡实例的所有可用区参数,包括当前和新增的可用区。如您未传入当前的可用区参数,表示需要将当前可用区删除。您可以通过 GetLoadBalancerAttribute 接口查询该实例的当前可用区。></notice>',
+ .'- 当监听器处于 **Deleting** 状态时,表示监听正在删除中。'."\n"
+ .'- 当查询不到该监听时,表示监听删除成功。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteListener'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'gwlb:DeleteListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5C6E3548-086F-5FF6-A2B3-B1871B3AB488\\"\\n}","type":"json"}]',
],
'DeleteLoadBalancer' => [
- 'summary' => '删除负载均衡实例。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -835,9 +942,7 @@
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '221917',
- 'abilityTreeNodes' => [
- 'FEATUREslb12YEWG',
- ],
+ 'abilityTreeNodes' => ['FEATUREslb12YEWG'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
@@ -845,40 +950,23 @@
[
'name' => 'LoadBalancerId',
'in' => 'formData',
- 'schema' => [
- 'description' => '网关型负载均衡实例的ID',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'gwlb-9njtjmqt7zfcqm****',
- ],
+ 'schema' => ['description' => '网关型负载均衡实例的ID', 'type' => 'string', 'required' => true, 'example' => 'gwlb-9njtjmqt7zfcqm****'],
],
[
'name' => 'DryRun',
'in' => 'formData',
- 'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求。取值:'."\n"
- .'- **true**:发送检查请求,不会删除实例。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求。取值:'."\n"
+ .'- **true**:发送检查请求,不会删除实例。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
'name' => 'ClientToken',
'in' => 'formData',
- 'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
- ."\n"
- .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
+ ."\n"
+ .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
],
'responses' => [
@@ -888,281 +976,443 @@
'description' => '',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '37907828-01AB-5AC3-9DDE-25D419091D54',
- ],
+ 'RequestId' => ['description' => '请求ID。', '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.',
- ],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => '资源%s业务状态%s不支持当前操作'],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
+ ['errorCode' => 'MissingParam.LoadBalancerId', 'errorMessage' => 'The param of LoadBalancerId is missing.', 'description' => '负载均衡ID参数缺失'],
+ ['errorCode' => 'ResourceAlreadyAssociated.GwlbeAssociated', 'errorMessage' => 'The specified resource of %s is already associated.', 'description' => '指定资源%s已被关联'],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"37907828-01AB-5AC3-9DDE-25D419091D54\\"\\n}","type":"json"}]',
+ 'staticInfo' => ['returnType' => 'synchronous'],
'title' => '删除负载均衡实例',
- ],
- 'ListLoadBalancers' => [
- 'summary' => '查询负载均衡实例列表。',
- 'methods' => [
- 'post',
- 'get',
+ 'summary' => '删除负载均衡实例。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteLoadBalancer'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'gwlb:DeleteLoadBalancer',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"37907828-01AB-5AC3-9DDE-25D419091D54\\"\\n}","type":"json"}]',
+ ],
+ 'DeleteServerGroup' => [
+ 'methods' => ['post'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'list',
+ 'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '221914',
- 'abilityTreeNodes' => [
- 'FEATUREslbHRNRPI',
- ],
+ 'abilityTreeCode' => '225038',
+ 'abilityTreeNodes' => ['FEATUREslb5QFSS9'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ZoneIds',
+ 'name' => 'ServerGroupId',
'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'description' => '可用区ID列表。一次最多支持查询20个可用区ID。',
- 'type' => 'array',
- 'items' => [
- 'description' => '可用区ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'cn-beijing-h',
- ],
- 'required' => false,
- 'maxItems' => 20,
- ],
+ 'schema' => ['title' => '服务器组ID', 'description' => '服务器组ID', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****'],
],
[
- 'name' => 'VpcIds',
+ 'name' => 'DryRun',
'in' => 'formData',
- 'style' => 'flat',
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求,取值:'."\n"
+ .'- **true**:发送检查请求,不会删除服务器组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2XX状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
+ ."\n"
+ .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '专有网络唯一标识',
- 'description' => '专有网络ID列表。一次最多支持查询20个VPC ID。',
- 'type' => 'array',
- 'items' => [
- 'description' => '专用网络ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'vpc-bp1xuejaht4o7yhh2****',
+ 'title' => '',
+ 'description' => '返回数据结构体。',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'],
],
- 'required' => false,
- 'maxItems' => 20,
],
],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectStatus.BackendServer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '服务器的状态无法进行当前操作,请检查服务器当前是否处于其他操作下。'],
+ ['errorCode' => 'ResourceInUse.ServerGroup', 'errorMessage' => 'The specified resource of %s is in use.', 'description' => '指定的服务器组资源正在使用中,请稍后重试。'],
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的服务器组资源不存在。'],
+ ],
+ ],
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => '删除服务器组',
+ 'summary' => '删除负载均衡服务器组。',
+ 'description' => '服务器组未被任何监听使用时支持删除。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteServerGroup'],
+ ],
+ ],
+ 'ramActions' => [
[
- 'name' => 'AddressIpVersion',
- 'in' => 'formData',
- 'schema' => [
- 'title' => '协议类型',
- 'description' => '协议版本。取值:'."\n"
- ."\n"
- .'- **Ipv4**:Ipv4类型。',
- 'type' => 'string',
- 'required' => false,
- 'enumValueTitles' => [
- 'IPv4' => 'IPv4',
- 'DualStack' => 'DualStack',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'gwlb:DeleteServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
],
- 'example' => 'Ipv4',
- 'enum' => [],
],
],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]',
+ ],
+ 'DescribeRegions' => [
+ 'summary' => '查询负载均衡支持地域和服务地址',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
[
- 'name' => 'LoadBalancerStatus',
+ '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' => '支持的语言。取值:'."\n"
+ ."\n"
+ .'- **zh-CN**:中文'."\n"
+ ."\n"
+ .'- **en-US**(默认值):英文'."\n"
+ ."\n"
+ .'- **ja**:日文', 'type' => 'string', 'required' => false, 'example' => 'zh-CN'],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '实例状态',
- 'description' => '网关型负载均衡的实例状态。取值:'."\n"
- .'- **Active**:运行中。'."\n"
- .'- **Inactive**:已停止,表示实例监听不会再转发流量。'."\n"
- .'- **Provisioning**:创建中。'."\n"
- .'- **Configuring**:变配中。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Active',
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Regions' => [
+ 'description' => '地域列表。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '地域信息对象。',
+ 'type' => 'object',
+ 'properties' => [
+ 'LocalName' => ['description' => '地域名称。', 'type' => 'string', 'example' => 'China (Hangzhou)'],
+ 'RegionEndpoint' => ['description' => '地域服务地址。', 'type' => 'string', 'example' => 'gwlb.cn-hangzhou.aliyuncs.com'],
+ 'RegionId' => ['description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'],
+ ],
+ ],
+ ],
+ 'RequestId' => ['description' => '请求ID。', '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' => '查询地域',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeRegions'],
+ ],
+ ],
+ 'ramActions' => [],
+ ],
+ 'DescribeZones' => [
+ 'summary' => '查询负载均衡支持可用区。',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
[
- 'name' => 'LoadBalancerBusinessStatus',
+ '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' => '支持的语言。取值:'."\n"
+ ."\n"
+ .'- **zh-CN**:中文'."\n"
+ ."\n"
+ .'- **en-US**(默认值):英文'."\n"
+ ."\n"
+ .'- **ja**:日文', 'type' => 'string', 'required' => false, 'example' => 'zh-CN'],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '实例业务状态',
- 'description' => '网关型负载均衡的业务状态。取值:'."\n"
- .'- **Normal**:正常状态。'."\n"
- .'- **FinancialLocked**:欠费锁定状态。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Normal',
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4C605F7E-D0F6-54E2-B004-F9B132F0D8B2'],
+ 'Zones' => [
+ 'description' => '可用区列表。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '可用区信息对象。',
+ 'type' => 'object',
+ 'properties' => [
+ 'LocalName' => ['description' => '可用区名称。', 'type' => 'string', 'example' => 'Hangzhou Zone G'],
+ 'ZoneId' => ['description' => '可用区ID。', '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' => '查询可用区',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeZones'],
+ ],
+ ],
+ 'ramActions' => [],
+ ],
+ 'GetListenerAttribute' => [
+ 'summary' => '查询负载均衡实例的监听器详情。',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
[
- 'name' => 'LoadBalancerNames',
+ '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',
- 'style' => 'flat',
+ 'schema' => ['description' => '监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-brx2y3hqdinciz****'],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'title' => '负载均衡实例名称',
- 'description' => '网关型负载均衡实例名称列表。一次最多支持查询20个实例名称。',
- 'type' => 'array',
- 'items' => [
- 'description' => '网络型负载均衡实例名称。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testGwlbName',
+ 'title' => '',
+ 'description' => '请求的返回值。',
+ 'type' => 'object',
+ 'properties' => [
+ 'ListenerDescription' => ['title' => '监听描述', 'description' => '自定义监听描述。'."\n"
+ ."\n"
+ .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', 'type' => 'string', 'example' => 'listener_description'],
+ 'ListenerId' => ['title' => '', 'description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-3kbj3587mqhm3p****'],
+ 'ListenerStatus' => ['title' => '监听状态', 'description' => '当前监听的状态。取值:'."\n"
+ ."\n"
+ .'- **Provisioning**:创建中。'."\n"
+ .'- **Running**:运行中。'."\n"
+ .'- **Configuring**:配置中。'."\n"
+ .'- **Deleting**:删除中。', 'type' => 'string', 'example' => 'Provisioning'],
+ 'LoadBalancerId' => ['title' => '负载均衡实例ID', 'description' => '网关型负载均衡实例ID。', 'type' => 'string', 'example' => 'gwlb-te609d6696632f76****'],
+ 'RegionId' => ['title' => '', 'description' => '网关型负载均衡实例所在的地域 ID。', 'type' => 'string', 'example' => 'cn-hangzhou'],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '75CC3312-7757-5EE1-90D8-49CEA66608AE'],
+ 'ServerGroupId' => ['title' => '服务器组ID', 'description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-sp8d2r6y7t0xtl****'],
+ 'TcpIdleTimeout' => ['title' => 'TCP连接空闲超时时间。', 'description' => 'TCP连接空闲超时时间。', 'type' => 'integer', 'format' => 'int32', 'example' => '350'],
+ 'Tags' => [
+ 'description' => '标签列表。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '标签。',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => '标签键。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'example' => 'testKey'],
+ 'Value' => ['description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。', 'type' => 'string', 'example' => 'testValue'],
+ ],
+ ],
+ ],
],
- 'required' => false,
- 'maxItems' => 20,
],
],
+ ],
+ 'errorCodes' => [
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的监听资源不存在'],
+ ],
+ ],
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => '查询监听详细信息',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetListenerAttribute'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'gwlb:GetListenerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
+ ],
+ ],
+ ],
+ ],
+ '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"}]',
+ ],
+ 'GetListenerHealthStatus' => [
+ 'summary' => '查询负载均衡实例监听的健康检查状态。',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
[
- 'name' => 'ResourceGroupId',
+ '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' => [
- 'title' => '企业资源组标识',
- 'description' => '资源组ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-aek2htf5qsyrn****',
- ],
+ 'schema' => ['description' => '监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-7sixpvm5fc3v0b****'],
],
[
- 'name' => 'LoadBalancerIds',
+ 'name' => 'NextToken',
'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '实例列表',
- 'description' => '网关型负载均衡实例的ID列表。一次最多支持查询20个实例。',
- 'type' => 'array',
- 'items' => [
- 'description' => '网关型负载均衡实例的ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'gwlb-cp6prgqy40hols****',
- ],
- 'required' => false,
- 'maxItems' => 20,
- ],
+ 'schema' => ['title' => '分页游标', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
+ .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
+ .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'required' => false, 'example' => '4f1d7cc9f51e18904e8a063603a6b0c3d03bc69f78734254e0b5e8707e68****'],
],
[
- 'name' => 'TrafficMode',
+ 'name' => 'MaxResults',
'in' => 'formData',
- 'schema' => [
- 'description' => '流量模式。取值:'."\n"
- ."\n"
- .'- **LoadBalance**:负载均衡。'."\n"
- .'- **ByPass**:绕行模式。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'LoadBalance',
- ],
+ 'schema' => ['title' => '分页大小', 'description' => '分批次查询时每次显示的条目数。取值范围:1~1000,默认值为 20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '1000', 'minimum' => '1', 'example' => '20'],
],
[
- 'name' => 'Tag',
+ 'name' => 'Skip',
+ 'in' => 'formData',
+ 'schema' => ['description' => '分页查询时,跳过的条目数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'],
+ ],
+ [
+ 'name' => 'Filter',
'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'title' => '标签',
- 'description' => '标签列表。一次调用最多支持20个标签。',
+ 'description' => '动态查询条件列表。一次最多添加20个动态查询条件。',
'type' => 'array',
'items' => [
- 'description' => '标签信息对象。',
+ 'description' => '动态查询条件。',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => '标签键。一旦传入该值,则不允许为空字符串。'."\n"
- ."\n"
- .'一个标签健最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。',
+ 'Name' => [
+ 'description' => '动态查询条件名称,可选择一个或者多个名称进行查询。取值范围:'."\n"
+ .'- **Status**:健康检查状态。'."\n"
+ .'- **ReasonCode**:Status 为异常状态时的详细原因。'."\n"
+ .'- **ServerId**:后端服务器ID。'."\n"
+ .'- **ServerIp**:后端服务器IP地址。',
'type' => 'string',
'required' => false,
- 'example' => 'testTagKey',
+ 'example' => 'Status',
+ 'enum' => ['Status', 'ReasonCode', 'ServerId', 'ServerIp'],
],
- 'Value' => [
- 'description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。',
- 'type' => 'string',
+ 'Values' => [
+ 'description' => '动态查询条件的值列表。一次最多添加20个值。',
+ 'type' => 'array',
+ 'items' => ['description' => '动态查询条件的值。取值范围参考返回参数中相应字段的取值。', 'type' => 'string', 'required' => false, 'example' => 'Unhealthy'],
'required' => false,
- 'example' => 'testTagValue',
+ 'maxItems' => 20,
+ 'minItems' => 1,
],
],
'required' => false,
],
'required' => false,
'maxItems' => 20,
- ],
- ],
- [
- 'name' => 'NextToken',
- 'in' => 'formData',
- 'schema' => [
- 'title' => '分页游标',
- 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
- .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
- .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'WyJyb290IiwibiIsIm4iLDEsMCwxNjg1MDY1NTgyNzYwLCI2NDcwMGY2ZTc2Zjc0MWFiZGEyZjQyNzc4ZDk2MmJkOTk3ZGZmM2Nm****',
- ],
- ],
- [
- 'name' => 'MaxResults',
- 'in' => 'formData',
- 'schema' => [
- 'title' => '分页大小',
- 'description' => '分批次查询时每次显示的条目数。取值范围:1~1000,默认值:20。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '20',
- ],
- ],
- [
- 'name' => 'Skip',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '查询时跳过指定的条目数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
+ 'minItems' => 1,
],
],
],
@@ -1170,177 +1420,114 @@
200 => [
'schema' => [
'title' => '',
- 'description' => '',
+ 'description' => '请求的返回值。',
'type' => 'object',
'properties' => [
- 'LoadBalancers' => [
- 'description' => '网关型负载均衡实例列表。',
+ 'ListenerHealthStatus' => [
+ 'description' => '监听的服务器组健康检查状态列表。',
'type' => 'array',
'items' => [
- 'description' => '网关型负载均衡实例对象。',
+ 'description' => '监听的服务器组健康检查状态结构。',
'type' => 'object',
'properties' => [
- 'AddressIpVersion' => [
- 'description' => '协议版本。取值:'."\n"
- ."\n"
- .'- **IPv4**:IPv4类型。',
- 'type' => 'string',
- 'example' => 'IPv4',
- ],
- 'CreateTime' => [
- 'description' => '资源创建时间,使用格林威治时间,格式为**yyyy-MM-ddTHH:mm:ssZ**。',
- 'type' => 'string',
- 'example' => '2024-08-05T18:24:07Z',
- ],
- 'LoadBalancerBusinessStatus' => [
- 'description' => '网关型负载均衡的业务状态。取值:'."\n"
- .'- **Normal**:正常状态。'."\n"
- .'- **FinancialLocked**:欠费锁定状态。',
- 'type' => 'string',
- 'example' => 'Normal',
- ],
- 'LoadBalancerId' => [
- 'description' => '网关型负载均衡实例的ID。',
- 'type' => 'string',
- 'example' => 'gwlb-9njtjmqt7zfcqm****',
- ],
- 'LoadBalancerName' => [
- 'description' => '网关型负载均衡实例名称。'."\n"
- ."\n"
- .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。',
- 'type' => 'string',
- 'example' => 'testGwlbName',
- ],
- 'LoadBalancerStatus' => [
- 'description' => '网关型负载均衡的实例状态。取值:'."\n"
- .'- **Active**:运行中。'."\n"
- .'- **Inactive**:已停止,表示实例监听不会再转发流量。'."\n"
- .'- **Provisioning**:创建中。'."\n"
- .'- **Configuring**:变配中。',
- 'type' => 'string',
- 'example' => 'Active',
- ],
- 'ResourceGroupId' => [
- 'description' => '资源组ID。',
- 'type' => 'string',
- 'example' => 'rg-aek26jasguy****',
- ],
- 'Tags' => [
- 'description' => '标签列表。',
- 'type' => 'array',
- 'items' => [
- 'description' => '标签对象。',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => '标签键。一旦传入该值,则不允许为空字符串。'."\n"
- ."\n"
- .'一个标签健最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。',
- 'type' => 'string',
- 'example' => 'testTagKey',
- ],
- 'Value' => [
- 'description' => '标签值。最多支持输入20个标签值。一旦传入该值,可以为空字符串。'."\n"
- ."\n"
- .'一个标签值最多支持128个字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-),不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。',
- 'type' => 'string',
- 'example' => 'testTagValue',
- ],
- ],
- ],
- ],
- 'VpcId' => [
- 'description' => '专用网络ID。',
- 'type' => 'string',
- 'example' => 'vpc-uf6eg0vndlsa84n7r****',
- ],
- 'ZoneMappings' => [
- 'description' => '可用区及交换机映射列表。至少需要添加一个可用区,最多支持添加20个可用区。若当前地域支持2个及以上的可用区,建议添加2个及以上可用区。',
+ 'ListenerId' => ['description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-sg8aha6pzjavvo****'],
+ 'ServerGroupInfos' => [
+ 'description' => '服务器组信息列表。',
'type' => 'array',
'items' => [
- 'description' => '可用区及交换机映射对象。',
+ 'description' => '服务器组信息。',
'type' => 'object',
'properties' => [
- 'LoadBalancerAddresses' => [
- 'description' => '网关型负载均衡实例地址列表。',
+ 'HealthCheckEnabled' => ['description' => '是否开启健康检查。取值:'."\n"
+ .'- **true**:开启。'."\n"
+ .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'true'],
+ 'ServerGroupId' => ['description' => '服务器组 ID。', 'type' => 'string', 'example' => 'sgp-0vdsbyszro3nr6****'],
+ 'Servers' => [
+ 'description' => '后端服务器列表。',
'type' => 'array',
'items' => [
- 'description' => '网关型负载均衡实例地址对象。',
+ 'description' => '后端服务器。',
'type' => 'object',
'properties' => [
- 'EniId' => [
- 'description' => '弹性网卡ENI ID。',
- 'type' => 'string',
- 'example' => 'eni-bp17qv9zbzyqy629****',
- ],
- 'PrivateIpv4Address' => [
- 'description' => 'IPv4 私网地址。',
- 'type' => 'string',
- 'example' => '192.168.XX.XX',
+ 'Port' => ['title' => '服务器端口', 'description' => '后端服务器端口。', 'type' => 'integer', 'format' => 'int32', 'example' => '6081'],
+ 'Reason' => [
+ 'description' => '**Status**为异常状态时的详细原因。',
+ 'type' => 'object',
+ 'properties' => [
+ 'ReasonCode' => ['description' => '**Status**为异常状态时的详细原因,取值:'."\n"
+ ."\n"
+ .'- **CONNECT_TIMEOUT**:负载均衡健康检查时向后端服务器建立连接超时。'."\n"
+ .'- **CONNECT_FAIL**:负载均衡健康检查时向后端服务器建立连接失败。'."\n"
+ .'- **RECV_TIMEOUT**:负载均衡健康检查时从后端服务器接收响应超时。'."\n"
+ .'- **CONNECT_INTERRUPT**:负载均衡健康检查与后端服务器连接中断。'."\n"
+ .'- **HTTP_CODE_NOT_MATCH**:负载均衡健康 HTTP 检查时从后端服务器接收的响应码与预期配置返回码不一致。'."\n"
+ .'- **HTTP_INVALID_HEADER**:负载均衡健康 HTTP 检查时从后端服务器接收响应格式错误。', 'type' => 'string', 'example' => 'CONNECT_TIMEOUT'],
+ ],
],
+ 'ServerId' => ['title' => '服务器id', 'description' => '后端服务器ID。', 'type' => 'string', 'example' => 'i-2ze4rnh8yj9kif3z****'],
+ 'ServerIp' => ['title' => '服务器ip', 'description' => '后端服务器IP。', 'type' => 'string', 'example' => '192.168.0.XXX'],
+ 'Status' => ['description' => '后端服务器健康检查状态。取值:'."\n"
+ ."\n"
+ .'- **Initial**:初始化中,表示负载均衡实例配置了健康检查,但查不到数据。'."\n"
+ .'- **Unhealthy**:异常,表示连续上报不健康的状态。'."\n"
+ .'- **Unused**:未使用;'."\n"
+ .'- **Unavailable**:未开启,表示未开启健康检查;'."\n"
+ .'- **Healthy**:健康检查正常;', 'type' => 'string', 'example' => 'Healthy'],
],
],
],
- 'VSwitchId' => [
- 'description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。',
- 'type' => 'string',
- 'example' => 'vsw-2zemule5dz7okwqfv****',
- ],
- 'ZoneId' => [
- 'description' => '可用区ID,通过调用网关型负载均衡DescribeZones接口获得。',
- 'type' => 'string',
- 'example' => 'cn-hangzhou-g',
- ],
],
],
],
],
],
],
- 'MaxResults' => [
- 'description' => '分批次查询时每次显示的条目数。取值范围:1~1000,默认值:20。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
- ],
- 'NextToken' => [
- 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
- .'- 第一次查询和没有下一次查询时,均无需填写。'."\n"
- .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。',
- 'type' => 'string',
- 'example' => 'CAESGgoSChAKDGNvbXBsZXRlVGltZRABCgQiAggAGAAiQAoJAIldD2UAAAAACjMDLgAAADFTNzMyZDMwMzAzMDY5NzQzNDM0NmI3NzM2NjUzNzc4NzM2YTc0NjYzOTYz****',
- ],
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '378A80E9-4262-5D8E-8D62-0969E52D7358',
- ],
- 'TotalCount' => [
- 'description' => '列表条目总数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '100',
- ],
+ 'MaxResults' => ['description' => '分批次查询时每次显示的条目数。取值范围:1~1000,默认值为 20。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'],
+ 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
+ .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
+ .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'U12WEI6Ro2ol3wA54rBNSwdC5+lYy6q5SjIQEvc1wz5mjZxV+YjsHRdXV8XauY1BpOQIvwX63E0en54H3D****'],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0ED4F222-36A0-5470-8A9A-AAB4E96BAC1A'],
+ 'TotalCount' => ['description' => '本次请求条件下的数据总量。', 'type' => 'integer', 'format' => 'int32', 'example' => '31'],
],
],
],
],
- 'errorCodes' => [],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IllegalParam.FilterValue', 'errorMessage' => 'The param of %s is illegal.', 'description' => '动态查询条件的值非法'],
+ ['errorCode' => 'IllegalParam.FilterName', 'errorMessage' => 'The param of %s is illegal.', 'description' => '动态查询条件名称非法'],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的监听资源不存在'],
+ ],
],
- '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' => '查询负载均衡实例列表',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => '查询监听健康检查状态',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetListenerHealthStatus'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'gwlb:GetListenerHealthStatus',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
+ ],
+ ],
+ ],
+ ],
+ '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"}]',
],
'GetLoadBalancerAttribute' => [
- 'summary' => '查询负载均衡实例详细信息。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -1353,9 +1540,7 @@
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '221913',
- 'abilityTreeNodes' => [
- 'FEATUREslbHRNRPI',
- ],
+ 'abilityTreeNodes' => ['FEATUREslbHRNRPI'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
@@ -1363,12 +1548,7 @@
[
'name' => 'LoadBalancerId',
'in' => 'formData',
- 'schema' => [
- 'description' => '网关型负载均衡实例的ID',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'gwlb-9njtjmqt7zfcqm****',
- ],
+ 'schema' => ['description' => '网关型负载均衡实例的ID', 'type' => 'string', 'required' => true, 'example' => 'gwlb-9njtjmqt7zfcqm****'],
],
],
'responses' => [
@@ -1378,56 +1558,24 @@
'description' => '',
'type' => 'object',
'properties' => [
- 'AddressIpVersion' => [
- 'description' => '协议版本。取值:'."\n"
- ."\n"
- .'- **Ipv4**:Ipv4类型',
- 'type' => 'string',
- 'example' => 'Ipv4',
- ],
- 'CreateTime' => [
- 'description' => '资源创建时间,使用格林威治时间,格式为**yyyy-MM-ddTHH:mm:ssZ**。',
- 'type' => 'string',
- 'example' => '2024-07-08T10:12:58Z',
- ],
- 'LoadBalancerBusinessStatus' => [
- 'description' => '网关型负载均衡的业务状态。取值:'."\n"
- .'- **Normal**:正常状态。'."\n"
- .'- **FinancialLocked**:欠费锁定状态。',
- 'type' => 'string',
- 'example' => 'Normal',
- ],
- 'LoadBalancerId' => [
- 'description' => '网关型负载均衡实例的ID。',
- 'type' => 'string',
- 'example' => 'gwlb-9njtjmqt7zfcqm****',
- ],
- 'LoadBalancerName' => [
- 'description' => '网关型负载均衡实例名称。'."\n"
- ."\n"
- .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。',
- 'type' => 'string',
- 'example' => 'gwlb',
- ],
- 'LoadBalancerStatus' => [
- 'description' => '网关型负载均衡的实例状态。取值:'."\n"
- .'- **Active**:运行中。'."\n"
- .'- **Inactive**:已停止,表示实例监听不会再转发流量。'."\n"
- .'- **Provisioning**:创建中。'."\n"
- .'- **Configuring**:变配中。',
- 'type' => 'string',
- 'example' => 'Active',
- ],
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => 'B6DC5DDC-9560-59BF-80FA-ED1E5CB417DF',
- ],
- 'ResourceGroupId' => [
- 'description' => '资源组ID。',
- 'type' => 'string',
- 'example' => 'rg-acfmx7pmxcy****',
- ],
+ 'AddressIpVersion' => ['description' => '协议版本。取值:'."\n"
+ ."\n"
+ .'- **Ipv4**:Ipv4类型', 'type' => 'string', 'example' => 'Ipv4'],
+ 'CreateTime' => ['description' => '资源创建时间,使用格林威治时间,格式为**yyyy-MM-ddTHH:mm:ssZ**。', 'type' => 'string', 'example' => '2024-07-08T10:12:58Z'],
+ 'LoadBalancerBusinessStatus' => ['description' => '网关型负载均衡的业务状态。取值:'."\n"
+ .'- **Normal**:正常状态。'."\n"
+ .'- **FinancialLocked**:欠费锁定状态。', 'type' => 'string', 'example' => 'Normal'],
+ 'LoadBalancerId' => ['description' => '网关型负载均衡实例的ID。', 'type' => 'string', 'example' => 'gwlb-9njtjmqt7zfcqm****'],
+ 'LoadBalancerName' => ['description' => '网关型负载均衡实例名称。'."\n"
+ ."\n"
+ .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'example' => 'gwlb'],
+ 'LoadBalancerStatus' => ['description' => '网关型负载均衡的实例状态。取值:'."\n"
+ .'- **Active**:运行中。'."\n"
+ .'- **Inactive**:已停止,表示实例监听不会再转发流量。'."\n"
+ .'- **Provisioning**:创建中。'."\n"
+ .'- **Configuring**:变配中。', 'type' => 'string', 'example' => 'Active'],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6DC5DDC-9560-59BF-80FA-ED1E5CB417DF'],
+ 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-acfmx7pmxcy****'],
'Tags' => [
'description' => '标签列表。',
'type' => 'array',
@@ -1435,26 +1583,14 @@
'description' => '标签对象。',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => '标签键。一旦传入该值,则不允许为空字符串。'."\n"
- ."\n"
- .'一个标签健最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。',
- 'type' => 'string',
- 'example' => 'testTagKey',
- ],
- 'Value' => [
- 'description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。',
- 'type' => 'string',
- 'example' => 'testTagValue',
- ],
+ 'Key' => ['description' => '标签键。一旦传入该值,则不允许为空字符串。'."\n"
+ ."\n"
+ .'一个标签健最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'example' => 'testTagKey'],
+ 'Value' => ['description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。', 'type' => 'string', 'example' => 'testTagValue'],
],
],
],
- 'VpcId' => [
- 'description' => '专有网络ID。',
- 'type' => 'string',
- 'example' => 'vpc-k1aajsbwbaq4todet****',
- ],
+ 'VpcId' => ['description' => '专有网络ID。', 'type' => 'string', 'example' => 'vpc-k1aajsbwbaq4todet****'],
'ZoneMappings' => [
'description' => '可用区及交换机映射列表。至少需要添加一个可用区,最多支持添加20个可用区。若当前地域支持2个及以上的可用区,建议添加2个及以上可用区。',
'type' => 'array',
@@ -1469,1253 +1605,506 @@
'description' => '网关型负载均衡实例地址对象。',
'type' => 'object',
'properties' => [
- 'EniId' => [
- 'description' => '弹性网卡ENI ID。',
- 'type' => 'string',
- 'example' => 'eni-bp1iahwz3rzgvltz****',
- ],
- 'PrivateIpv4Address' => [
- 'description' => 'IPv4 私网地址。',
- 'type' => 'string',
- 'example' => '192.168.XX.XX',
- ],
+ 'EniId' => ['description' => '弹性网卡ENI ID。', 'type' => 'string', 'example' => 'eni-bp1iahwz3rzgvltz****'],
+ 'PrivateIpv4Address' => ['description' => 'IPv4 私网地址。', 'type' => 'string', 'example' => '192.168.XX.XX'],
],
],
],
- 'VSwitchId' => [
- 'description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。',
- 'type' => 'string',
- 'example' => 'vsw-uf6v8l7d2f1k53xrl****',
- ],
- 'ZoneId' => [
- 'description' => '可用区ID。',
- 'type' => 'string',
- 'example' => 'cn-hangzhou-j',
- ],
+ 'VSwitchId' => ['description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。', 'type' => 'string', 'example' => 'vsw-uf6v8l7d2f1k53xrl****'],
+ 'ZoneId' => ['description' => '可用区ID。', 'type' => 'string', 'example' => 'cn-hangzhou-j'],
],
],
],
- 'TrafficMode' => [
- 'description' => '流量模式。取值:'."\n"
- ."\n"
- .'- **LoadBalance**:负载均衡。'."\n"
- .'- **ByPass**:绕行模式。',
- 'type' => 'string',
- 'example' => 'LoadBalance',
- ],
+ 'TrafficMode' => ['description' => '流量模式。取值:'."\n"
+ ."\n"
+ .'- **LoadBalance**:负载均衡。'."\n"
+ .'- **ByPass**:绕行模式。', '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.',
- ],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''],
+ ['errorCode' => 'MissingParam.LoadBalancerId', 'errorMessage' => 'The param of LoadBalancerId is missing.', 'description' => '负载均衡ID参数缺失'],
],
],
- '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"}]',
+ 'staticInfo' => ['returnType' => 'synchronous'],
'title' => '查询负载均衡实例详细信息',
- ],
- 'CreateServerGroup' => [
- 'summary' => '创建负载均衡服务器组。',
- 'methods' => [
- 'post',
- 'get',
+ 'summary' => '查询负载均衡实例详细信息。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetLoadBalancerAttribute'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'gwlb:GetLoadBalancerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
+ ],
],
+ '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"}]',
+ ],
+ 'ListListeners' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'create',
+ 'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '225035',
- 'abilityTreeNodes' => [
- 'FEATUREslb88O4KB',
- 'FEATUREslb98XMCW',
- 'FEATUREslb4EL8LZ',
- 'FEATUREslb5QFSS9',
- ],
+ 'abilityTreeCode' => '221401',
+ 'abilityTreeNodes' => ['FEATUREslbC68LB1'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ServerGroupType',
- 'in' => 'formData',
- 'schema' => [
- 'title' => '服务器组类型',
- 'description' => '服务器组类型。取值:'."\n"
- ."\n"
- .'- **Instance**(默认值):服务器类型,该类型服务器组支持添加**Ecs**、**Eni**、**Eci**类型实例。'."\n"
- ."\n"
- .'- **Ip**:IP地址类型,该类型服务器组支持直接添加IP地址类型的后端服务器。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Instance',
- 'enum' => [
- 'Instance',
- 'Ip',
- ],
- ],
- ],
- [
- 'name' => 'ServerGroupName',
- 'in' => 'formData',
- 'schema' => [
- 'title' => '服务器组名称',
- 'description' => '服务器组名称。'."\n"
- ."\n"
- .'长度为2~128个字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testServerGroupName',
- ],
- ],
- [
- 'name' => 'Protocol',
- 'in' => 'formData',
- 'schema' => [
- 'title' => '后端服务器类型',
- 'description' => '后端转发协议。取值:'."\n"
- ."\n"
- .'- **GENEVE**(默认值)。',
- 'type' => 'string',
- 'required' => false,
- 'enumValueTitles' => [
- 'GENEVE' => 'GENEVE',
- ],
- 'example' => 'GENEVE',
- 'enum' => [
- 'GENEVE',
- ],
- ],
- ],
- [
- 'name' => 'Scheduler',
+ 'name' => 'ListenerIds',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'title' => '会话保持类型',
- 'description' => '调度算法。取值:'."\n"
- ."\n"
- .'- **5TCH**(默认值):五元组哈希,基于五元组(源IP、目的IP、源端口、目的端口和协议)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n"
- ."\n"
- .'- **3TCH**:三元组哈希,基于三元组(源IP、目的IP和协议)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n"
- ."\n"
- .'- **2TCH**:二元组哈希,基于二元组(源IP和目的IP)的一致性哈希,相同的流会调度到相同的后端服务器。',
- 'type' => 'string',
+ 'description' => '监听ID列表,最多支持20个监听ID。',
+ 'type' => 'array',
+ 'items' => ['description' => '监听ID。', 'type' => 'string', 'required' => false, 'example' => 'lsn-w3t3vpgjj12b2i****'],
'required' => false,
- 'example' => '5TCH',
- 'enum' => [
- '5TCH',
- '3TCH',
- '2TCH',
- ],
+ 'maxItems' => 20,
+ 'minItems' => 1,
],
],
[
- 'name' => 'ServerFailoverMode',
+ 'name' => 'LoadBalancerIds',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'title' => '',
- 'description' => '服务器异常时,存量流量的处理方式。取值:'."\n"
- ."\n"
- .'- **NoRebalance(默认值)**:不重新平衡现有流量。'."\n"
- .'- **Rebalance**:重新平衡现有流量。',
- 'type' => 'string',
+ 'description' => '网关型负载均衡实例ID。最多支持20个实例ID。',
+ 'type' => 'array',
+ 'items' => ['description' => '网关型负载均衡实例ID。', 'type' => 'string', 'required' => false, 'example' => 'gwlb-rbtjolkkbudmrr****'],
'required' => false,
- 'example' => 'NoRebalance',
- 'enum' => [
- 'NoRebalance',
- 'Rebalance',
- ],
- ],
- ],
- [
- 'name' => 'VpcId',
- 'in' => 'formData',
- 'schema' => [
- 'title' => '服务器组所在vpc的id',
- 'description' => 'VPC实例ID。'."\n"
- ."\n"
- .'> 如果**ServerGroupType**取值为**Instance**时,只有该VPC下的服务器可以加入到该服务器组。',
- 'type' => 'string',
- 'required' => true,
- 'docRequired' => false,
- 'example' => 'vpc-bp15zckdt37pq72zv****',
+ 'maxItems' => 20,
+ 'minItems' => 1,
],
],
[
- 'name' => 'ResourceGroupId',
+ 'name' => 'NextToken',
'in' => 'formData',
- 'schema' => [
- 'title' => '企业资源组id',
- 'description' => '资源组ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-atstuj3rtop****',
- ],
+ 'schema' => ['title' => '分页游标', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
+ .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
+ .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'required' => false, 'example' => 'd209f4e63ec942c967c50c888a13****'],
],
[
- 'name' => 'ConnectionDrainConfig',
+ 'name' => 'MaxResults',
'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '连接优雅中断配置',
- 'description' => '连接优雅中断相关配置。',
- 'type' => 'object',
- 'properties' => [
- 'ConnectionDrainEnabled' => [
- 'title' => '是否开启连接优雅中断',
- 'description' => '是否开启连接优雅中断。取值:'."\n"
- ."\n"
- .'- **true**:开启。'."\n"
- ."\n"
- .'- **false**(默认值):关闭。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'ConnectionDrainTimeout' => [
- 'title' => '连接优雅中断超时时间',
- 'description' => '连接优雅中断超时时间。'."\n"
- ."\n"
- .'单位:秒。'."\n"
- ."\n"
- .'取值范围:**1**~**3600**。'."\n"
- ."\n"
- .'默认值:**300**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '300',
- ],
- ],
- 'required' => false,
- ],
- ],
- [
- 'name' => 'HealthCheckConfig',
- 'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '健康检查配置',
- 'description' => '健康检查相关配置。',
- 'type' => 'object',
- 'properties' => [
- 'HealthCheckConnectPort' => [
- 'title' => '健康检查使用的端口',
- 'description' => '健康检查使用的后端服务器的端口。'."\n"
- ."\n"
- .'取值范围: **1**~**65535**。'."\n"
- ."\n"
- .'默认值:**80**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '80',
- ],
- 'HealthCheckConnectTimeout' => [
- 'title' => '健康检查响应的最大超时时间',
- 'description' => '健康检查响应的最大超时时间。'."\n"
- ."\n"
- .'单位:秒。'."\n"
- ."\n"
- .'取值范围:**1**~**300**。'."\n"
- ."\n"
- .'默认值:**5**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '5',
- ],
- 'HealthCheckDomain' => [
- 'title' => '健康检查的域名',
- 'description' => '用于健康检查的域名。取值:'."\n"
- ."\n"
- .'- **$SERVER_IP**(默认值):使用后端服务器内网IP。'."\n"
- ."\n"
- .'- **domain**:指定特定域名。长度限制1~80个字符,只能使用大小写字母、数字、短划线(-)、半角句号(.)。'."\n"
- ."\n"
- .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '$SERVER_IP',
- ],
- 'HealthCheckEnabled' => [
- 'title' => '是否开启健康检查',
- 'description' => '是否开启健康检查,取值:'."\n"
- ."\n"
- .'- **true**(默认值):开启。'."\n"
- ."\n"
- .'- **false**:关闭。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- 'HealthCheckHttpCode' => [
- 'title' => '状态码,多个状态码用逗号分隔',
- 'description' => '健康状态返回码列表。',
- 'type' => 'array',
- 'items' => [
- 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n"
- .'取值:'."\n"
- .'- **http\\_2xx**'."\n"
- .'- **http\\_3xx**'."\n"
- .'- **http\\_4xx**'."\n"
- .'- **http\\_5xx**'."\n"
- ."\n"
- .'默认值:**http\\_2xx** 。'."\n"
- ."\n"
- .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'http_2xx',
- 'enum' => [
- 'http_2xx',
- 'http_3xx',
- 'http_4xx',
- 'http_5xx',
- ],
- ],
- 'required' => false,
- ],
- 'HealthCheckInterval' => [
- 'title' => '健康检查时间间隔',
- 'description' => '健康检查的时间间隔。'."\n"
- ."\n"
- .'单位:秒。'."\n"
- ."\n"
- .'取值范围:**1**~**50**。'."\n"
- ."\n"
- .'默认值:**10**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
- 'HealthCheckPath' => [
- 'title' => '健康检查的path',
- 'description' => '健康检查路径。'."\n"
- ."\n"
- .'长度为1~80个字符,只能使用大小写英文字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)和and(&)以及扩展字符集_;~!()*[]@$^:\',+='."\n"
- ."\n"
- .'必须以正斜线(/)开头。'."\n"
- .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test/index.html',
- ],
- 'HealthCheckProtocol' => [
- 'title' => '健康检查协议类型',
- 'description' => '健康检查协议,取值:'."\n"
- ."\n"
- .'- **TCP**(默认值):通过发送SYN握手报文来检测服务器端口是否存活。'."\n"
- ."\n"
- .'- **HTTP**:通过发送GET请求模拟浏览器的访问行为来检查服务器应用是否健康。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'TCP',
- 'enum' => [
- 'TCP',
- 'HTTP',
- ],
- ],
- 'HealthyThreshold' => [
- 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success',
- 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n"
- ."\n"
- .'取值范围:**2**~**10**。'."\n"
- ."\n"
- .'默认值:**2**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '2',
- ],
- 'UnhealthyThreshold' => [
- 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail',
- 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n"
- ."\n"
- .'取值范围:**2**~**10**。'."\n"
- ."\n"
- .'默认值:**2**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '2',
- ],
- ],
- 'required' => false,
- ],
+ 'schema' => ['title' => '分页大小', 'description' => '使用NextToken方式查询时,每次最多返回的结果数。取值范围:1~1000。默认值:20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'],
],
[
'name' => 'Tag',
'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'title' => '标签列表',
- 'description' => '标签列表。'."\n"
- ."\n"
- .'一次调用最多支持 20 个标签。',
+ 'description' => '标签列表。一次调用最多支持 20 个标签。',
'type' => 'array',
'items' => [
'description' => '标签。',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => '标签键。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testTagKey',
- ],
- 'Value' => [
- 'description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testTagValue',
- ],
+ 'Key' => ['description' => '标签键。一旦传入该值,则不允许为空字符串。'."\n"
+ ."\n"
+ .'一个标签健最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'tagKey'],
+ 'Value' => ['description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'tagValue'],
],
'required' => false,
],
'required' => false,
'maxItems' => 20,
+ 'minItems' => 1,
],
],
[
- 'name' => 'DryRun',
- 'in' => 'formData',
- 'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求。取值:'."\n"
- .'- **true**:发送检查请求,不会创建服务器组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'False',
- ],
- ],
- [
- 'name' => 'ClientToken',
+ 'name' => 'Skip',
'in' => 'formData',
- 'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
- ."\n"
- .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
+ 'schema' => ['description' => '分页查询时,跳过的条目数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
- 'description' => '',
+ 'description' => '请求的返回值。',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
- ],
- 'ServerGroupId' => [
- 'description' => '服务器组ID。',
- 'type' => 'string',
- 'example' => 'sgp-atstuj3rtoptyui****',
+ 'Listeners' => [
+ 'description' => '网关型负载均衡监听列表。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '监听信息。',
+ 'type' => 'object',
+ 'properties' => [
+ 'ListenerDescription' => ['title' => '监听描述', 'description' => '监听描述。', 'type' => 'string', 'example' => 'listener-description'],
+ 'ListenerId' => ['title' => '自己生成后赋值', 'description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-vu7folhh5ntm8u****'],
+ 'ListenerStatus' => ['title' => '监听状态', 'description' => '当前监听的状态,取值:'."\n"
+ ."\n"
+ .'- **Provisioning**:创建中。'."\n"
+ .'- **Running**:运行中。'."\n"
+ .'- **Configuring**:配置中。'."\n"
+ .'- **Deleting**:删除中。', 'type' => 'string', 'example' => 'Running'],
+ 'LoadBalancerId' => ['title' => '负载均衡实例ID', 'description' => '网关型负载均衡实例的ID。', 'type' => 'string', 'example' => 'gwlb-uf6hbeh795xlqln7g****'],
+ 'ServerGroupId' => ['title' => '服务器组ID', 'description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-5yapcb422i51ru****'],
+ 'TcpIdleTimeout' => ['title' => 'TCP连接空闲超时时间。', 'description' => 'TCP连接空闲超时时间。', 'type' => 'integer', 'format' => 'int32', 'example' => '350'],
+ 'Tags' => [
+ 'description' => '标签列表。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '标签列表。',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => '标签键。', 'type' => 'string', 'example' => 'testKey'],
+ 'Value' => ['description' => '标签值。', 'type' => 'string', 'example' => 'testValue'],
+ ],
+ ],
+ ],
+ ],
+ ],
],
+ 'MaxResults' => ['description' => '使用NextToken方式查询时,每次最多返回的结果数。取值范围:1~1000。默认值:20。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'],
+ 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
+ .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
+ .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => '5c281c0a0d6bfb6355ed088c2108aca8e0b5e8707e68****'],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7DBFC67C-A272-5952-8287-6C3EBE4E04D9'],
+ 'TotalCount' => ['description' => '列表条目总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '8'],
],
],
],
],
'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.',
- ],
+ ['errorCode' => 'MissingParam.TagKey', 'errorMessage' => 'The param of TagKey is missing.', 'description' => '标签键参数缺失'],
+ ['errorCode' => 'DuplicatedParam.TagKey', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '标签键参数重复'],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Vpc',
- 'errorMessage' => 'The specified resource of %s is not found.',
- ],
+ ],
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => '查询监听列表',
+ 'summary' => '查询负载均衡监听列表。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListListeners'],
],
],
- 'staticInfo' => [
- 'returnType' => 'asynchronous',
- 'callback' => 'Gwlb::2024-04-15::ListServerGroups',
- 'callbackInterval' => 3000,
- 'maxCallbackTimes' => 100,
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'gwlb:ListListeners',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\"\\n}","type":"json"}]',
- 'title' => '创建服务器组',
- 'description' => '**CreateServerGroup**接口属于异步接口,即系统返回一个请求ID,但该服务器组尚未创建成功,系统后台的创建任务仍在进行。您可以调用 ListServerGroups 查询服务器组的创建状态:'."\n"
- .'- 当服务器组处于**Creating**状态时,表示服务器组正在创建中。'."\n"
- .'- 当服务器组处于**Available**状态时,表示服务器组创建成功。',
+ '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"}]',
],
- 'UpdateServerGroupAttribute' => [
- 'summary' => '更新负载均衡服务器组属性。',
- 'methods' => [
- 'get',
- 'post',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'ListLoadBalancers' => [
+ 'summary' => '查询负载均衡实例列表。',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
+ 'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '225039',
- 'abilityTreeNodes' => [
- 'FEATUREslb3GOGI0',
- ],
+ 'abilityTreeCode' => '221914',
+ 'abilityTreeNodes' => ['FEATUREslbHRNRPI'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ServerGroupId',
- 'in' => 'formData',
- 'schema' => [
- 'title' => '服务器组ID',
- 'description' => '服务器组ID。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'sgp-atstuj3rtoptyui****',
- ],
- ],
- [
- 'name' => 'ServerGroupName',
+ 'name' => 'ZoneIds',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'title' => '服务器组名称',
- 'description' => '服务器组名称。'."\n"
- ."\n"
- .'长度为2~128个字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。',
- 'type' => 'string',
+ 'description' => '可用区ID列表。一次最多支持查询20个可用区ID。',
+ 'type' => 'array',
+ 'items' => ['description' => '可用区ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing-h'],
'required' => false,
- 'example' => 'testServerGroupName',
+ 'maxItems' => 20,
],
],
[
- 'name' => 'Scheduler',
+ 'name' => 'VpcIds',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'title' => '会话保持类型',
- 'description' => '调度算法。取值:'."\n"
- ."\n"
- .'- **5TCH**:五元组哈希,基于五元组(源IP、目的IP、源端口、目的端口和协议)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n"
- ."\n"
- .'- **3TCH**:三元组哈希,基于三元组(源IP、目的IP和协议)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n"
- ."\n"
- .'- **2TCH**:二元组哈希,基于二元组(源IP和目的IP)的一致性哈希,相同的流会调度到相同的后端服务器。',
- 'type' => 'string',
+ 'title' => '专有网络唯一标识',
+ 'description' => '专有网络ID列表。一次最多支持查询20个VPC ID。',
+ 'type' => 'array',
+ 'items' => ['description' => '专用网络ID。', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp1xuejaht4o7yhh2****'],
'required' => false,
- 'example' => '5TCH',
- 'enum' => [
- '5TCH',
- '3TCH',
- '2TCH',
- ],
+ 'maxItems' => 20,
],
],
[
- 'name' => 'ServerFailoverMode',
+ 'name' => 'AddressIpVersion',
'in' => 'formData',
'schema' => [
- 'description' => '服务器异常时,存量流量的处理方式。取值:'."\n"
+ 'title' => '协议类型',
+ 'description' => '协议版本。取值:'."\n"
."\n"
- .'- **NoRebalance**:不重新平衡现有流量。'."\n"
- .'- **Rebalance**:重新平衡现有流量。',
+ .'- **Ipv4**:Ipv4类型。',
'type' => 'string',
'required' => false,
- 'example' => 'NoRebalance',
- 'enum' => [
- 'NoRebalance',
- 'Rebalance',
- ],
+ 'enumValueTitles' => ['IPv4' => 'IPv4', 'DualStack' => 'DualStack'],
+ 'example' => 'Ipv4',
+ 'enum' => [],
],
],
[
- 'name' => 'ConnectionDrainConfig',
+ 'name' => 'LoadBalancerStatus',
'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '连接优雅中断配置',
- 'description' => '连接优雅中断相关配置。',
- 'type' => 'object',
- 'properties' => [
- 'ConnectionDrainEnabled' => [
- 'title' => '是否开启连接优雅中断',
- 'description' => '是否开启连接优雅中断。取值:'."\n"
- ."\n"
- .'- **true**:开启。'."\n"
- ."\n"
- .'- **false**:关闭。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
- 'ConnectionDrainTimeout' => [
- 'title' => '连接优雅中断超时时间',
- 'description' => '连接优雅中断超时时间。'."\n"
- ."\n"
- .'单位:秒。'."\n"
- ."\n"
- .'取值范围:**1**~**3600**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '300',
- ],
- ],
- 'required' => false,
- ],
+ 'schema' => ['title' => '实例状态', 'description' => '网关型负载均衡的实例状态。取值:'."\n"
+ .'- **Active**:运行中。'."\n"
+ .'- **Inactive**:已停止,表示实例监听不会再转发流量。'."\n"
+ .'- **Provisioning**:创建中。'."\n"
+ .'- **Configuring**:变配中。', 'type' => 'string', 'required' => false, 'example' => 'Active'],
],
[
- 'name' => 'HealthCheckConfig',
- 'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'title' => '健康检查配置',
- 'description' => '健康检查相关配置。',
- 'type' => 'object',
- 'properties' => [
- 'HealthCheckConnectPort' => [
- 'title' => '健康检查使用的端口',
- 'description' => '健康检查使用的后端服务器的端口。'."\n"
- ."\n"
- .'取值范围: **1**~**65535**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '80',
- ],
- 'HealthCheckConnectTimeout' => [
- 'title' => '健康检查响应的最大超时时间',
- 'description' => '健康检查响应的最大超时时间。'."\n"
- ."\n"
- .'单位:秒。'."\n"
- ."\n"
- .'取值范围:**1**~**300**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '5',
- ],
- 'HealthCheckDomain' => [
- 'title' => '健康检查的域名',
- 'description' => '用于健康检查的域名。取值:'."\n"
- ."\n"
- .'- **$SERVER_IP**:使用后端服务器内网IP。'."\n"
- ."\n"
- .'- **domain**:指定特定域名。长度限制1~80个字符,只能使用大小写字母、数字、短划线(-)、半角句号(.)。'."\n"
- ."\n"
- .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '$SERVER_IP',
- ],
- 'HealthCheckEnabled' => [
- 'title' => '是否开启健康检查',
- 'description' => '是否开启健康检查,取值:'."\n"
- ."\n"
- .'- **true**:开启。'."\n"
- ."\n"
- .'- **false**:关闭。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- 'HealthCheckHttpCode' => [
- 'title' => '状态码,多个状态码用逗号分隔',
- 'description' => '健康状态返回码列表。',
- 'type' => 'array',
- 'items' => [
- 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n"
- .'取值:'."\n"
- .'- **http\\_2xx**:返回HttpCode为2xx视为健康状态。'."\n"
- .'- **http\\_3xx**:返回HttpCode为3xx视为健康状态。'."\n"
- .'- **http\\_4xx**:返回HttpCode为4xx视为健康状态。'."\n"
- .'- **http\\_5xx**:返回HttpCode为5xx视为健康状态。'."\n"
- ."\n"
- .'默认值:**http\\_2xx** 。'."\n"
- ."\n"
- .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'http_2xx',
- 'enum' => [
- 'http_2xx',
- 'http_3xx',
- 'http_4xx',
- 'http_5xx',
- ],
- ],
- 'required' => false,
- ],
- 'HealthCheckInterval' => [
- 'title' => '健康检查时间间隔',
- 'description' => '健康检查的时间间隔。'."\n"
- ."\n"
- .'单位:秒。'."\n"
- ."\n"
- .'取值范围:**1**~**50**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
- 'HealthCheckPath' => [
- 'title' => '健康检查的path',
- 'description' => '健康检查路径。'."\n"
- ."\n"
- .'长度为1~80个字符,只能使用大小写英文字母、数字、字符`-/.%?#&`。 必须以正斜线(/)开头。'."\n"
- .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '/test/index.html',
- ],
- 'HealthCheckProtocol' => [
- 'title' => '健康检查协议类型',
- 'description' => '健康检查协议,取值:'."\n"
- ."\n"
- .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n"
- ."\n"
- .'- **HTTP**:通过发送GET请求模拟浏览器的访问行为来检查服务器应用是否健康。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'TCP',
- 'enum' => [
- 'TCP',
- 'HTTP',
- ],
- ],
- 'HealthyThreshold' => [
- 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success',
- 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n"
- ."\n"
- .'取值范围:**2**~**10**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '2',
- ],
- 'UnhealthyThreshold' => [
- 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail',
- 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n"
- ."\n"
- .'取值范围:**2**~**10**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '2',
- ],
- ],
- 'required' => false,
- ],
- ],
- [
- 'name' => 'DryRun',
+ 'name' => 'LoadBalancerBusinessStatus',
'in' => 'formData',
- 'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求。取值:'."\n"
- .'- **true**:发送检查请求,不会更新服务器组信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => '实例业务状态', 'description' => '网关型负载均衡的业务状态。取值:'."\n"
+ .'- **Normal**:正常状态。'."\n"
+ .'- **FinancialLocked**:欠费锁定状态。', 'type' => 'string', 'required' => false, 'example' => 'Normal'],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'LoadBalancerNames',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
- ."\n"
- .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。',
- 'type' => 'string',
+ 'title' => '负载均衡实例名称',
+ 'description' => '网关型负载均衡实例名称列表。一次最多支持查询20个实例名称。',
+ 'type' => 'array',
+ 'items' => ['description' => '网络型负载均衡实例名称。', 'type' => 'string', 'required' => false, 'example' => 'testGwlbName'],
'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => '',
- 'description' => '返回数据结构体。',
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- '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' => '更新服务器组属性',
- 'description' => '**UpdateServerGroupAttribute**接口属于异步接口,即系统返回一个请求ID,但该服务器组的配置尚未更新成功,系统后台的更新任务仍在进行。您可以调用 ListServerGroups 查询服务器组的配置的更新状态:'."\n"
- .'- 当服务器组的配置处于**Configuring**状态时,表示服务器组的配置正在更新中。'."\n"
- .'- 当服务器组的配置处于**Available**状态时,表示服务器组的配置更新成功。',
- ],
- 'DeleteServerGroup' => [
- 'summary' => '删除负载均衡服务器组。',
- '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' => '服务器组ID',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'sgp-atstuj3rtoptyui****',
+ 'maxItems' => 20,
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'ResourceGroupId',
'in' => 'formData',
- 'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求,取值:'."\n"
- .'- **true**:发送检查请求,不会删除服务器组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2XX状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => '企业资源组标识', 'description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-aek2htf5qsyrn****'],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'LoadBalancerIds',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
- ."\n"
- .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。',
- 'type' => 'string',
+ 'title' => '实例列表',
+ 'description' => '网关型负载均衡实例的ID列表。一次最多支持查询20个实例。',
+ 'type' => 'array',
+ 'items' => ['description' => '网关型负载均衡实例的ID。', 'type' => 'string', 'required' => false, 'example' => 'gwlb-cp6prgqy40hols****'],
'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => '',
- 'description' => '返回数据结构体。',
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- '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.',
+ 'maxItems' => 20,
],
],
- ],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]',
- 'title' => '删除服务器组',
- 'description' => '服务器组未被任何监听使用时支持删除。',
- ],
- 'AddServersToServerGroup' => [
- 'summary' => '向负载均衡服务器组中添加后端服务器。',
- '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',
+ 'name' => 'TrafficMode',
'in' => 'formData',
- 'schema' => [
- 'description' => '服务器组ID。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'sgp-atstuj3rtoptyui****',
- ],
+ 'schema' => ['description' => '流量模式。取值:'."\n"
+ ."\n"
+ .'- **LoadBalance**:负载均衡。'."\n"
+ .'- **ByPass**:绕行模式。', 'type' => 'string', 'required' => false, 'example' => 'LoadBalance'],
],
[
- 'name' => 'Servers',
+ 'name' => 'Tag',
'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'description' => '后端服务器列表。'."\n"
- ."\n"
- .'> 单次调用最多支持传入200个服务器。',
+ 'title' => '标签',
+ 'description' => '标签列表。一次调用最多支持20个标签。',
'type' => 'array',
'items' => [
- 'description' => '后端服务器。',
+ 'description' => '标签信息对象。',
'type' => 'object',
'properties' => [
- 'Port' => [
- 'title' => '服务器端口',
- 'description' => '后端服务器使用的端口,取值:'."\n"
- ."\n"
- .'- **6081**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '6081',
- ],
- 'ServerId' => [
- 'title' => '服务器id',
- 'description' => '后端服务器ID。'."\n"
- ."\n"
- .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源ID。'."\n"
- ."\n"
- .'- 当服务器组为**Ip**类型时,该参数为IP地址。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'i-bp67acfmxazb4p****',
- ],
- 'ServerIp' => [
- 'title' => '服务器ip',
- 'description' => '后端服务器IP地址。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.XX.XX',
- ],
- 'ServerType' => [
- 'title' => '服务器类型',
- 'description' => '后端服务器类型,取值:'."\n"
- ."\n"
- .'- **Ecs**:ECS实例。'."\n"
- .'- **Eni**:ENI弹性网卡实例。'."\n"
- .'- **Eci**:ECI弹性容器。'."\n"
- .'- **Ip**:Ip地址。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Ecs',
- 'enum' => [
- 'Ecs',
- 'Eni',
- 'Eci',
- 'Ip',
- ],
- ],
+ 'Key' => ['description' => '标签键。一旦传入该值,则不允许为空字符串。'."\n"
+ ."\n"
+ .'一个标签健最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'testTagKey'],
+ 'Value' => ['description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'testTagValue'],
],
'required' => false,
],
- 'required' => true,
- 'maxItems' => 200,
+ 'required' => false,
+ 'maxItems' => 20,
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'NextToken',
'in' => 'formData',
- 'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求,取值:'."\n"
- .'- **true**:发送检查请求,不会向服务器组中添加后端服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => '分页游标', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
+ .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
+ .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'required' => false, 'example' => 'WyJyb290IiwibiIsIm4iLDEsMCwxNjg1MDY1NTgyNzYwLCI2NDcwMGY2ZTc2Zjc0MWFiZGEyZjQyNzc4ZDk2MmJkOTk3ZGZmM2Nm****'],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'MaxResults',
'in' => 'formData',
- 'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
- ."\n"
- .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
+ 'schema' => ['title' => '分页大小', 'description' => '分批次查询时每次显示的条目数。取值范围:1~1000,默认值:20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'],
+ ],
+ [
+ 'name' => 'Skip',
+ 'in' => 'formData',
+ 'schema' => ['description' => '查询时跳过指定的条目数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
- 'description' => '返回数据结构体。',
+ 'description' => '',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
+ 'LoadBalancers' => [
+ 'description' => '网关型负载均衡实例列表。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '网关型负载均衡实例对象。',
+ 'type' => 'object',
+ 'properties' => [
+ 'AddressIpVersion' => ['description' => '协议版本。取值:'."\n"
+ ."\n"
+ .'- **IPv4**:IPv4类型。', 'type' => 'string', 'example' => 'IPv4'],
+ 'CreateTime' => ['description' => '资源创建时间,使用格林威治时间,格式为**yyyy-MM-ddTHH:mm:ssZ**。', 'type' => 'string', 'example' => '2024-08-05T18:24:07Z'],
+ 'LoadBalancerBusinessStatus' => ['description' => '网关型负载均衡的业务状态。取值:'."\n"
+ .'- **Normal**:正常状态。'."\n"
+ .'- **FinancialLocked**:欠费锁定状态。', 'type' => 'string', 'example' => 'Normal'],
+ 'LoadBalancerId' => ['description' => '网关型负载均衡实例的ID。', 'type' => 'string', 'example' => 'gwlb-9njtjmqt7zfcqm****'],
+ 'LoadBalancerName' => ['description' => '网关型负载均衡实例名称。'."\n"
+ ."\n"
+ .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'example' => 'testGwlbName'],
+ 'LoadBalancerStatus' => ['description' => '网关型负载均衡的实例状态。取值:'."\n"
+ .'- **Active**:运行中。'."\n"
+ .'- **Inactive**:已停止,表示实例监听不会再转发流量。'."\n"
+ .'- **Provisioning**:创建中。'."\n"
+ .'- **Configuring**:变配中。', 'type' => 'string', 'example' => 'Active'],
+ 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-aek26jasguy****'],
+ 'Tags' => [
+ 'description' => '标签列表。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '标签对象。',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => '标签键。一旦传入该值,则不允许为空字符串。'."\n"
+ ."\n"
+ .'一个标签健最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'example' => 'testTagKey'],
+ 'Value' => ['description' => '标签值。最多支持输入20个标签值。一旦传入该值,可以为空字符串。'."\n"
+ ."\n"
+ .'一个标签值最多支持128个字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-),不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'example' => 'testTagValue'],
+ ],
+ ],
+ ],
+ 'VpcId' => ['description' => '专用网络ID。', 'type' => 'string', 'example' => 'vpc-uf6eg0vndlsa84n7r****'],
+ 'ZoneMappings' => [
+ 'description' => '可用区及交换机映射列表。至少需要添加一个可用区,最多支持添加20个可用区。若当前地域支持2个及以上的可用区,建议添加2个及以上可用区。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '可用区及交换机映射对象。',
+ 'type' => 'object',
+ 'properties' => [
+ 'LoadBalancerAddresses' => [
+ 'description' => '网关型负载均衡实例地址列表。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '网关型负载均衡实例地址对象。',
+ 'type' => 'object',
+ 'properties' => [
+ 'EniId' => ['description' => '弹性网卡ENI ID。', 'type' => 'string', 'example' => 'eni-bp17qv9zbzyqy629****'],
+ 'PrivateIpv4Address' => ['description' => 'IPv4 私网地址。', 'type' => 'string', 'example' => '192.168.XX.XX'],
+ ],
+ ],
+ ],
+ 'VSwitchId' => ['description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。', 'type' => 'string', 'example' => 'vsw-2zemule5dz7okwqfv****'],
+ 'ZoneId' => ['description' => '可用区ID,通过调用网关型负载均衡DescribeZones接口获得。', 'type' => 'string', 'example' => 'cn-hangzhou-g'],
+ ],
+ ],
+ ],
+ ],
+ ],
],
+ 'MaxResults' => ['description' => '分批次查询时每次显示的条目数。取值范围:1~1000,默认值:20。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'],
+ 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
+ .'- 第一次查询和没有下一次查询时,均无需填写。'."\n"
+ .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'example' => 'CAESGgoSChAKDGNvbXBsZXRlVGltZRABCgQiAggAGAAiQAoJAIldD2UAAAAACjMDLgAAADFTNzMyZDMwMzAzMDY5NzQzNDM0NmI3NzM2NjUzNzc4NzM2YTc0NjYzOTYz****'],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '378A80E9-4262-5D8E-8D62-0969E52D7358'],
+ 'TotalCount' => ['description' => '列表条目总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'],
],
],
],
],
- '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.',
+ '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' => '查询负载均衡实例列表',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListLoadBalancers'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'gwlb:ListLoadBalancers',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/*'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'],
+ ],
],
],
],
- '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' => '服务器组中添加后端服务器',
- 'description' => '**AddServersToServerGroup**接口属于异步接口,即系统返回一个请求ID,但该后端服务器尚未添加成功,系统后台的添加任务仍在进行。'."\n"
- ."\n"
- .'1. 您可以调用 ListServerGroups 查询服务器组的状态:'."\n"
- ."\n"
- .'- 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n"
- .'- 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n"
- ."\n"
- .'2. 您可以调用 ListServerGroupServers 查询后端服务器的状态:'."\n"
- ."\n"
- .'- 当后端服务器处于**Adding**状态时,表示后端服务器正在加入服务器组。'."\n"
- .'- 当后端服务器处于**Available**状态时,表示后端服务器运行中。',
],
- 'RemoveServersFromServerGroup' => [
- 'summary' => '从负载均衡服务器组中移除后端服务器。',
- 'methods' => [
- 'post',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'ListServerGroupServers' => [
+ 'summary' => '查询负载均衡服务器组中的服务器列表。',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'delete',
+ 'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '225065',
- 'abilityTreeNodes' => [
- 'FEATUREslb3GOGI0',
- ],
+ 'abilityTreeCode' => '225066',
+ 'abilityTreeNodes' => ['FEATUREslb3GOGI0'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
@@ -2723,106 +2112,60 @@
[
'name' => 'ServerGroupId',
'in' => 'formData',
- 'schema' => [
- 'description' => '服务器组ID。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'sgp-atstuj3rtoptyui****',
- ],
+ 'schema' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => false, 'example' => 'sgp-atstuj3rtoptyui****'],
],
[
- 'name' => 'Servers',
+ 'name' => 'ServerIds',
'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'description' => '后端服务器列表。'."\n"
+ 'description' => '服务器ID列表。'."\n"
."\n"
- .'> 单次调用最多支持传入200个服务器。',
+ .'单次调用最多支持展示200个服务器。',
'type' => 'array',
- 'items' => [
- 'description' => '后端服务器。',
- 'type' => 'object',
- 'properties' => [
- 'Port' => [
- 'title' => '服务器端口',
- 'description' => '后端服务器使用的端口,取值:'."\n"
- ."\n"
- .'- **6081**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '6081',
- ],
- 'ServerId' => [
- 'title' => '服务器id',
- 'description' => '后端服务器ID。'."\n"
- ."\n"
- .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源ID。'."\n"
- ."\n"
- .'- 当服务器组为**Ip**类型时,该参数为IP地址。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'i-bp67acfmxazb4p****',
- ],
- 'ServerIp' => [
- 'title' => '服务器ip',
- 'description' => '后端服务器IP地址。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '192.168.xxx.xxx'."\n",
- ],
- 'ServerType' => [
- 'title' => '服务器类型',
- 'description' => '后端服务器类型,取值:'."\n"
- ."\n"
- .'- **Ecs**:ECS实例。'."\n"
- .'- **Eni**:ENI弹性网卡实例。'."\n"
- .'- **Eci**:ECI弹性容器。'."\n"
- .'- **Ip**:Ip地址。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Ecs',
- 'enum' => [
- 'Ecs',
- 'Eni',
- 'Eci',
- 'Ip',
- ],
- ],
- ],
- 'required' => false,
- ],
- 'required' => true,
+ 'items' => ['description' => '服务器ID。'."\n"
+ ."\n"
+ .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源ID。'."\n"
+ ."\n"
+ .'- 当服务器组为**Ip**类型时,该参数为IP地址。', 'type' => 'string', 'required' => false, 'example' => 'i-bp67acfmxazb4p****'],
+ 'required' => false,
'maxItems' => 200,
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'ServerIps',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求,取值:'."\n"
- .'- **true**:发送检查请求,不会从服务器组中移除后端服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
+ 'description' => '服务器IP地址列表。'."\n"
+ ."\n"
+ .'单次调用最多支持展示200个服务器。',
+ 'type' => 'array',
+ 'items' => ['description' => '服务器IP地址。', 'type' => 'string', 'required' => false, 'example' => '192.168.xxx.xxx'],
'required' => false,
- 'example' => 'false',
+ 'maxItems' => 200,
],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'NextToken',
'in' => 'formData',
- 'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
- ."\n"
- .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
+ 'schema' => ['title' => '分页游标', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
+ .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
+ .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'formData',
+ 'schema' => ['title' => '分页大小', 'description' => '分批次查询时每次显示的条目数。'."\n"
+ ."\n"
+ .'取值范围:1~1000。'."\n"
+ ."\n"
+ .'默认值:20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'],
+ ],
+ [
+ 'name' => 'Skip',
+ 'in' => 'formData',
+ 'schema' => ['description' => '查询时跳过指定的条目数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'],
],
],
'responses' => [
@@ -2832,66 +2175,74 @@
'description' => '返回数据结构体。',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
+ 'MaxResults' => ['description' => '分批次查询时每次显示的条目数。'."\n"
+ ."\n"
+ .'取值范围:1~1000。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'],
+ 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
+ .'- 第一次查询和没有下一次查询时,均无需填写。'."\n"
+ .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'],
+ 'Servers' => [
+ 'description' => '后端服务器列表。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '后端服务器。',
+ 'type' => 'object',
+ 'properties' => [
+ 'Port' => ['title' => '服务器端口', 'description' => '后端服务器使用的端口,取值:'."\n"
+ ."\n"
+ .'- **6081**。', 'type' => 'integer', 'format' => 'int32', 'example' => '6081'],
+ 'ServerGroupId' => ['title' => '服务器所属的服务器组ID', 'description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****'],
+ 'ServerId' => ['title' => '服务器id', 'description' => '后端服务器ID。', 'type' => 'string', 'example' => 'i-bp67acfmxazb4p****'],
+ 'ServerIp' => ['title' => '服务器ip', 'description' => '后端服务器IP地址。', 'type' => 'string', 'example' => '192.168.xxx.xxx'],
+ 'ServerType' => ['title' => '服务器类型', 'description' => '后端服务器类型,取值:'."\n"
+ ."\n"
+ .'- **Ecs**:ECS实例。'."\n"
+ .'- **Eni**:ENI弹性网卡实例。'."\n"
+ .'- **Eci**:ECI弹性容器。'."\n"
+ .'- **Ip**:Ip地址。', 'type' => 'string', 'example' => 'Ecs'],
+ 'Status' => ['title' => '资源状态', 'description' => '后端服务器的状态。取值:'."\n"
+ ."\n"
+ .'- **Adding**:添加中。'."\n"
+ .'- **Available**:正常可用状态。'."\n"
+ .'- **Draining**:连接优雅中断中。'."\n"
+ .'- **Removing**:移除中。'."\n"
+ .'- **Replacing**:替换中。', 'type' => 'string', 'example' => 'Available'],
+ ],
+ ],
],
+ 'TotalCount' => ['description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
],
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'IncorrectStatus.BackendServer',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
- [
- 'errorCode' => 'IncorrectStatus.ServerGroup',
- 'errorMessage' => 'The status of %s [%s] is incorrect.',
- ],
+ 'errorCodes' => [],
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => '查询服务器组中的服务器列表',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListServerGroupServers'],
],
- 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.',
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'gwlb:ListServerGroupServers',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
],
],
- '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' => '服务器组中移除后端服务器',
- 'description' => '**RemoveServersFromServerGroup**接口属于异步接口,即系统返回一个请求ID,但该后端服务器尚未移除成功,系统后台的移除任务仍在进行。'."\n"
- .'1. 您可以调用 ListServerGroups 查询服务器组的状态:'."\n"
- .' - 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n"
- .' - 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n"
- ."\n"
- .'2. 您可以调用 ListServerGroupServers 查询后端服务器的状态:'."\n"
- .' - 当后端服务器处于**Removing**状态时,表示后端服务器正在从服务器组中移除。'."\n"
- .' - 当查询不到该后端服务器时,表示后端服务器移除成功。'."\n"
- ."\n"
- .'> - 若服务器所在的服务器组开启了连接优雅中断(**ConnectionDrainEnabled**为true),移除时后端服务器会先变为**Removing**状态,之后变为**Draining**状态。待连接优雅中断超时(**ConnectionDrainTimeout**)到期后,才会真正将服务器从服务器组移除。'."\n"
- .'> - 期间可以再次将此服务器加入此服务器组,此时状态由**Draining**变为**Adding**,最终变为**Available**。',
+ '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"}]',
],
'ListServerGroups' => [
- 'summary' => '查询负载均衡服务器组列表。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -2904,9 +2255,7 @@
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '225041',
- 'abilityTreeNodes' => [
- 'FEATUREslb5QFSS9',
- ],
+ 'abilityTreeNodes' => ['FEATUREslb5QFSS9'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
@@ -2920,12 +2269,7 @@
."\n"
.'一次最多支持查询20个服务器组ID。',
'type' => 'array',
- 'items' => [
- 'description' => '服务器组ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'sgp-atstuj3rtoptyui****',
- ],
+ 'items' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => false, 'example' => 'sgp-atstuj3rtoptyui****'],
'required' => false,
'maxItems' => 20,
],
@@ -2939,12 +2283,7 @@
."\n"
.'一次最多支持查询20个服务器组名称。',
'type' => 'array',
- 'items' => [
- 'description' => '服务器组名称。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testServerGroupName',
- ],
+ 'items' => ['description' => '服务器组名称。', 'type' => 'string', 'required' => false, 'example' => 'testServerGroupName'],
'required' => false,
'maxItems' => 20,
],
@@ -2961,21 +2300,13 @@
'type' => 'string',
'required' => false,
'example' => 'Instance',
- 'enum' => [
- 'Instance',
- 'Ip',
- ],
+ 'enum' => ['Instance', 'Ip'],
],
],
[
'name' => 'ResourceGroupId',
'in' => 'formData',
- 'schema' => [
- 'description' => '资源组ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rg-atstuj3rtop****',
- ],
+ 'schema' => ['description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'],
],
[
'name' => 'Tag',
@@ -2990,18 +2321,8 @@
'description' => '标签。',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => '标签键。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testTagKey',
- ],
- 'Value' => [
- 'description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testTagValue',
- ],
+ 'Key' => ['description' => '标签键。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'testTagKey'],
+ 'Value' => ['description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'testTagValue'],
],
'required' => false,
],
@@ -3012,53 +2333,28 @@
[
'name' => 'VpcId',
'in' => 'formData',
- 'schema' => [
- 'title' => '服务器组所在vpc的id',
- 'description' => '专有网络ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'vpc-bp15zckdt37pq72zv****',
- ],
+ 'schema' => ['title' => '服务器组所在vpc的id', 'description' => '专有网络ID。', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp15zckdt37pq72zv****'],
],
[
'name' => 'NextToken',
'in' => 'formData',
- 'schema' => [
- 'title' => '分页游标',
- 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
- .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
- .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
+ 'schema' => ['title' => '分页游标', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
+ .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
+ .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
],
[
'name' => 'MaxResults',
'in' => 'formData',
- 'schema' => [
- 'title' => '分页大小',
- 'description' => '分批次查询时每次显示的条目数。'."\n"
- ."\n"
- .'取值范围:1~1000。'."\n"
- ."\n"
- .'默认值:20。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '20',
- ],
+ 'schema' => ['title' => '分页大小', 'description' => '分批次查询时每次显示的条目数。'."\n"
+ ."\n"
+ .'取值范围:1~1000。'."\n"
+ ."\n"
+ .'默认值:20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'],
],
[
'name' => 'Skip',
'in' => 'formData',
- 'schema' => [
- 'description' => '查询时跳过指定的条目数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
- ],
+ 'schema' => ['description' => '查询时跳过指定的条目数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'],
],
],
'responses' => [
@@ -3068,26 +2364,13 @@
'description' => '返回数据结构体。',
'type' => 'object',
'properties' => [
- 'MaxResults' => [
- 'description' => '分批次查询时每次显示的条目数。'."\n"
- ."\n"
- .'取值范围:1~1000。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
- ],
- 'NextToken' => [
- 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
- .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
- .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。',
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
- ],
+ 'MaxResults' => ['description' => '分批次查询时每次显示的条目数。'."\n"
+ ."\n"
+ .'取值范围:1~1000。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'],
+ 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
+ .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
+ .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'],
'ServerGroups' => [
'description' => '后端服务器组列表。',
'type' => 'array',
@@ -3099,231 +2382,118 @@
'description' => '连接优雅中断相关配置。',
'type' => 'object',
'properties' => [
- 'ConnectionDrainEnabled' => [
- 'description' => '是否开启连接优雅中断。取值:'."\n"
- ."\n"
- .'- **true**:开启。'."\n"
- ."\n"
- .'- **false**:关闭。',
- 'type' => 'boolean',
- 'example' => 'false',
- ],
- 'ConnectionDrainTimeout' => [
- 'description' => '连接优雅中断超时时间。'."\n"
- ."\n"
- .'单位:秒。'."\n"
- ."\n"
- .'取值范围:**1**~**3600**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '300',
- ],
+ 'ConnectionDrainEnabled' => ['description' => '是否开启连接优雅中断。取值:'."\n"
+ ."\n"
+ .'- **true**:开启。'."\n"
+ ."\n"
+ .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'],
+ 'ConnectionDrainTimeout' => ['description' => '连接优雅中断超时时间。'."\n"
+ ."\n"
+ .'单位:秒。'."\n"
+ ."\n"
+ .'取值范围:**1**~**3600**。', 'type' => 'integer', 'format' => 'int32', 'example' => '300'],
],
],
- 'CreateTime' => [
- 'description' => '资源创建时间,使用格林威治时间,格式为**yyyy-MM-ddTHH:mm:ssZ**。',
- 'type' => 'string',
- 'example' => '2024-08-05T18:24:07Z',
- ],
+ 'CreateTime' => ['description' => '资源创建时间,使用格林威治时间,格式为**yyyy-MM-ddTHH:mm:ssZ**。', 'type' => 'string', 'example' => '2024-08-05T18:24:07Z'],
'HealthCheckConfig' => [
'title' => '健康检查配置',
'description' => '健康检查相关配置。',
'type' => 'object',
'properties' => [
- 'HealthCheckConnectPort' => [
- 'title' => '健康检查使用的端口',
- 'description' => '健康检查使用的后端服务器的端口。'."\n"
- ."\n"
- .'取值范围: **1**~**65535**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '80',
- ],
- 'HealthCheckConnectTimeout' => [
- 'title' => '健康检查响应的最大超时时间',
- 'description' => '健康检查响应的最大超时时间。'."\n"
- ."\n"
- .'单位:秒。'."\n"
- ."\n"
- .'取值范围:**1**~**300**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '5',
- ],
- 'HealthCheckDomain' => [
- 'title' => '健康检查的域名',
- 'description' => '用于健康检查的域名。取值:'."\n"
- ."\n"
- .'- **$SERVER_IP**:使用后端服务器内网IP。'."\n"
- ."\n"
- .'- **domain**:指定特定域名。长度限制1~80个字符,只能使用大小写字母、数字、短划线(-)、半角句号(.)。'."\n"
- ."\n"
- .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。',
- 'type' => 'string',
- 'example' => '$SERVER_IP',
- ],
- 'HealthCheckEnabled' => [
- 'title' => '是否开启健康检查',
- 'description' => '是否开启健康检查,取值:'."\n"
- ."\n"
- .'- **true**:开启。'."\n"
- ."\n"
- .'- **false**:关闭。',
- 'type' => 'boolean',
- 'example' => 'true',
- ],
+ 'HealthCheckConnectPort' => ['title' => '健康检查使用的端口', 'description' => '健康检查使用的后端服务器的端口。'."\n"
+ ."\n"
+ .'取值范围: **1**~**65535**。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'],
+ 'HealthCheckConnectTimeout' => ['title' => '健康检查响应的最大超时时间', 'description' => '健康检查响应的最大超时时间。'."\n"
+ ."\n"
+ .'单位:秒。'."\n"
+ ."\n"
+ .'取值范围:**1**~**300**。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'],
+ 'HealthCheckDomain' => ['title' => '健康检查的域名', 'description' => '用于健康检查的域名。取值:'."\n"
+ ."\n"
+ .'- **$SERVER_IP**:使用后端服务器内网IP。'."\n"
+ ."\n"
+ .'- **domain**:指定特定域名。长度限制1~80个字符,只能使用大小写字母、数字、短划线(-)、半角句号(.)。'."\n"
+ ."\n"
+ .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。', 'type' => 'string', 'example' => '$SERVER_IP'],
+ 'HealthCheckEnabled' => ['title' => '是否开启健康检查', 'description' => '是否开启健康检查,取值:'."\n"
+ ."\n"
+ .'- **true**:开启。'."\n"
+ ."\n"
+ .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'true'],
'HealthCheckHttpCode' => [
'title' => '状态码,多个状态码用逗号分隔',
'description' => '健康状态返回码列表。',
'type' => 'array',
- 'items' => [
- 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n"
- .'取值:'."\n"
- .'- **http\\_2xx**'."\n"
- .'- **http\\_3xx**'."\n"
- .'- **http\\_4xx**'."\n"
- .'- **http\\_5xx**'."\n"
- ."\n"
- .'默认值:**http\\_2xx** 。'."\n"
- ."\n"
- .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。',
- 'type' => 'string',
- 'example' => 'http_2xx',
- ],
- ],
- 'HealthCheckInterval' => [
- 'title' => '健康检查时间间隔',
- 'description' => '健康检查的时间间隔。'."\n"
+ 'items' => ['description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n"
+ .'取值:'."\n"
+ .'- **http\\_2xx**'."\n"
+ .'- **http\\_3xx**'."\n"
+ .'- **http\\_4xx**'."\n"
+ .'- **http\\_5xx**'."\n"
."\n"
- .'单位:秒。'."\n"
+ .'默认值:**http\\_2xx** 。'."\n"
."\n"
- .'取值范围:**1**~**50**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
- ],
- 'HealthCheckPath' => [
- 'title' => '健康检查的path',
- 'description' => '健康检查路径。'."\n"
- ."\n"
- .'长度为1~80个字符,只能使用大小写英文字母、数字、字符`-/.%?#&`。 必须以正斜线(/)开头。'."\n"
- .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。',
- 'type' => 'string',
- 'example' => '/test/index.html',
- ],
- 'HealthCheckProtocol' => [
- 'title' => '健康检查协议类型',
- 'description' => '健康检查协议,取值:'."\n"
- ."\n"
- .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n"
- ."\n"
- .'- **HTTP**:通过发送GET请求模拟浏览器的访问行为来检查服务器应用是否健康。',
- 'type' => 'string',
- 'example' => 'TCP',
- ],
- 'HealthyThreshold' => [
- 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success',
- 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n"
- ."\n"
- .'取值范围:**2**~**10**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
- 'UnhealthyThreshold' => [
- 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail',
- 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n"
- ."\n"
- .'取值范围:**2**~**10**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
+ .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。', 'type' => 'string', 'example' => 'http_2xx'],
],
+ 'HealthCheckInterval' => ['title' => '健康检查时间间隔', 'description' => '健康检查的时间间隔。'."\n"
+ ."\n"
+ .'单位:秒。'."\n"
+ ."\n"
+ .'取值范围:**1**~**50**。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'],
+ 'HealthCheckPath' => ['title' => '健康检查的path', 'description' => '健康检查路径。'."\n"
+ ."\n"
+ .'长度为1~80个字符,只能使用大小写英文字母、数字、字符`-/.%?#&`。 必须以正斜线(/)开头。'."\n"
+ .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。', 'type' => 'string', 'example' => '/test/index.html'],
+ 'HealthCheckProtocol' => ['title' => '健康检查协议类型', 'description' => '健康检查协议,取值:'."\n"
+ ."\n"
+ .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n"
+ ."\n"
+ .'- **HTTP**:通过发送GET请求模拟浏览器的访问行为来检查服务器应用是否健康。', 'type' => 'string', 'example' => 'TCP'],
+ 'HealthyThreshold' => ['title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success', 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n"
+ ."\n"
+ .'取值范围:**2**~**10**。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'],
+ 'UnhealthyThreshold' => ['title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail', 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n"
+ ."\n"
+ .'取值范围:**2**~**10**。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'],
+ 'HealthCheckReq' => ['type' => 'string'],
+ 'HealthCheckExp' => ['type' => 'string'],
],
],
- 'Protocol' => [
- 'title' => '后端协议',
- 'description' => '后端转发协议。取值:'."\n"
- ."\n"
- .'- **GENEVE**。',
- 'type' => 'string',
- 'example' => 'GENEVE',
- ],
+ 'Protocol' => ['title' => '后端协议', 'description' => '后端转发协议。取值:'."\n"
+ ."\n"
+ .'- **GENEVE**。', 'type' => 'string', 'example' => 'GENEVE'],
'RelatedLoadBalancerIds' => [
'description' => '关联的负载均衡实例ID列表。',
'type' => 'array',
- 'items' => [
- 'description' => '关联的负载均衡实例ID。',
- 'type' => 'string',
- 'example' => 'gwlb-cp6prgqy40hols****',
- ],
- ],
- 'ResourceGroupId' => [
- 'title' => '资源组id',
- 'description' => '资源组ID。',
- 'type' => 'string',
- 'example' => 'rg-atstuj3rtop****',
- ],
- 'Scheduler' => [
- 'title' => '流量调度算法',
- 'description' => '调度算法。取值:'."\n"
- ."\n"
- .'- **5TCH**:五元组哈希,基于五元组(源IP、目的IP、源端口、目的端口和协议)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n"
- ."\n"
- .'- **3TCH**:三元组哈希,基于三元组(源IP、目的IP和协议)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n"
- ."\n"
- .'- **2TCH**:二元组哈希,基于二元组(源IP和目的IP)的一致性哈希,相同的流会调度到相同的后端服务器。',
- 'type' => 'string',
- 'example' => '5TCH',
- ],
- 'ServerCount' => [
- 'description' => '后端服务器数量。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
- 'ServerGroupId' => [
- 'title' => '服务器组id',
- 'description' => '服务器组ID。',
- 'type' => 'string',
- 'example' => 'sgp-atstuj3rtoptyui****',
- ],
- 'ServerGroupName' => [
- 'title' => '服务器组名称',
- 'description' => '服务器组名称。',
- 'type' => 'string',
- 'example' => 'testServerGroupName',
- ],
- 'ServerGroupStatus' => [
- 'title' => '服务器组状态',
- 'description' => '服务器组状态。取值:'."\n"
- ."\n"
- .'- **Creating**:创建中。'."\n"
- ."\n"
- .'- **Available**:可用。'."\n"
- ."\n"
- .'- **Configuring**:变配中。',
- 'type' => 'string',
- 'example' => 'Available',
- ],
- 'ServerGroupType' => [
- 'title' => '服务器组类型',
- 'description' => '服务器组类型。取值:'."\n"
- ."\n"
- .'- **Instance**:服务器类型,该类型服务器组支持添加**Ecs**、**Eni**、**Eci**类型实例。'."\n"
- ."\n"
- .'- **Ip**:IP地址类型,该类型服务器组支持直接添加IP地址类型的后端服务器。',
- 'type' => 'string',
- 'example' => 'Instance',
- ],
- 'ServerFailoverMode' => [
- 'description' => '服务器异常时,存量流量的处理方式。取值:'."\n"
- ."\n"
- .'- **NoRebalance**:不重新平衡现有流量。'."\n"
- .'- **Rebalance**:重新平衡现有流量。',
- 'type' => 'string',
- 'example' => 'NoRebalance',
+ 'items' => ['description' => '关联的负载均衡实例ID。', 'type' => 'string', 'example' => 'gwlb-cp6prgqy40hols****'],
],
+ 'ResourceGroupId' => ['title' => '资源组id', 'description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-atstuj3rtop****'],
+ 'Scheduler' => ['title' => '流量调度算法', 'description' => '调度算法。取值:'."\n"
+ ."\n"
+ .'- **5TCH**:五元组哈希,基于五元组(源IP、目的IP、源端口、目的端口和协议)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n"
+ ."\n"
+ .'- **3TCH**:三元组哈希,基于三元组(源IP、目的IP和协议)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n"
+ ."\n"
+ .'- **2TCH**:二元组哈希,基于二元组(源IP和目的IP)的一致性哈希,相同的流会调度到相同的后端服务器。', 'type' => 'string', 'example' => '5TCH'],
+ 'ServerCount' => ['description' => '后端服务器数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'],
+ 'ServerGroupId' => ['title' => '服务器组id', 'description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****'],
+ 'ServerGroupName' => ['title' => '服务器组名称', 'description' => '服务器组名称。', 'type' => 'string', 'example' => 'testServerGroupName'],
+ 'ServerGroupStatus' => ['title' => '服务器组状态', 'description' => '服务器组状态。取值:'."\n"
+ ."\n"
+ .'- **Creating**:创建中。'."\n"
+ ."\n"
+ .'- **Available**:可用。'."\n"
+ ."\n"
+ .'- **Configuring**:变配中。', 'type' => 'string', 'example' => 'Available'],
+ 'ServerGroupType' => ['title' => '服务器组类型', 'description' => '服务器组类型。取值:'."\n"
+ ."\n"
+ .'- **Instance**:服务器类型,该类型服务器组支持添加**Ecs**、**Eni**、**Eci**类型实例。'."\n"
+ ."\n"
+ .'- **Ip**:IP地址类型,该类型服务器组支持直接添加IP地址类型的后端服务器。', 'type' => 'string', 'example' => 'Instance'],
+ 'ServerFailoverMode' => ['description' => '服务器异常时,存量流量的处理方式。取值:'."\n"
+ ."\n"
+ .'- **NoRebalance**:不重新平衡现有流量。'."\n"
+ .'- **Rebalance**:重新平衡现有流量。', 'type' => 'string', 'example' => 'NoRebalance'],
'Tags' => [
'title' => '标签',
'description' => '标签列表。',
@@ -3332,54 +2502,50 @@
'description' => '标签。',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => '标签键。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。',
- 'type' => 'string',
- 'example' => 'testTagKey',
- ],
- 'Value' => [
- 'description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。',
- 'type' => 'string',
- 'example' => 'testTagValue',
- ],
+ 'Key' => ['description' => '标签键。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'example' => 'testTagKey'],
+ 'Value' => ['description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。', 'type' => 'string', 'example' => 'testTagValue'],
],
],
],
- 'VpcId' => [
- 'title' => '服务器组的vpcid',
- 'description' => '专用网络ID。',
- 'type' => 'string',
- 'example' => 'vpc-bp15zckdt37pq72zv****',
- ],
+ 'VpcId' => ['title' => '服务器组的vpcid', 'description' => '专用网络ID。', 'type' => 'string', 'example' => 'vpc-bp15zckdt37pq72zv****'],
],
],
],
- 'TotalCount' => [
- 'description' => '列表条目数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
+ 'TotalCount' => ['description' => '列表条目数。', '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"}]',
+ 'staticInfo' => ['returnType' => 'synchronous'],
'title' => '查询服务器组列表',
- ],
- 'ListServerGroupServers' => [
- 'summary' => '查询负载均衡服务器组中的服务器列表。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
+ 'summary' => '查询负载均衡服务器组列表。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListServerGroups'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'gwlb:ListServerGroups',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/*'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'],
+ ],
+ ],
+ ],
],
+ '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 \\"HealthCheckReq\\": \\"\\",\\n \\"HealthCheckExp\\": \\"\\"\\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"}]',
+ ],
+ 'ListTagResources' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -3388,223 +2554,145 @@
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'get',
+ 'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '225066',
- 'abilityTreeNodes' => [
- 'FEATUREslb3GOGI0',
- ],
+ 'abilityTreeCode' => '225143',
+ 'abilityTreeNodes' => ['FEATUREslbRXTOWD'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ServerGroupId',
+ 'name' => 'ResourceType',
'in' => 'formData',
'schema' => [
- 'description' => '服务器组ID。',
+ 'description' => '资源类型,取值:'."\n"
+ ."\n"
+ .'- **loadbalancer**:网关型负载均衡实例。'."\n"
+ .'- **listener**:监听。'."\n"
+ .'- **servergroup**:服务器组。',
'type' => 'string',
- 'required' => false,
- 'example' => 'sgp-atstuj3rtoptyui****',
+ 'required' => true,
+ 'example' => 'loadbalancer',
+ 'enum' => [],
],
],
[
- 'name' => 'ServerIds',
+ 'name' => 'ResourceId',
'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'description' => '服务器ID列表。'."\n"
- ."\n"
- .'单次调用最多支持展示200个服务器。',
+ 'description' => '资源 ID列表。一次调用最多支持添加 50 个资源 ID。',
'type' => 'array',
- 'items' => [
- 'description' => '服务器ID。'."\n"
- ."\n"
- .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源ID。'."\n"
- ."\n"
- .'- 当服务器组为**Ip**类型时,该参数为IP地址。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'i-bp67acfmxazb4p****',
- ],
+ 'items' => ['description' => '资源ID。', 'type' => 'string', 'required' => false, 'example' => 'gwlb-nrnrxwd15en27r****'],
'required' => false,
- 'maxItems' => 200,
+ 'maxItems' => 50,
+ 'minItems' => 1,
],
],
[
- 'name' => 'ServerIps',
+ 'name' => 'Tag',
'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'description' => '服务器IP地址列表。'."\n"
- ."\n"
- .'单次调用最多支持展示200个服务器。',
+ 'description' => '标签列表。一次调用最多支持 20 个标签。',
'type' => 'array',
'items' => [
- 'description' => '服务器IP地址。',
- 'type' => 'string',
+ 'description' => '标签。',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => '标签键。', 'type' => 'string', 'required' => false, 'example' => 'testKey'],
+ 'Value' => ['description' => '标签值。', 'type' => 'string', 'required' => false, 'example' => 'testValue'],
+ ],
'required' => false,
- 'example' => '192.168.xxx.xxx',
],
'required' => false,
- 'maxItems' => 200,
+ 'maxItems' => 20,
+ 'minItems' => 1,
],
],
[
'name' => 'NextToken',
'in' => 'formData',
- 'schema' => [
- 'title' => '分页游标',
- 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
- .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
- .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
+ 'schema' => ['title' => '分页游标', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
+ .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
+ .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'required' => false, 'example' => 'WyI2NDQ3MWUxM2EzOWNhMmY0Y2M2YTRiNzZhOWQwNmU1Y2RlNTYzMGEzIiwibiIsIm4iLDEsLTEsMTY5ODcxMzI2NjU0MywiNjU0MDRlYjI2MmI3MDhjY2JiMjM0ZmU0ODNkNTVmMGRhZDllOTBi****'],
],
[
'name' => 'MaxResults',
'in' => 'formData',
- 'schema' => [
- 'title' => '分页大小',
- 'description' => '分批次查询时每次显示的条目数。'."\n"
- ."\n"
- .'取值范围:1~1000。'."\n"
- ."\n"
- .'默认值:20。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '20',
- ],
- ],
- [
- 'name' => 'Skip',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '查询时跳过指定的条目数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
- ],
+ 'schema' => ['description' => '使用NextToken方式查询时,每次最多返回的结果数。取值范围:1~1000。默认值:20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
- 'description' => '返回数据结构体。',
+ 'description' => '请求的返回值。',
'type' => 'object',
'properties' => [
- 'MaxResults' => [
- 'description' => '分批次查询时每次显示的条目数。'."\n"
- ."\n"
- .'取值范围:1~1000。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
- ],
- 'NextToken' => [
- 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
- .'- 第一次查询和没有下一次查询时,均无需填写。'."\n"
- .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。',
- 'type' => 'string',
- 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****',
- ],
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
- ],
- 'Servers' => [
- 'description' => '后端服务器列表。',
+ 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
+ .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
+ .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'd209f4e63ec942c967c50c888a13****'],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A95325A2-E421-58A6-88AD-7A26CE610F45'],
+ 'TagResources' => [
+ 'description' => '标签资源列表。',
'type' => 'array',
'items' => [
- 'description' => '后端服务器。',
+ 'description' => '资源绑定的标签信息。',
'type' => 'object',
'properties' => [
- 'Port' => [
- 'title' => '服务器端口',
- 'description' => '后端服务器使用的端口,取值:'."\n"
- ."\n"
- .'- **6081**。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '6081',
- ],
- 'ServerGroupId' => [
- 'title' => '服务器所属的服务器组ID',
- 'description' => '服务器组ID。',
- 'type' => 'string',
- 'example' => 'sgp-atstuj3rtoptyui****',
- ],
- 'ServerId' => [
- 'title' => '服务器id',
- 'description' => '后端服务器ID。',
- 'type' => 'string',
- 'example' => 'i-bp67acfmxazb4p****',
- ],
- 'ServerIp' => [
- 'title' => '服务器ip',
- 'description' => '后端服务器IP地址。',
- 'type' => 'string',
- 'example' => '192.168.xxx.xxx',
- ],
- 'ServerType' => [
- 'title' => '服务器类型',
- 'description' => '后端服务器类型,取值:'."\n"
- ."\n"
- .'- **Ecs**:ECS实例。'."\n"
- .'- **Eni**:ENI弹性网卡实例。'."\n"
- .'- **Eci**:ECI弹性容器。'."\n"
- .'- **Ip**:Ip地址。',
- 'type' => 'string',
- 'example' => 'Ecs',
- ],
- 'Status' => [
- 'title' => '资源状态',
- 'description' => '后端服务器的状态。取值:'."\n"
- ."\n"
- .'- **Adding**:添加中。'."\n"
- .'- **Available**:正常可用状态。'."\n"
- .'- **Draining**:连接优雅中断中。'."\n"
- .'- **Removing**:移除中。'."\n"
- .'- **Replacing**:替换中。',
- 'type' => 'string',
- 'example' => 'Available',
- ],
+ 'ResourceId' => ['description' => '资源ID。', 'type' => 'string', 'example' => 'gwlb-nrnrxwd15en27r****'."\n"],
+ 'ResourceType' => ['description' => '资源类型,取值:'."\n"
+ ."\n"
+ .'- **loadbalancer**:网关型负载均衡实例。'."\n"
+ .'- **listener**:监听。'."\n"
+ .'- **servergroup**:服务器组。', 'type' => 'string', 'example' => 'loadbalancer'],
+ 'TagKey' => ['description' => '标签键。', 'type' => 'string', 'example' => 'testKey'],
+ 'TagValue' => ['description' => '标签值。', 'type' => 'string', 'example' => 'testValue'],
],
],
],
- 'TotalCount' => [
- 'description' => '列表条目数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
],
],
],
],
- 'errorCodes' => [],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'MissingParam.TagsOrResourceIds', 'errorMessage' => 'The param of TagsOrResourceIds is missing.', 'description' => '标签列表与资源ID列表全部未设置或为空列表'],
+ ['errorCode' => 'MissingParam.TagKey', 'errorMessage' => 'The param of TagKey is missing.', 'description' => '标签键参数缺失'],
+ ['errorCode' => 'DuplicatedParam.ResourceId', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '参数%s重复'],
+ ['errorCode' => 'DuplicatedParam.TagKey', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '标签键参数重复'],
+ ],
],
- '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' => '查询服务器组中的服务器列表',
- ],
- 'CreateListener' => [
- 'summary' => '创建负载均衡监听器。',
- 'methods' => [
- 'post',
- 'get',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => '查询资源标签',
+ 'summary' => '查询指定资源绑定的标签。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListTagResources'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'gwlb:ListTagResources',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ '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"}]',
+ ],
+ 'MoveResourceGroup' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -3613,125 +2701,54 @@
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'create',
+ 'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '220131',
- 'abilityTreeNodes' => [
- 'FEATUREslbPNW4R2',
- ],
+ 'abilityTreeCode' => '225546',
+ 'abilityTreeNodes' => ['FEATUREslbRXTOWD'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'LoadBalancerId',
+ 'name' => 'ResourceId',
'in' => 'formData',
- 'schema' => [
- 'description' => '网关型负载均衡实例的ID。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'gwlb-te609d6696632f7*****',
- ],
+ 'schema' => ['description' => '资源ID。', 'type' => 'string', 'required' => true, 'example' => 'gwlb-nrnrxwd15en27r****'],
],
[
- 'name' => 'ListenerDescription',
+ 'name' => 'NewResourceGroupId',
'in' => 'formData',
- 'schema' => [
- 'description' => '自定义监听描述。'."\n"
- ."\n"
- .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'listener-description',
- ],
+ 'schema' => ['description' => '目标资源组ID。', 'type' => 'string', 'required' => true, 'example' => 'rg-aek253e4oit****'],
],
[
- 'name' => 'ServerGroupId',
+ 'name' => 'ResourceType',
'in' => 'formData',
'schema' => [
- 'description' => '服务器组 ID。',
+ 'description' => '资源类型,取值:'."\n"
+ ."\n"
+ .'- **loadbalancer**:网关型负载均衡实例。'."\n"
+ .'- **servergroup**:服务器组。',
'type' => 'string',
'required' => true,
- 'example' => 'sgp-ckh01px70dszof****',
- ],
- ],
- [
- 'name' => 'TcpIdleTimeout',
- 'in' => 'formData',
- 'schema' => [
- 'title' => 'TCP连接空闲超时时间。默认值:**350**秒。'."\n"
- ."\n"
- .'取值范围:**60**-**6000**秒。',
- 'description' => 'TCP连接空闲超时时间。'."\n"
- ."\n"
- .'取值范围:**60**-**6000** 秒。'."\n"
- ."\n"
- .'默认值:**350** 秒。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '350',
- 'default' => '350',
+ 'example' => 'loadbalancer',
+ 'enum' => ['loadbalancer', 'servergroup'],
],
],
[
'name' => 'DryRun',
'in' => 'formData',
- 'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求。取值:'."\n"
- .'- **true**:发送检查请求,不会创建监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求。取值:'."\n"
+ .'- **true**:发送检查请求,不会迁移资源组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
'name' => 'ClientToken',
'in' => 'formData',
- 'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
- ."\n"
- .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
- ],
- [
- 'name' => 'Tag',
- 'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'description' => '标签列表。一次调用最多支持添加20个标签。',
- 'type' => 'array',
- 'items' => [
- 'description' => '标签。',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => '标签键。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testKey',
- ],
- 'Value' => [
- 'description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testValue',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- 'maxItems' => 20,
- ],
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
+ ."\n"
+ .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
],
'responses' => [
@@ -3741,106 +2758,50 @@
'description' => '请求的返回值。',
'type' => 'object',
'properties' => [
- 'ListenerId' => [
- 'title' => '',
- 'description' => '监听ID。',
- 'type' => 'string',
- 'example' => 'lsn-wi3c0v30ivysrg****',
- ],
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => 'A045E652-D298-5E70-A978-7247135336FB',
- ],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '78828B5C-521E-50F3-84D4-7019691D1382'],
],
],
],
],
'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.',
- ],
+ ['errorCode' => 'OperationDenied.NotExist.ResourceGroup', 'errorMessage' => 'The operation is not allowed because of NotExist.ResourceGroup.', 'description' => '操作被拒绝,资源组不存在'],
+ ['errorCode' => 'OperationDenied.StatusCheckFail.ResourceGroup', 'errorMessage' => 'The operation is not allowed because of StatusCheckFail.ResourceGroup.', 'description' => '操作被拒绝,资源组状态异常'],
],
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.',
- ],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的负载均衡资源不存在'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的服务器组资源不存在。'],
],
],
- 'staticInfo' => [
- 'returnType' => 'asynchronous',
- 'callback' => 'Gwlb::2024-04-15::GetListenerAttribute',
- 'callbackInterval' => 3000,
- 'maxCallbackTimes' => 100,
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => '迁移资源组',
+ 'summary' => '修改资源所属的资源组。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'MoveResourceGroup'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:MoveResourceGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:serverGroup/{#serverGroupId}'],
+ ],
+ ],
+ ],
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ListenerId\\": \\"lsn-wi3c0v30ivysrg****\\",\\n \\"RequestId\\": \\"A045E652-D298-5E70-A978-7247135336FB\\"\\n}","type":"json"}]',
- 'title' => '创建监听',
- 'description' => '**CreateListener** 接口属于异步接口,即系统返回一个请求 ID,但该监听尚未创建成功,系统后台的创建任务仍在进行。您可以调用[GetListenerAttribute](~~2853569~~)查询监听的创建状态:'."\n"
- ."\n"
- .'- 当监听处于 **Provisioning** 状态时,表示监听正在创建中。'."\n"
- ."\n"
- .'- 当监听处于 **Running** 状态时,表示监听创建成功。',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"78828B5C-521E-50F3-84D4-7019691D1382\\"\\n}","type":"json"}]',
],
- 'UpdateListenerAttribute' => [
- 'summary' => '更新负载均衡监听的属性。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'RemoveServersFromServerGroup' => [
+ 'summary' => '从负载均衡服务器组中移除后端服务器。',
+ 'methods' => ['post'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -3849,177 +2810,141 @@
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'update',
+ 'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '221402',
- 'abilityTreeNodes' => [
- 'FEATUREslbC68LB1',
- 'FEATUREslbPNW4R2',
- ],
+ 'abilityTreeCode' => '225065',
+ 'abilityTreeNodes' => ['FEATUREslb3GOGI0'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ListenerId',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '监听ID。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsn-lxce8iqbof2vl0****',
- ],
- ],
- [
- 'name' => 'ListenerDescription',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '自定义监听描述。'."\n"
- ."\n"
- .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'listener_description',
- ],
- ],
- [
'name' => 'ServerGroupId',
'in' => 'formData',
- 'schema' => [
- 'description' => '服务器组ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'sgp-sp8d2r6y7t0xtl****',
- ],
+ 'schema' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****'],
],
[
- 'name' => 'TcpIdleTimeout',
+ 'name' => 'Servers',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'title' => 'TCP连接空闲超时时间。取值范围:**60**-**6000**秒。',
- 'description' => 'TCP连接空闲超时时间。取值范围:**60**-**6000**秒。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '350',
+ 'description' => '后端服务器列表。'."\n"
+ ."\n"
+ .'> 单次调用最多支持传入200个服务器。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '后端服务器。',
+ 'type' => 'object',
+ 'properties' => [
+ 'Port' => ['title' => '服务器端口', 'description' => '后端服务器使用的端口,取值:'."\n"
+ ."\n"
+ .'- **6081**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '6081'],
+ 'ServerId' => ['title' => '服务器id', 'description' => '后端服务器ID。'."\n"
+ ."\n"
+ .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源ID。'."\n"
+ ."\n"
+ .'- 当服务器组为**Ip**类型时,该参数为IP地址。', 'type' => 'string', 'required' => true, 'example' => 'i-bp67acfmxazb4p****'],
+ 'ServerIp' => ['title' => '服务器ip', 'description' => '后端服务器IP地址。', 'type' => 'string', 'required' => false, 'example' => '192.168.xxx.xxx'."\n"],
+ 'ServerType' => [
+ 'title' => '服务器类型',
+ 'description' => '后端服务器类型,取值:'."\n"
+ ."\n"
+ .'- **Ecs**:ECS实例。'."\n"
+ .'- **Eni**:ENI弹性网卡实例。'."\n"
+ .'- **Eci**:ECI弹性容器。'."\n"
+ .'- **Ip**:Ip地址。',
+ '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' => '是否只预检此次请求。取值:'."\n"
- .'- **true**:发送检查请求,不会更新监听属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求,取值:'."\n"
+ .'- **true**:发送检查请求,不会从服务器组中移除后端服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
'name' => 'ClientToken',
'in' => 'formData',
- 'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
+ ."\n"
+ .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
- 'description' => '请求的返回值。',
+ 'description' => '返回数据结构体。',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => '请求 ID。',
- 'type' => 'string',
- 'example' => '7DBFC67C-A272-5952-8287-6C3EBE4E04D9',
- ],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'],
],
],
],
],
'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.',
- ],
+ ['errorCode' => 'IncorrectStatus.BackendServer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '服务器的状态无法进行当前操作,请检查服务器当前是否处于其他操作下。'],
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
],
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.',
- ],
+ ['errorCode' => 'ResourceNotFound.BackendServer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的后端服务器资源不存在。'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的服务器组资源不存在。'],
],
],
- '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' => '更新监听属性',
- 'description' => '**UpdateListenerAttribute** 接口属于异步接口,即系统返回一个请求 ID,但该监听的配置尚未更新成功,系统后台的更新任务仍在进行。您可以调用 **GetListenerAttribute** 查询监听的配置的更新状态:'."\n"
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Gwlb::2024-04-15::ListServerGroupServers', 'callbackInterval' => 3000, 'maxCallbackTimes' => 100],
+ 'title' => '服务器组中移除后端服务器',
+ 'description' => '**RemoveServersFromServerGroup**接口属于异步接口,即系统返回一个请求ID,但该后端服务器尚未移除成功,系统后台的移除任务仍在进行。'."\n"
+ .'1. 您可以调用 ListServerGroups 查询服务器组的状态:'."\n"
+ .' - 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n"
+ .' - 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n"
."\n"
- .'- 当监听器处于 **Configuring** 状态时,表示监听的配置正在更新中。'."\n"
- .'- 当监听器处于 **Running** 状态时,表示监听的配置更新成功。',
- ],
- 'DeleteListener' => [
- 'summary' => '删除负载均衡监听器。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
+ .'2. 您可以调用 ListServerGroupServers 查询后端服务器的状态:'."\n"
+ .' - 当后端服务器处于**Removing**状态时,表示后端服务器正在从服务器组中移除。'."\n"
+ .' - 当查询不到该后端服务器时,表示后端服务器移除成功。'."\n"
+ ."\n"
+ .'> - 若服务器所在的服务器组开启了连接优雅中断(**ConnectionDrainEnabled**为true),移除时后端服务器会先变为**Removing**状态,之后变为**Draining**状态。待连接优雅中断超时(**ConnectionDrainTimeout**)到期后,才会真正将服务器从服务器组移除。'."\n"
+ .'> - 期间可以再次将此服务器加入此服务器组,此时状态由**Draining**变为**Adding**,最终变为**Available**。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveServersFromServerGroup'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'gwlb:RemoveServersFromServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#InstanceId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:eni/{#ServerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:eci:{#regionId}:{#accountId}:containergroup/{#ServerId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]',
+ ],
+ 'TagResources' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -4028,55 +2953,78 @@
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'delete',
+ 'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '221398',
- 'abilityTreeNodes' => [
- 'FEATUREslbC68LB1',
- ],
+ 'abilityTreeCode' => '225141',
+ 'abilityTreeNodes' => ['FEATUREslbRXTOWD'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ListenerId',
+ 'name' => 'ResourceType',
'in' => 'formData',
'schema' => [
- 'description' => '监听ID。',
+ 'description' => '资源类型,取值:'."\n"
+ ."\n"
+ .'- **loadbalancer**:网关型负载均衡实例。'."\n"
+ .'- **listener**:监听。'."\n"
+ .'- **servergroup**:服务器组。',
'type' => 'string',
'required' => true,
- 'example' => 'lsn-brx2y3hqdincizg***',
+ 'example' => 'loadbalancer',
+ 'enum' => [],
],
],
[
- 'name' => 'DryRun',
+ 'name' => 'ResourceId',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求。取值:'."\n"
- .'- **true**:发送检查请求,不会删除监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
+ 'description' => '资源 ID列表。一次调用最多支持添加 50 个资源 ID。',
+ 'type' => 'array',
+ 'items' => ['description' => '资源ID。', 'type' => 'string', 'required' => false, 'example' => 'gwlb-nrnrxwd15en27r****'],
+ 'required' => true,
+ 'maxItems' => 50,
+ 'minItems' => 1,
],
],
[
- 'name' => 'ClientToken',
+ 'name' => 'Tag',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
- ."\n"
- .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
+ 'description' => '标签列表。一次调用最多支持 20 个标签。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '标签。',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => '标签键。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => true, 'example' => 'testKey'],
+ 'Value' => ['description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => true, 'example' => 'testValue'],
+ ],
+ 'required' => true,
+ ],
+ 'required' => true,
+ 'maxItems' => 20,
+ 'minItems' => 1,
],
],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求。取值:'."\n"
+ .'- **true**:发送检查请求,不会添加标签。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
+ ],
],
'responses' => [
200 => [
@@ -4085,186 +3033,136 @@
'description' => '请求的返回值。',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '5C6E3548-086F-5FF6-A2B3-B1871B3AB488',
- ],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54F6E60A-1777-5C17-A6A9-BCC1A7FE945B'],
],
],
],
],
'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.',
- ],
+ ['errorCode' => 'MissingParam.TagKey', 'errorMessage' => 'The param of TagKey is missing.', 'description' => '标签键参数缺失'],
+ ['errorCode' => 'MissingParam.TagValue', 'errorMessage' => 'The param of TagValue is missing.', 'description' => '标签值参数缺失'],
+ ['errorCode' => 'ResourceQuotaExceeded.TagNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '资源绑定的标签数量超限'],
+ ['errorCode' => 'DuplicatedParam.TagKey', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '标签键参数重复'],
+ ['errorCode' => 'IllegalParam.TagKey', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''],
+ ['errorCode' => 'IllegalParam.TagValue', 'errorMessage' => 'The param of %s is illegal.', 'description' => '标签值参数不合法'],
+ ['errorCode' => 'DuplicatedParam.ResourceId', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '参数%s重复'],
],
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.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的负载均衡资源不存在'],
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的监听资源不存在'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的服务器组资源不存在。'],
],
],
- 'staticInfo' => [
- 'returnType' => 'asynchronous',
- 'callback' => 'Gwlb::2024-04-15::GetListenerAttribute',
- 'callbackInterval' => 3000,
- 'maxCallbackTimes' => 100,
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => '添加资源标签',
+ 'summary' => '为指定的资源列表创建并绑定标签。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TagResources'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:TagResources',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
+ ],
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5C6E3548-086F-5FF6-A2B3-B1871B3AB488\\"\\n}","type":"json"}]',
- 'title' => '删除监听',
- 'description' => '**DeleteListener** 接口属于异步接口,即系统返回一个请求 ID,但该监听尚未删除成功,系统后台的删除任务仍在进行。您可以调用 **GetListenerAttribute** 查询监听的删除状态:'."\n"
- ."\n"
- .'- 当监听器处于 **Deleting** 状态时,表示监听正在删除中。'."\n"
- .'- 当查询不到该监听时,表示监听删除成功。',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54F6E60A-1777-5C17-A6A9-BCC1A7FE945B\\"\\n}","type":"json"}]',
],
- 'ListListeners' => [
- 'summary' => '查询负载均衡监听列表。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'UntagResources' => [
+ 'summary' => '为指定的资源列表解绑标签。',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'list',
+ 'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '221401',
- 'abilityTreeNodes' => [
- 'FEATUREslbC68LB1',
- ],
+ 'abilityTreeCode' => '225142',
+ 'abilityTreeNodes' => ['FEATUREslbRXTOWD'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ListenerIds',
+ 'name' => 'ResourceType',
'in' => 'formData',
- 'style' => 'flat',
'schema' => [
- 'description' => '监听ID列表,最多支持20个监听ID。',
- 'type' => 'array',
- 'items' => [
- 'description' => '监听ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'lsn-w3t3vpgjj12b2i****',
- ],
- 'required' => false,
- 'maxItems' => 20,
- 'minItems' => 1,
+ 'description' => '资源类型,取值:'."\n"
+ ."\n"
+ .'- **loadbalancer**:网关型负载均衡实例。'."\n"
+ .'- **listener**:监听。'."\n"
+ .'- **servergroup**:服务器组。',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'loadbalancer',
+ 'enum' => [],
],
],
[
- 'name' => 'LoadBalancerIds',
+ 'name' => 'ResourceId',
'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'description' => '网关型负载均衡实例ID。最多支持20个实例ID。',
+ 'description' => '资源 ID列表。一次调用最多支持添加 50 个资源 ID。',
'type' => 'array',
- 'items' => [
- 'description' => '网关型负载均衡实例ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'gwlb-rbtjolkkbudmrr****',
- ],
- 'required' => false,
- 'maxItems' => 20,
+ 'items' => ['description' => '资源ID。', 'type' => 'string', 'required' => false, 'example' => 'gwlb-nrnrxwd15en27r****'],
+ 'required' => true,
+ 'maxItems' => 50,
'minItems' => 1,
],
],
[
- 'name' => 'NextToken',
+ 'name' => 'TagKey',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'title' => '分页游标',
- 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
- .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
- .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。',
- 'type' => 'string',
+ 'description' => '要删除标签的标签键列表。一次调用最多支持删除 20 个标签',
+ 'type' => 'array',
+ 'items' => ['description' => '要删除标签的标签键。', 'type' => 'string', 'required' => false, 'example' => 'testKey'],
'required' => false,
- 'example' => 'd209f4e63ec942c967c50c888a13****',
+ 'maxItems' => 20,
+ 'minItems' => 1,
],
],
[
- 'name' => 'MaxResults',
+ 'name' => 'All',
'in' => 'formData',
- 'schema' => [
- 'title' => '分页大小',
- 'description' => '使用NextToken方式查询时,每次最多返回的结果数。取值范围:1~1000。默认值:20。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '20',
- ],
+ 'schema' => ['description' => '是否解绑资源的所有标签。当填写了TagKey参数时,本参数将被忽略。取值:'."\n"
+ ."\n"
+ .'- **true**:解绑资源的所有标签。'."\n"
+ .'- **false**(默认值):不解绑资源的所有标签。', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
[
- 'name' => 'Tag',
+ 'name' => 'DryRun',
'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'description' => '标签列表。一次调用最多支持 20 个标签。',
- 'type' => 'array',
- 'items' => [
- 'description' => '标签。',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => '标签键。一旦传入该值,则不允许为空字符串。'."\n"
- ."\n"
- .'一个标签健最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'tagKey',
- ],
- 'Value' => [
- 'description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'tagValue',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- 'maxItems' => 20,
- 'minItems' => 1,
- ],
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求。取值:'."\n"
+ .'- **true**:发送检查请求,不会删除标签。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
- 'name' => 'Skip',
+ 'name' => 'ClientToken',
'in' => 'formData',
- 'schema' => [
- 'description' => '分页查询时,跳过的条目数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
],
'responses' => [
@@ -4274,148 +3172,66 @@
'description' => '请求的返回值。',
'type' => 'object',
'properties' => [
- 'Listeners' => [
- 'description' => '网关型负载均衡监听列表。',
- 'type' => 'array',
- 'items' => [
- 'description' => '监听信息。',
- 'type' => 'object',
- 'properties' => [
- 'ListenerDescription' => [
- 'title' => '监听描述',
- 'description' => '监听描述。',
- 'type' => 'string',
- 'example' => 'listener-description',
- ],
- 'ListenerId' => [
- 'title' => '自己生成后赋值',
- 'description' => '监听ID。',
- 'type' => 'string',
- 'example' => 'lsn-vu7folhh5ntm8u****',
- ],
- 'ListenerStatus' => [
- 'title' => '监听状态',
- 'description' => '当前监听的状态,取值:'."\n"
- ."\n"
- .'- **Provisioning**:创建中。'."\n"
- .'- **Running**:运行中。'."\n"
- .'- **Configuring**:配置中。'."\n"
- .'- **Deleting**:删除中。',
- 'type' => 'string',
- 'example' => 'Running',
- ],
- 'LoadBalancerId' => [
- 'title' => '负载均衡实例ID',
- 'description' => '网关型负载均衡实例的ID。',
- 'type' => 'string',
- 'example' => 'gwlb-uf6hbeh795xlqln7g****',
- ],
- 'ServerGroupId' => [
- 'title' => '服务器组ID',
- 'description' => '服务器组ID。',
- 'type' => 'string',
- 'example' => 'sgp-5yapcb422i51ru****',
- ],
- 'TcpIdleTimeout' => [
- 'title' => 'TCP连接空闲超时时间。',
- 'description' => 'TCP连接空闲超时时间。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '350',
- ],
- 'Tags' => [
- 'description' => '标签列表。',
- 'type' => 'array',
- 'items' => [
- 'description' => '标签列表。',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => '标签键。',
- 'type' => 'string',
- 'example' => 'testKey',
- ],
- 'Value' => [
- 'description' => '标签值。',
- 'type' => 'string',
- 'example' => 'testValue',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- 'MaxResults' => [
- 'description' => '使用NextToken方式查询时,每次最多返回的结果数。取值范围:1~1000。默认值:20。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
- ],
- 'NextToken' => [
- 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
- .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
- .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。',
- 'type' => 'string',
- 'example' => '5c281c0a0d6bfb6355ed088c2108aca8e0b5e8707e68****',
- ],
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '7DBFC67C-A272-5952-8287-6C3EBE4E04D9',
- ],
- 'TotalCount' => [
- 'description' => '列表条目总数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '8',
- ],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3DC0064C-C09E-5C99-8FD4-9CDB2DA7FA21'],
],
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'MissingParam.TagKey',
- 'errorMessage' => 'The param of TagKey is missing.',
- ],
- [
- 'errorCode' => 'DuplicatedParam.TagKey',
- 'errorMessage' => 'The param of %s is duplicated.',
- ],
+ ['errorCode' => 'ExclusiveParam.TagKeyAndAll', 'errorMessage' => 'The param of %s and %s are mutually exclusive.', 'description' => '标签键参数值与是否解绑资源的所有标签选项的参数值互斥'],
+ ['errorCode' => 'MissingParam.TagKey', 'errorMessage' => 'The param of TagKey is missing.', 'description' => '标签键参数缺失'],
+ ['errorCode' => 'DuplicatedParam.ResourceId', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '参数%s重复'],
+ ['errorCode' => 'DuplicatedParam.TagKey', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '标签键参数重复'],
+ ['errorCode' => 'IllegalParam.TagKey', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的监听资源不存在'],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的负载均衡资源不存在'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的服务器组资源不存在。'],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => '删除资源标签',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UntagResources'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:UntagResources',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
+ ],
],
- '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' => '查询监听列表',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3DC0064C-C09E-5C99-8FD4-9CDB2DA7FA21\\"\\n}","type":"json"}]',
],
- 'GetListenerAttribute' => [
- 'summary' => '查询负载均衡实例的监听器详情。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'UpdateListenerAttribute' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'get',
+ 'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '221399',
- 'abilityTreeNodes' => [
- 'FEATUREslbC68LB1',
- ],
+ 'abilityTreeCode' => '221402',
+ 'abilityTreeNodes' => ['FEATUREslbC68LB1', 'FEATUREslbPNW4R2'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
@@ -4423,12 +3239,38 @@
[
'name' => 'ListenerId',
'in' => 'formData',
- 'schema' => [
- 'description' => '监听ID。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsn-brx2y3hqdinciz****',
- ],
+ 'schema' => ['description' => '监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-lxce8iqbof2vl0****'],
+ ],
+ [
+ 'name' => 'ListenerDescription',
+ 'in' => 'formData',
+ 'schema' => ['description' => '自定义监听描述。'."\n"
+ ."\n"
+ .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'listener_description'],
+ ],
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => false, 'example' => 'sgp-sp8d2r6y7t0xtl****'],
+ ],
+ [
+ 'name' => 'TcpIdleTimeout',
+ 'in' => 'formData',
+ 'schema' => ['title' => 'TCP连接空闲超时时间。取值范围:**60**-**6000**秒。', 'description' => 'TCP连接空闲超时时间。取值范围:**60**-**6000**秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '350'],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'formData',
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求。取值:'."\n"
+ .'- **true**:发送检查请求,不会更新监听属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'formData',
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
],
'responses' => [
@@ -4438,1119 +3280,977 @@
'description' => '请求的返回值。',
'type' => 'object',
'properties' => [
- 'ListenerDescription' => [
- 'title' => '监听描述',
- 'description' => '自定义监听描述。'."\n"
- ."\n"
- .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。',
- 'type' => 'string',
- 'example' => 'listener_description',
- ],
- 'ListenerId' => [
- 'title' => '',
- 'description' => '监听ID。',
- 'type' => 'string',
- 'example' => 'lsn-3kbj3587mqhm3p****',
- ],
- 'ListenerStatus' => [
- 'title' => '监听状态',
- 'description' => '当前监听的状态。取值:'."\n"
- ."\n"
- .'- **Provisioning**:创建中。'."\n"
- .'- **Running**:运行中。'."\n"
- .'- **Configuring**:配置中。'."\n"
- .'- **Deleting**:删除中。',
- 'type' => 'string',
- 'example' => 'Provisioning',
- ],
- 'LoadBalancerId' => [
- 'title' => '负载均衡实例ID',
- 'description' => '网关型负载均衡实例ID。',
- 'type' => 'string',
- 'example' => 'gwlb-te609d6696632f76****',
- ],
- 'RegionId' => [
- 'title' => '',
- 'description' => '网关型负载均衡实例所在的地域 ID。',
- 'type' => 'string',
- 'example' => 'cn-hangzhou',
- ],
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '75CC3312-7757-5EE1-90D8-49CEA66608AE',
- ],
- 'ServerGroupId' => [
- 'title' => '服务器组ID',
- 'description' => '服务器组ID。',
- 'type' => 'string',
- 'example' => 'sgp-sp8d2r6y7t0xtl****',
- ],
- 'TcpIdleTimeout' => [
- 'title' => 'TCP连接空闲超时时间。',
- 'description' => 'TCP连接空闲超时时间。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '350',
- ],
- 'Tags' => [
- 'description' => '标签列表。',
- 'type' => 'array',
- 'items' => [
- 'description' => '标签。',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => '标签键。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。',
- 'type' => 'string',
- 'example' => 'testKey',
- ],
- 'Value' => [
- 'description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。',
- 'type' => 'string',
- 'example' => 'testValue',
- ],
- ],
- ],
- ],
+ 'RequestId' => ['description' => '请求 ID。', 'type' => 'string', 'example' => '7DBFC67C-A272-5952-8287-6C3EBE4E04D9'],
],
],
],
],
'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => '资源%s业务状态%s不支持当前操作'],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
+ ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作。'],
+ ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '两个资源的VPC ID不匹配'],
+ ['errorCode' => 'ResourceInUse.IP', 'errorMessage' => 'The specified resource of IP is in use.', 'description' => ''],
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
+ ['errorCode' => 'OperationDenied.TcpIdleTimeoutConflictWithScheduler', 'errorMessage' => 'The TCP idle timeout of listener must be default value when the scheduling algorithm of server group is not 5TCH.', 'description' => '配置冲突,自定义配置了的TCP连接空闲超时时间,服务器组的调度算法需要使用五元组哈希。'],
+ ['errorCode' => 'OperationDenied.TcpIdleTimeoutNotConfigurable', 'errorMessage' => 'The TCP idle timeout of listener is configurable only when the scheduling algorithm of server group is 5TCH.', 'description' => '当服务器组调度算法为五元组哈希时,可以自定义配置TCP连接空闲超时时间。其他调度算法,无法修改。'],
+ ],
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.', 'description' => '指定的负载均衡资源不存在'],
+ ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的监听资源不存在'],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的服务器组资源不存在。'],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Gwlb::2024-04-15::GetListenerAttribute', 'callbackInterval' => 3000, 'maxCallbackTimes' => 100],
+ 'title' => '更新监听属性',
+ 'summary' => '更新负载均衡监听的属性。',
+ 'description' => '**UpdateListenerAttribute** 接口属于异步接口,即系统返回一个请求 ID,但该监听的配置尚未更新成功,系统后台的更新任务仍在进行。您可以调用 **GetListenerAttribute** 查询监听的配置的更新状态:'."\n"
+ ."\n"
+ .'- 当监听器处于 **Configuring** 状态时,表示监听的配置正在更新中。'."\n"
+ .'- 当监听器处于 **Running** 状态时,表示监听的配置更新成功。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateListenerAttribute'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:UpdateListenerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ],
+ ],
+ ],
],
- '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' => '查询监听详细信息',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7DBFC67C-A272-5952-8287-6C3EBE4E04D9\\"\\n}","type":"json"}]',
],
- 'GetListenerHealthStatus' => [
- 'summary' => '查询负载均衡实例监听的健康检查状态。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'UpdateLoadBalancerAttribute' => [
+ 'summary' => '更新负载均衡实例属性。',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
- 'operationType' => 'get',
+ 'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '221400',
- 'abilityTreeNodes' => [
- 'FEATUREslbL239O5',
- ],
+ 'abilityTreeCode' => '221916',
+ 'abilityTreeNodes' => ['FEATUREslbHRNRPI'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ListenerId',
+ 'name' => 'LoadBalancerId',
'in' => 'formData',
- 'schema' => [
- 'description' => '监听ID。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'lsn-7sixpvm5fc3v0b****',
- ],
+ 'schema' => ['description' => '网关型负载均衡实例的ID。', 'type' => 'string', 'required' => true, 'example' => 'gwlb-9njtjmqt7zfcqm****'],
],
[
- 'name' => 'NextToken',
+ 'name' => 'LoadBalancerName',
'in' => 'formData',
- 'schema' => [
- 'title' => '分页游标',
- 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
- .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
- .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '4f1d7cc9f51e18904e8a063603a6b0c3d03bc69f78734254e0b5e8707e68****',
- ],
+ 'schema' => ['description' => '网关型负载均衡实例名称。'."\n"
+ ."\n"
+ .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'testGwlbName'],
],
[
- 'name' => 'MaxResults',
+ 'name' => 'DryRun',
'in' => 'formData',
- 'schema' => [
- 'title' => '分页大小',
- 'description' => '分批次查询时每次显示的条目数。取值范围:1~1000,默认值为 20。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '1000',
- 'minimum' => '1',
- 'example' => '20',
- ],
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求。取值:'."\n"
+ .'- **true**:发送检查请求,不会更新实例属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
- 'name' => 'Skip',
+ 'name' => 'ClientToken',
'in' => 'formData',
- 'schema' => [
- 'description' => '分页查询时,跳过的条目数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
+ 'schema' => ['description' => '客户端Token,用于保证请求的幂等性。'."\n"
+ ."\n"
+ .'由客户端生成该参数值,要保证在不同请求间唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'],
],
[
- 'name' => 'Filter',
+ 'name' => 'TrafficMode',
'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'description' => '动态查询条件列表。一次最多添加20个动态查询条件。',
- 'type' => 'array',
- 'items' => [
- 'description' => '动态查询条件。',
- 'type' => 'object',
- 'properties' => [
- 'Name' => [
- 'description' => '动态查询条件名称,可选择一个或者多个名称进行查询。取值范围:'."\n"
- .'- **Status**:健康检查状态。'."\n"
- .'- **ReasonCode**:Status 为异常状态时的详细原因。'."\n"
- .'- **ServerId**:后端服务器ID。'."\n"
- .'- **ServerIp**:后端服务器IP地址。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Status',
- 'enum' => [
- 'Status',
- 'ReasonCode',
- 'ServerId',
- 'ServerIp',
- ],
- ],
- 'Values' => [
- 'description' => '动态查询条件的值列表。一次最多添加20个值。',
- 'type' => 'array',
- 'items' => [
- 'description' => '动态查询条件的值。取值范围参考返回参数中相应字段的取值。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Unhealthy',
- ],
- 'required' => false,
- 'maxItems' => 20,
- 'minItems' => 1,
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- 'maxItems' => 20,
- 'minItems' => 1,
- ],
+ 'schema' => ['description' => '流量模式。取值:'."\n"
+ ."\n"
+ .'- **LoadBalance**:负载均衡。'."\n"
+ .'- **ByPass**:绕行模式。', 'type' => 'string', 'required' => false, 'example' => 'LoadBalance'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
- 'description' => '请求的返回值。',
+ 'description' => '',
'type' => 'object',
'properties' => [
- 'ListenerHealthStatus' => [
- 'description' => '监听的服务器组健康检查状态列表。',
- 'type' => 'array',
- 'items' => [
- 'description' => '监听的服务器组健康检查状态结构。',
- 'type' => 'object',
- 'properties' => [
- 'ListenerId' => [
- 'description' => '监听ID。',
- 'type' => 'string',
- 'example' => 'lsn-sg8aha6pzjavvo****',
- ],
- 'ServerGroupInfos' => [
- 'description' => '服务器组信息列表。',
- 'type' => 'array',
- 'items' => [
- 'description' => '服务器组信息。',
- 'type' => 'object',
- 'properties' => [
- 'HealthCheckEnabled' => [
- 'description' => '是否开启健康检查。取值:'."\n"
- .'- **true**:开启。'."\n"
- .'- **false**:关闭。',
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'ServerGroupId' => [
- 'description' => '服务器组 ID。',
- 'type' => 'string',
- 'example' => 'sgp-0vdsbyszro3nr6****',
- ],
- 'Servers' => [
- 'description' => '后端服务器列表。',
- 'type' => 'array',
- 'items' => [
- 'description' => '后端服务器。',
- 'type' => 'object',
- 'properties' => [
- 'Port' => [
- 'title' => '服务器端口',
- 'description' => '后端服务器端口。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '6081',
- ],
- 'Reason' => [
- 'description' => '**Status**为异常状态时的详细原因。',
- 'type' => 'object',
- 'properties' => [
- 'ReasonCode' => [
- 'description' => '**Status**为异常状态时的详细原因,取值:'."\n"
- ."\n"
- .'- **CONNECT_TIMEOUT**:负载均衡健康检查时向后端服务器建立连接超时。'."\n"
- .'- **CONNECT_FAIL**:负载均衡健康检查时向后端服务器建立连接失败。'."\n"
- .'- **RECV_TIMEOUT**:负载均衡健康检查时从后端服务器接收响应超时。'."\n"
- .'- **CONNECT_INTERRUPT**:负载均衡健康检查与后端服务器连接中断。'."\n"
- .'- **HTTP_CODE_NOT_MATCH**:负载均衡健康 HTTP 检查时从后端服务器接收的响应码与预期配置返回码不一致。'."\n"
- .'- **HTTP_INVALID_HEADER**:负载均衡健康 HTTP 检查时从后端服务器接收响应格式错误。',
- 'type' => 'string',
- 'example' => 'CONNECT_TIMEOUT',
- ],
- ],
- ],
- 'ServerId' => [
- 'title' => '服务器id',
- 'description' => '后端服务器ID。',
- 'type' => 'string',
- 'example' => 'i-2ze4rnh8yj9kif3z****',
- ],
- 'ServerIp' => [
- 'title' => '服务器ip',
- 'description' => '后端服务器IP。',
- 'type' => 'string',
- 'example' => '192.168.0.XXX',
- ],
- 'Status' => [
- 'description' => '后端服务器健康检查状态。取值:'."\n"
- ."\n"
- .'- **Initial**:初始化中,表示负载均衡实例配置了健康检查,但查不到数据。'."\n"
- .'- **Unhealthy**:异常,表示连续上报不健康的状态。'."\n"
- .'- **Unused**:未使用;'."\n"
- .'- **Unavailable**:未开启,表示未开启健康检查;'."\n"
- .'- **Healthy**:健康检查正常;',
- 'type' => 'string',
- 'example' => 'Healthy',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- 'MaxResults' => [
- 'description' => '分批次查询时每次显示的条目数。取值范围:1~1000,默认值为 20。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
- ],
- 'NextToken' => [
- 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
- .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
- .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。',
- 'type' => 'string',
- 'example' => 'U12WEI6Ro2ol3wA54rBNSwdC5+lYy6q5SjIQEvc1wz5mjZxV+YjsHRdXV8XauY1BpOQIvwX63E0en54H3D****',
- ],
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '0ED4F222-36A0-5470-8A9A-AAB4E96BAC1A',
- ],
- 'TotalCount' => [
- 'description' => '本次请求条件下的数据总量。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '31',
- ],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B956C629-0E8C-5EFF-BAC1-B0E3A8C5CBDD'],
],
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'IllegalParam.FilterValue',
- 'errorMessage' => 'The param of %s is illegal.',
- ],
- [
- 'errorCode' => 'IllegalParam.FilterName',
- 'errorMessage' => 'The param of %s is illegal.',
- ],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => '资源%s业务状态%s不支持当前操作'],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.Listener',
- 'errorMessage' => 'The specified resource of %s is not found.',
- ],
+ ],
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Gwlb::2024-04-15::GetLoadBalancerAttribute', 'callbackInterval' => 3000, 'maxCallbackTimes' => 100],
+ 'title' => '更新负载均衡实例属性',
+ 'description' => '- UpdateLoadBalancerAttribute 属于异步接口,即系统返回一个请求 ID,但该实例属性尚未修改成功,系统后台的变更任务仍在进行。您可以调用 GetLoadBalancerAttribute 查询网关型负载均衡实例的更新状态:'."\n"
+ .' - 当网关型负载均衡实例处于 Configuring 状态时,表示网关型负载均衡实例正在更新中。'."\n"
+ .' - 当网关型负载均衡实例处于 Active 状态时,表示网关型负载均衡实例更新成功。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerAttribute'],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:UpdateLoadBalancerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ],
+ ],
+ ],
],
- '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' => '查询监听健康检查状态',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B956C629-0E8C-5EFF-BAC1-B0E3A8C5CBDD\\"\\n}","type":"json"}]',
],
- 'TagResources' => [
- 'summary' => '为指定的资源列表创建并绑定标签。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'UpdateLoadBalancerZones' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'write',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '225141',
- 'abilityTreeNodes' => [
- 'FEATUREslbRXTOWD',
- ],
+ 'abilityTreeCode' => '221912',
+ 'abilityTreeNodes' => ['FEATUREslb23BWZ4'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ResourceType',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '资源类型,取值:'."\n"
- ."\n"
- .'- **loadbalancer**:网关型负载均衡实例。'."\n"
- .'- **listener**:监听。'."\n"
- .'- **servergroup**:服务器组。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'loadbalancer',
- 'enum' => [],
- ],
- ],
- [
- 'name' => 'ResourceId',
+ 'name' => 'LoadBalancerId',
'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'description' => '资源 ID列表。一次调用最多支持添加 50 个资源 ID。',
- 'type' => 'array',
- 'items' => [
- 'description' => '资源ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'gwlb-nrnrxwd15en27r****',
- ],
- 'required' => true,
- 'maxItems' => 50,
- 'minItems' => 1,
- ],
+ 'schema' => ['description' => '网关型负载均衡实例的ID。', 'type' => 'string', 'required' => true, 'example' => 'gwlb-9njtjmqt7zfcqm****'],
],
[
- 'name' => 'Tag',
+ 'name' => 'ZoneMappings',
'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'description' => '标签列表。一次调用最多支持 20 个标签。',
+ 'description' => '可用区及交换机映射列表。至少需要添加一个可用区,最多支持添加20个可用区。若当前地域支持2个及以上的可用区,建议添加2个及以上可用区。',
'type' => 'array',
'items' => [
- 'description' => '标签。',
+ 'description' => '可用区及交换机映射对象。',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => '标签键。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'testKey',
- ],
- 'Value' => [
- 'description' => '标签值。最多支持256个字符,不能包含`http://`或`https://`。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'testValue',
- ],
+ 'VSwitchId' => ['description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。', 'type' => 'string', 'required' => true, 'example' => 'vsw-bp1n75pbs77v5q6p3****'],
+ 'ZoneId' => ['description' => '可用区ID,通过调用网关型负载均衡DescribeZones接口获得。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-h'],
],
- 'required' => true,
+ 'required' => false,
],
'required' => true,
'maxItems' => 20,
- 'minItems' => 1,
],
],
[
'name' => 'DryRun',
'in' => 'formData',
- 'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求。取值:'."\n"
- .'- **true**:发送检查请求,不会添加标签。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求。取值:'."\n"
+ .'- **true**:发送检查请求,不会更新实例可用区。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
'name' => 'ClientToken',
'in' => 'formData',
- 'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
+ ."\n"
+ .'由客户端生成该参数值,要保证在不同请求间唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
- 'description' => '请求的返回值。',
+ 'description' => '',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '54F6E60A-1777-5C17-A6A9-BCC1A7FE945B',
- ],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'ED8905C2-A4F6-5E43-87B7-6A5DC8757146'],
],
],
],
],
'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.',
+ ['errorCode' => 'OperationDenied.VSwitchChangeNotSupport', 'errorMessage' => 'The operation is not allowed because of VSwitchChangeNotSupport.', 'description' => '修改交换机vSwitch操作不支持'],
+ ['errorCode' => 'DuplicatedParam.VSwitchId', 'errorMessage' => 'The param of VSwitchId is duplicated.', 'description' => '列表中的vSwitchId参数重复'],
+ ['errorCode' => 'DuplicatedParam.ZoneId', 'errorMessage' => 'The param of ZoneId is duplicated.', 'description' => '列表中的ZoneId参数重复'],
+ ['errorCode' => 'IllegalParamSize.ZoneMappings', 'errorMessage' => 'The param size of ZoneMappings is illegal.', 'description' => 'ZoneMappings列表数量不合法'],
+ ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => '资源%s业务状态%s不支持当前操作'],
+ ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
+ ['errorCode' => 'Mismatch.ZoneIdAndVSwitchId', 'errorMessage' => 'The ZoneId and VSwitchId are mismatched.', 'description' => '参数ZoneId和vSwitchId的值不匹配'],
+ ['errorCode' => 'MissingParam.LoadBalancerId', 'errorMessage' => 'The param of LoadBalancerId is missing.', 'description' => '负载均衡ID参数缺失'],
+ ['errorCode' => 'OperationDenied.VSwitchNotSupportIpv6', 'errorMessage' => 'The operation is not allowed because of VSwitchNotSupportIpv6.', 'description' => '交换机vSwitch没有开启IPv6,操作不支持'],
+ ['errorCode' => 'ResourceAlreadyAssociated.GwlbeAssociated', 'errorMessage' => 'The specified resource of %s is already associated.', 'description' => '指定资源%s已被关联'],
+ ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource of VSwitchIp is not enough.', 'description' => 'vSwitch IP资源不足'],
+ ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''],
+ ],
+ ],
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Gwlb::2024-04-15::GetLoadBalancerAttribute', 'callbackInterval' => 3000, 'maxCallbackTimes' => 100],
+ 'title' => '更新负载均衡可用区',
+ 'summary' => '更新负载均衡实例可用区。',
+ 'description' => '**请确保在使用该接口前,已充分了解网关型负载均衡产品的收费方式和[价格](~~2806160~~)。**'."\n"
+ ."\n"
+ .'**UpdateLoadBalancerZones**属于异步接口,即系统返回一个请求ID,但该实例可用区及可用区属性尚未修改成功,系统后台的变更任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~2853555~~)查询网关型负载均衡实例的更新状态:'."\n"
+ ."\n"
+ .'- 当网关型负载均衡实例处于**Configuring**状态时,表示网关型负载均衡实例正在更新中。'."\n"
+ .'- 当网关型负载均衡实例处于**Active**状态时,表示网关型负载均衡实例更新成功。'."\n"
+ ."\n"
+ .'><notice>每次调用该接口时,请确保您传入该网关型负载均衡实例的所有可用区参数,包括当前和新增的可用区。如您未传入当前的可用区参数,表示需要将当前可用区删除。您可以通过 GetLoadBalancerAttribute 接口查询该实例的当前可用区。></notice>',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerZones'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:UpdateLoadBalancerZones',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'],
+ ],
],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54F6E60A-1777-5C17-A6A9-BCC1A7FE945B\\"\\n}","type":"json"}]',
- 'title' => '添加资源标签',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"ED8905C2-A4F6-5E43-87B7-6A5DC8757146\\"\\n}","type":"json"}]',
],
- 'UntagResources' => [
- 'summary' => '为指定的资源列表解绑标签。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'UpdateServerGroupAttribute' => [
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
- 'abilityTreeCode' => '225142',
- 'abilityTreeNodes' => [
- 'FEATUREslbRXTOWD',
- ],
+ 'abilityTreeCode' => '225039',
+ 'abilityTreeNodes' => ['FEATUREslb3GOGI0'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
- 'name' => 'ResourceType',
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => ['title' => '服务器组ID', 'description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****'],
+ ],
+ [
+ 'name' => 'ServerGroupName',
+ 'in' => 'formData',
+ 'schema' => ['title' => '服务器组名称', 'description' => '服务器组名称。'."\n"
+ ."\n"
+ .'长度为2~128个字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'testServerGroupName'],
+ ],
+ [
+ 'name' => 'Scheduler',
'in' => 'formData',
'schema' => [
- 'description' => '资源类型,取值:'."\n"
+ 'title' => '会话保持类型',
+ 'description' => '调度算法。取值:'."\n"
."\n"
- .'- **loadbalancer**:网关型负载均衡实例。'."\n"
- .'- **listener**:监听。'."\n"
- .'- **servergroup**:服务器组。',
+ .'- **5TCH**:五元组哈希,基于五元组(源IP、目的IP、源端口、目的端口和协议)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n"
+ ."\n"
+ .'- **3TCH**:三元组哈希,基于三元组(源IP、目的IP和协议)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n"
+ ."\n"
+ .'- **2TCH**:二元组哈希,基于二元组(源IP和目的IP)的一致性哈希,相同的流会调度到相同的后端服务器。',
'type' => 'string',
- 'required' => true,
- 'example' => 'loadbalancer',
- 'enum' => [],
+ 'required' => false,
+ 'example' => '5TCH',
+ 'enum' => ['5TCH', '3TCH', '2TCH'],
],
],
[
- 'name' => 'ResourceId',
+ 'name' => 'ServerFailoverMode',
'in' => 'formData',
- 'style' => 'flat',
'schema' => [
- 'description' => '资源 ID列表。一次调用最多支持添加 50 个资源 ID。',
- 'type' => 'array',
- 'items' => [
- 'description' => '资源ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'gwlb-nrnrxwd15en27r****',
- ],
- 'required' => true,
- 'maxItems' => 50,
- 'minItems' => 1,
+ 'description' => '服务器异常时,存量流量的处理方式。取值:'."\n"
+ ."\n"
+ .'- **NoRebalance**:不重新平衡现有流量。'."\n"
+ .'- **Rebalance**:重新平衡现有流量。',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'NoRebalance',
+ 'enum' => ['NoRebalance', 'Rebalance'],
],
],
[
- 'name' => 'TagKey',
+ 'name' => 'ConnectionDrainConfig',
'in' => 'formData',
'style' => 'flat',
'schema' => [
- 'description' => '要删除标签的标签键列表。一次调用最多支持删除 20 个标签',
- 'type' => 'array',
- 'items' => [
- 'description' => '要删除标签的标签键。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testKey',
+ 'title' => '连接优雅中断配置',
+ 'description' => '连接优雅中断相关配置。',
+ 'type' => 'object',
+ 'properties' => [
+ 'ConnectionDrainEnabled' => ['title' => '是否开启连接优雅中断', 'description' => '是否开启连接优雅中断。取值:'."\n"
+ ."\n"
+ .'- **true**:开启。'."\n"
+ ."\n"
+ .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
+ 'ConnectionDrainTimeout' => ['title' => '连接优雅中断超时时间', 'description' => '连接优雅中断超时时间。'."\n"
+ ."\n"
+ .'单位:秒。'."\n"
+ ."\n"
+ .'取值范围:**1**~**3600**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '300'],
],
'required' => false,
- 'maxItems' => 20,
- 'minItems' => 1,
],
],
[
- 'name' => 'All',
+ 'name' => 'HealthCheckConfig',
'in' => 'formData',
+ 'style' => 'flat',
'schema' => [
- 'description' => '是否解绑资源的所有标签。当填写了TagKey参数时,本参数将被忽略。取值:'."\n"
- ."\n"
- .'- **true**:解绑资源的所有标签。'."\n"
- .'- **false**(默认值):不解绑资源的所有标签。',
- 'type' => 'boolean',
+ 'title' => '健康检查配置',
+ 'description' => '健康检查相关配置。',
+ 'type' => 'object',
+ 'properties' => [
+ 'HealthCheckConnectPort' => ['title' => '健康检查使用的端口', 'description' => '健康检查使用的后端服务器的端口。'."\n"
+ ."\n"
+ .'取值范围: **1**~**65535**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80'],
+ 'HealthCheckConnectTimeout' => ['title' => '健康检查响应的最大超时时间', 'description' => '健康检查响应的最大超时时间。'."\n"
+ ."\n"
+ .'单位:秒。'."\n"
+ ."\n"
+ .'取值范围:**1**~**300**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'],
+ 'HealthCheckDomain' => ['title' => '健康检查的域名', 'description' => '用于健康检查的域名。取值:'."\n"
+ ."\n"
+ .'- **$SERVER_IP**:使用后端服务器内网IP。'."\n"
+ ."\n"
+ .'- **domain**:指定特定域名。长度限制1~80个字符,只能使用大小写字母、数字、短划线(-)、半角句号(.)。'."\n"
+ ."\n"
+ .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => '$SERVER_IP'],
+ 'HealthCheckEnabled' => ['title' => '是否开启健康检查', 'description' => '是否开启健康检查,取值:'."\n"
+ ."\n"
+ .'- **true**:开启。'."\n"
+ ."\n"
+ .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
+ 'HealthCheckHttpCode' => [
+ 'title' => '状态码,多个状态码用逗号分隔',
+ 'description' => '健康状态返回码列表。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n"
+ .'取值:'."\n"
+ .'- **http\\_2xx**:返回HttpCode为2xx视为健康状态。'."\n"
+ .'- **http\\_3xx**:返回HttpCode为3xx视为健康状态。'."\n"
+ .'- **http\\_4xx**:返回HttpCode为4xx视为健康状态。'."\n"
+ .'- **http\\_5xx**:返回HttpCode为5xx视为健康状态。'."\n"
+ ."\n"
+ .'默认值:**http\\_2xx** 。'."\n"
+ ."\n"
+ .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'http_2xx',
+ 'enum' => ['http_2xx', 'http_3xx', 'http_4xx', 'http_5xx'],
+ ],
+ 'required' => false,
+ ],
+ 'HealthCheckInterval' => ['title' => '健康检查时间间隔', 'description' => '健康检查的时间间隔。'."\n"
+ ."\n"
+ .'单位:秒。'."\n"
+ ."\n"
+ .'取值范围:**1**~**50**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'],
+ 'HealthCheckPath' => ['title' => '健康检查的path', 'description' => '健康检查路径。'."\n"
+ ."\n"
+ .'长度为1~80个字符,只能使用大小写英文字母、数字、字符`-/.%?#&`。 必须以正斜线(/)开头。'."\n"
+ .'> 仅**HealthCheckProtocol**为**HTTP**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => '/test/index.html'],
+ 'HealthCheckProtocol' => [
+ 'title' => '健康检查协议类型',
+ 'description' => '健康检查协议,取值:'."\n"
+ ."\n"
+ .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n"
+ ."\n"
+ .'- **HTTP**:通过发送GET请求模拟浏览器的访问行为来检查服务器应用是否健康。',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TCP',
+ 'enum' => ['TCP', 'HTTP'],
+ ],
+ 'HealthyThreshold' => ['title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success', 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n"
+ ."\n"
+ .'取值范围:**2**~**10**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'],
+ 'UnhealthyThreshold' => ['title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail', 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n"
+ ."\n"
+ .'取值范围:**2**~**10**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'],
+ 'HealthCheckReq' => ['type' => 'string'],
+ 'HealthCheckExp' => ['type' => 'string'],
+ ],
'required' => false,
- 'example' => 'true',
],
],
[
'name' => 'DryRun',
'in' => 'formData',
- 'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求。取值:'."\n"
- .'- **true**:发送检查请求,不会删除标签。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['title' => 'dryRun标记', 'description' => '是否只预检此次请求。取值:'."\n"
+ .'- **true**:发送检查请求,不会更新服务器组信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
+ .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
'name' => 'ClientToken',
'in' => 'formData',
- 'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
- ],
+ 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
+ ."\n"
+ .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
+ ."\n"
+ .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
- 'description' => '请求的返回值。',
+ 'description' => '返回数据结构体。',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '3DC0064C-C09E-5C99-8FD4-9CDB2DA7FA21',
- ],
+ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'."\n"],
],
],
],
],
'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.',
- ],
+ ['errorCode' => 'IllegalParam.HealthCheckProtocol', 'errorMessage' => 'The param of %s is illegal.', 'description' => '健康检查协议非法,请检查输入参数。'],
+ ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s当前状态%s不支持操作'],
+ ['errorCode' => 'OperationDenied.SchedulerNotConfigurable', 'errorMessage' => 'The scheduling algorithm of server group is configurable only when TCP idle timeout of listener is default value.', 'description' => 'TCP连接空闲超时时间为非默认值时,服务器组调度算法仅支持五元组哈希。'],
],
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.',
- ],
+ ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '指定的服务器组资源不存在。'],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3DC0064C-C09E-5C99-8FD4-9CDB2DA7FA21\\"\\n}","type":"json"}]',
- 'title' => '删除资源标签',
- ],
- 'ListTagResources' => [
- 'summary' => '查询指定资源绑定的标签。',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
+ 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Gwlb::2024-04-15::ListServerGroups', 'callbackInterval' => 3000, 'maxCallbackTimes' => 100],
+ 'title' => '更新服务器组属性',
+ 'summary' => '更新负载均衡服务器组属性。',
+ 'description' => '**UpdateServerGroupAttribute**接口属于异步接口,即系统返回一个请求ID,但该服务器组的配置尚未更新成功,系统后台的更新任务仍在进行。您可以调用 ListServerGroups 查询服务器组的配置的更新状态:'."\n"
+ .'- 当服务器组的配置处于**Configuring**状态时,表示服务器组的配置正在更新中。'."\n"
+ .'- 当服务器组的配置处于**Available**状态时,表示服务器组的配置更新成功。',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateServerGroupAttribute'],
+ ],
],
- 'security' => [
+ 'ramActions' => [
[
- 'AK' => [],
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:UpdateServerGroupAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
],
],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeCode' => '225143',
- 'abilityTreeNodes' => [
- 'FEATUREslbRXTOWD',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\\\n\\"\\n}","type":"json"}]',
+ ],
+ ],
+ 'endpoints' => [
+ ['regionId' => 'cn-shenzhen', 'regionName' => '华南1(深圳)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'gwlb.cn-shenzhen.aliyuncs.com', 'endpoint' => 'gwlb.cn-shenzhen.aliyuncs.com', 'vpc' => 'gwlb-vpc.cn-shenzhen.aliyuncs.com'],
+ ['regionId' => 'cn-wulanchabu', 'regionName' => '华北6(乌兰察布)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'gwlb.cn-wulanchabu.aliyuncs.com', 'endpoint' => 'gwlb.cn-wulanchabu.aliyuncs.com', 'vpc' => 'gwlb-vpc.cn-wulanchabu.aliyuncs.com'],
+ ['regionId' => 'cn-beijing', 'regionName' => '华北2(北京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'gwlb.cn-beijing.aliyuncs.com', 'endpoint' => 'gwlb.cn-beijing.aliyuncs.com', 'vpc' => 'gwlb-vpc.cn-beijing.aliyuncs.com'],
+ ['regionId' => 'ap-northeast-1', 'regionName' => '日本(东京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'gwlb.ap-northeast-1.aliyuncs.com', 'endpoint' => 'gwlb.ap-northeast-1.aliyuncs.com', 'vpc' => 'gwlb-vpc.ap-northeast-1.aliyuncs.com'],
+ ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'gwlb.cn-shanghai.aliyuncs.com', 'endpoint' => 'gwlb.cn-shanghai.aliyuncs.com', 'vpc' => 'gwlb-vpc.cn-shanghai.aliyuncs.com'],
+ ['regionId' => 'cn-hongkong', 'regionName' => '中国香港', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'gwlb.cn-hongkong.aliyuncs.com', 'endpoint' => 'gwlb.cn-hongkong.aliyuncs.com', 'vpc' => 'gwlb-vpc.cn-hongkong.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'gwlb.ap-southeast-1.aliyuncs.com', 'endpoint' => 'gwlb.ap-southeast-1.aliyuncs.com', 'vpc' => 'gwlb-vpc.ap-southeast-1.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-3', 'regionName' => '马来西亚(吉隆坡)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'gwlb.ap-southeast-3.aliyuncs.com', 'endpoint' => 'gwlb.ap-southeast-3.aliyuncs.com', 'vpc' => 'gwlb-vpc.ap-southeast-3.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-7', 'regionName' => '泰国(曼谷)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'gwlb.ap-southeast-7.aliyuncs.com', 'endpoint' => 'gwlb.ap-southeast-7.aliyuncs.com', 'vpc' => 'gwlb-vpc.ap-southeast-7.aliyuncs.com'],
+ ['regionId' => 'cn-hangzhou', 'regionName' => '华东1(杭州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'gwlb.cn-hangzhou.aliyuncs.com', 'endpoint' => 'gwlb.cn-hangzhou.aliyuncs.com', 'vpc' => 'gwlb-vpc.cn-hangzhou.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-8', 'regionName' => '马来西亚(柔佛州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'gwlb.ap-southeast-8.aliyuncs.com', 'endpoint' => 'gwlb.ap-southeast-8.aliyuncs.com', 'vpc' => 'gwlb-vpc.ap-southeast-8.aliyuncs.com'],
+ ['regionId' => 'me-east-1', 'regionName' => '阿联酋(迪拜)', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'gwlb.me-east-1.aliyuncs.com', 'endpoint' => 'gwlb.me-east-1.aliyuncs.com', 'vpc' => 'gwlb-vpc.me-east-1.aliyuncs.com'],
+ ['regionId' => 'me-central-1', 'regionName' => '沙特(利雅得)', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'gwlb.me-central-1.aliyuncs.com', 'endpoint' => 'gwlb.me-central-1.aliyuncs.com', 'vpc' => 'gwlb-vpc.me-central-1.aliyuncs.com'],
+ ],
+ 'errorCodes' => [
+ ['code' => 'Conflict.Server', 'message' => 'The %s [%s] is conflict.', 'http_code' => 400, 'description' => '%s冲突,已经存在同配置的%s。'],
+ ['code' => 'DryRunOperation', 'message' => 'Request validation has been passed with DryRun flag set.', 'http_code' => 400, 'description' => 'DryRun请求校验通过'],
+ ['code' => 'DuplicatedParam.ResourceId', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => '参数%s重复'],
+ ['code' => 'DuplicatedParam.Server', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => '参数中存在重复的server。'],
+ ['code' => 'DuplicatedParam.TagKey', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => '标签键参数重复'],
+ ['code' => 'DuplicatedParam.VSwitchId', 'message' => 'The param of VSwitchId is duplicated.', 'http_code' => 400, 'description' => '列表中的vSwitchId参数重复'],
+ ['code' => 'DuplicatedParam.ZoneId', 'message' => 'The param of ZoneId is duplicated.', 'http_code' => 400, 'description' => '列表中的ZoneId参数重复'],
+ ['code' => 'ExclusiveParam.TagKeyAndAll', 'message' => 'The param of %s and %s are mutually exclusive.', 'http_code' => 400, 'description' => '标签键参数值与是否解绑资源的所有标签选项的参数值互斥'],
+ ['code' => 'Forbidden.NoPermission', 'message' => 'Authentication is failed for %s.', 'http_code' => 403, 'description' => '资源%s鉴权失败'],
+ ['code' => 'IllegalParam.%s', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => '参数%s不合法'],
+ ['code' => 'IllegalParam.FilterName', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => '动态查询条件名称非法'],
+ ['code' => 'IllegalParam.FilterValue', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => '动态查询条件的值非法'],
+ ['code' => 'IllegalParam.HealthCheckProtocol', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => '健康检查协议非法,请检查输入参数。'],
+ ['code' => 'IllegalParam.IP', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => '参数IP非法。请检查参数IP的输入值。'],
+ ['code' => 'IllegalParam.ServerIp', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => '参数ServerIp非法,请检查输入参数。'],
+ ['code' => 'IllegalParam.TagValue', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => '标签值参数不合法'],
+ ['code' => 'IllegalParamSize.ZoneMappings', 'message' => 'The param size of ZoneMappings is illegal.', 'http_code' => 400, 'description' => 'ZoneMappings列表数量不合法'],
+ ['code' => 'IncorrectBusinessStatus.LoadBalancer', 'message' => 'The business status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s业务状态%s不支持当前操作'],
+ ['code' => 'IncorrectStatus.BackendServer', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '服务器的状态无法进行当前操作,请检查服务器当前是否处于其他操作下。'],
+ ['code' => 'IncorrectStatus.Eni', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s当前状态%s不支持操作'],
+ ['code' => 'IncorrectStatus.Listener', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s当前状态%s不支持操作。'],
+ ['code' => 'IncorrectStatus.LoadBalancer', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s当前状态%s不支持操作'],
+ ['code' => 'IncorrectStatus.ServerGroup', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s当前状态%s不支持操作'],
+ ['code' => 'Mismatch.IP', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => '输入的IP类型服务器的ID和IP不匹配。'],
+ ['code' => 'Mismatch.ServerType', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => 'ServerType不匹配。'],
+ ['code' => 'Mismatch.VpcId', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => '两个资源的VPC ID不匹配'],
+ ['code' => 'Mismatch.ZoneIdAndVSwitchId', 'message' => 'The ZoneId and VSwitchId are mismatched.', 'http_code' => 400, 'description' => '参数ZoneId和vSwitchId的值不匹配'],
+ ['code' => 'MissingParam.%s', 'message' => 'The param of %s is missing.', 'http_code' => 400, 'description' => '参数%s缺失'],
+ ['code' => 'MissingParam.LoadBalancerId', 'message' => 'The param of LoadBalancerId is missing.', 'http_code' => 400, 'description' => '负载均衡ID参数缺失'],
+ ['code' => 'MissingParam.TagKey', 'message' => 'The param of TagKey is missing.', 'http_code' => 400, 'description' => '标签键参数缺失'],
+ ['code' => 'MissingParam.TagsOrResourceIds', 'message' => 'The param of TagsOrResourceIds is missing.', 'http_code' => 400, 'description' => '标签列表与资源ID列表全部未设置或为空列表'],
+ ['code' => 'MissingParam.TagValue', 'message' => 'The param of TagValue is missing.', 'http_code' => 400, 'description' => '标签值参数缺失'],
+ ['code' => 'OperationDenied.NotExist.ResourceGroup', 'message' => 'The operation is not allowed because of NotExist.ResourceGroup.', 'http_code' => 400, 'description' => '操作被拒绝,资源组不存在'],
+ ['code' => 'OperationDenied.SchedulerNotConfigurable', 'message' => 'The scheduling algorithm of server group is configurable only when TCP idle timeout of listener is default value.', 'http_code' => 400, 'description' => 'TCP连接空闲超时时间为非默认值时,服务器组调度算法仅支持五元组哈希。'],
+ ['code' => 'OperationDenied.StatusCheckFail.ResourceGroup', 'message' => 'The operation is not allowed because of StatusCheckFail.ResourceGroup.', 'http_code' => 400, 'description' => '操作被拒绝,资源组状态异常'],
+ ['code' => 'OperationDenied.TcpIdleTimeoutConflictWithScheduler', 'message' => 'The TCP idle timeout of listener must be default value when the scheduling algorithm of server group is not 5TCH.', 'http_code' => 400, 'description' => '配置冲突,自定义配置了的TCP连接空闲超时时间,服务器组的调度算法需要使用五元组哈希。'],
+ ['code' => 'OperationDenied.TcpIdleTimeoutNotConfigurable', 'message' => 'The TCP idle timeout of listener is configurable only when the scheduling algorithm of server group is 5TCH.', 'http_code' => 400, 'description' => '当服务器组调度算法为五元组哈希时,可以自定义配置TCP连接空闲超时时间。其他调度算法,无法修改。'],
+ ['code' => 'OperationDenied.TooManyListeners', 'message' => 'The operation is not allowed because of TooManyListener.', 'http_code' => 400, 'description' => '负载均衡实例下的监听数量超过限制,操作不支持'],
+ ['code' => 'OperationDenied.VSwitchChangeNotSupport', 'message' => 'The operation is not allowed because of VSwitchChangeNotSupport.', 'http_code' => 400, 'description' => '修改交换机vSwitch操作不支持'],
+ ['code' => 'OperationDenied.VSwitchNotSupportIpv6', 'message' => 'The operation is not allowed because of VSwitchNotSupportIpv6.', 'http_code' => 400, 'description' => '交换机vSwitch没有开启IPv6,操作不支持'],
+ ['code' => 'QuotaExceeded.LoadBalancersNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额gwlb_quota_loadbalancers_num已超额度限制。'],
+ ['code' => 'QuotaExceeded.ServerGroupAzServersNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额gwlb_quota_servergroup_az_servers_num已超额度限制。'],
+ ['code' => 'QuotaExceeded.ServerGroupServersNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额gwlb_quota_servergroup_servers_num已超额度限制。'],
+ ['code' => 'QuotaExceeded.ServerGroupsNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额gwlb_quota_servergroups_num已超额度限制。'],
+ ['code' => 'ResourceAlreadyAssociated.GwlbeAssociated', 'message' => 'The specified resource of %s is already associated.', 'http_code' => 400, 'description' => '指定资源%s已被关联'],
+ ['code' => 'ResourceInUse.Eni', 'message' => 'The specified resource of %s is in use.', 'http_code' => 400, 'description' => '传入的eni不能是网关型负载均衡实例使用的eni,请检查参数。'],
+ ['code' => 'ResourceInUse.IP', 'message' => 'The specified resource of %s is in use.', 'http_code' => 400, 'description' => '指定的IP地址已被使用'],
+ ['code' => 'ResourceInUse.ServerGroup', 'message' => 'The specified resource of %s is in use.', 'http_code' => 400, 'description' => '指定的服务器组资源正在使用中,请稍后重试。'],
+ ['code' => 'ResourceNotEnough.VSwitchIp', 'message' => 'The specified resource of VSwitchIp is not enough.', 'http_code' => 400, 'description' => 'vSwitch IP资源不足'],
+ ['code' => 'ResourceNotFound.BackendServer', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '指定的后端服务器资源不存在。'],
+ ['code' => 'ResourceNotFound.Eci', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '指定的弹性容器实例资源不存在。'],
+ ['code' => 'ResourceNotFound.Ecs', 'message' => 'The specified resource of %s is in use.', 'http_code' => 404, 'description' => '指定的云服务器资源不存在。'],
+ ['code' => 'ResourceNotFound.Ecs', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '指定的云服务器资源不存在。'],
+ ['code' => 'ResourceNotFound.Ecs', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '指定的云服务器资源不存在。'],
+ ['code' => 'ResourceNotFound.Eni', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '指定的弹性网卡资源不存在。'],
+ ['code' => 'ResourceNotFound.Listener', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '指定的监听资源不存在'],
+ ['code' => 'ResourceNotFound.LoadBalancer', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '指定的负载均衡资源不存在'],
+ ['code' => 'ResourceNotFound.ServerGroup', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '指定的服务器组资源不存在。'],
+ ['code' => 'ResourceNotFound.Vpc', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '指定的专有网络资源不存在。'],
+ ['code' => 'ResourceQuotaExceeded.TagNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '资源绑定的标签数量超限'],
+ ['code' => 'UnauthorizedRegion', 'message' => 'The specified region of %s is not authorized.', 'http_code' => 400, 'description' => '指定地域%s没有授权'],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetLoadBalancerAttribute'],
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListTagResources'],
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetListenerAttribute'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UntagResources'],
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListServerGroupServers'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerZones'],
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListLoadBalancers'],
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListServerGroups'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'MoveResourceGroup'],
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetListenerHealthStatus'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateListenerAttribute'],
+ ['threshold' => '100', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateLoadBalancer'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerAttribute'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateServerGroupAttribute'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveServersFromServerGroup'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateServerGroup'],
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeRegions'],
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeZones'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteServerGroup'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddServersToServerGroup'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteLoadBalancer'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateListener'],
+ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListListeners'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TagResources'],
+ ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteListener'],
+ ],
+ ],
+ 'ram' => [
+ 'productCode' => 'GWLB',
+ 'productName' => '负载均衡',
+ 'ramCodes' => ['gwlb'],
+ 'ramLevel' => '资源级',
+ 'ramConditions' => [],
+ 'ramActions' => [
+ [
+ 'apiName' => 'RemoveServersFromServerGroup',
+ 'description' => '服务器组中移除后端服务器',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'gwlb:RemoveServersFromServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#InstanceId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:eni/{#ServerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:eci:{#regionId}:{#accountId}:containergroup/{#ServerId}'],
+ ],
],
- 'autoTest' => true,
- 'tenantRelevance' => 'tenant',
],
- 'parameters' => [
- [
- 'name' => 'ResourceType',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '资源类型,取值:'."\n"
- ."\n"
- .'- **loadbalancer**:网关型负载均衡实例。'."\n"
- .'- **listener**:监听。'."\n"
- .'- **servergroup**:服务器组。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'loadbalancer',
- 'enum' => [],
+ [
+ 'apiName' => 'UpdateLoadBalancerAttribute',
+ 'description' => '更新负载均衡实例属性',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:UpdateLoadBalancerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
],
],
- [
- 'name' => 'ResourceId',
- 'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'description' => '资源 ID列表。一次调用最多支持添加 50 个资源 ID。',
- 'type' => 'array',
- 'items' => [
- 'description' => '资源ID。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'gwlb-nrnrxwd15en27r****',
- ],
- 'required' => false,
- 'maxItems' => 50,
- 'minItems' => 1,
+ ],
+ [
+ 'apiName' => 'AddServersToServerGroup',
+ 'description' => '服务器组中添加后端服务器',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'gwlb:AddServersToServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#InstanceId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:eni/{#ServerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:eci:{#regionId}:{#accountId}:containergroup/{#ServerId}'],
],
],
- [
- 'name' => 'Tag',
- 'in' => 'formData',
- 'style' => 'flat',
- 'schema' => [
- 'description' => '标签列表。一次调用最多支持 20 个标签。',
- 'type' => 'array',
- 'items' => [
- 'description' => '标签。',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => '标签键。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testKey',
- ],
- 'Value' => [
- 'description' => '标签值。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'testValue',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- 'maxItems' => 20,
- 'minItems' => 1,
+ ],
+ [
+ 'apiName' => 'GetLoadBalancerAttribute',
+ 'description' => '查询负载均衡实例详细信息',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'gwlb:GetLoadBalancerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
],
],
- [
- 'name' => 'NextToken',
- 'in' => 'formData',
- 'schema' => [
- 'title' => '分页游标',
- 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
- .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
- .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'WyI2NDQ3MWUxM2EzOWNhMmY0Y2M2YTRiNzZhOWQwNmU1Y2RlNTYzMGEzIiwibiIsIm4iLDEsLTEsMTY5ODcxMzI2NjU0MywiNjU0MDRlYjI2MmI3MDhjY2JiMjM0ZmU0ODNkNTVmMGRhZDllOTBi****',
+ ],
+ [
+ 'apiName' => 'UpdateListenerAttribute',
+ 'description' => '更新监听属性',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:UpdateListenerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
],
],
- [
- 'name' => 'MaxResults',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '使用NextToken方式查询时,每次最多返回的结果数。取值范围:1~1000。默认值:20。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '20',
+ ],
+ [
+ 'apiName' => 'UpdateLoadBalancerZones',
+ 'description' => '更新负载均衡可用区',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:UpdateLoadBalancerZones',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => '',
- 'description' => '请求的返回值。',
- 'type' => 'object',
- 'properties' => [
- 'NextToken' => [
- 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n"
- .'- 如果**NextToken**为空表示没有下一次查询。'."\n"
- .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。',
- 'type' => 'string',
- 'example' => 'd209f4e63ec942c967c50c888a13****',
- ],
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => 'A95325A2-E421-58A6-88AD-7A26CE610F45',
- ],
- 'TagResources' => [
- 'description' => '标签资源列表。',
- 'type' => 'array',
- 'items' => [
- 'description' => '资源绑定的标签信息。',
- 'type' => 'object',
- 'properties' => [
- 'ResourceId' => [
- 'description' => '资源ID。',
- 'type' => 'string',
- 'example' => 'gwlb-nrnrxwd15en27r****'."\n",
- ],
- 'ResourceType' => [
- 'description' => '资源类型,取值:'."\n"
- ."\n"
- .'- **loadbalancer**:网关型负载均衡实例。'."\n"
- .'- **listener**:监听。'."\n"
- .'- **servergroup**:服务器组。',
- 'type' => 'string',
- 'example' => 'loadbalancer',
- ],
- 'TagKey' => [
- 'description' => '标签键。',
- 'type' => 'string',
- 'example' => 'testKey',
- ],
- 'TagValue' => [
- 'description' => '标签值。',
- 'type' => 'string',
- 'example' => 'testValue',
- ],
- ],
- ],
- ],
- ],
+ [
+ 'apiName' => 'ListTagResources',
+ 'description' => '查询资源标签',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'gwlb:ListTagResources',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => '全部资源', 'arn' => '*'],
],
],
],
- '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.',
+ [
+ 'apiName' => 'CreateLoadBalancer',
+ 'description' => '创建负载均衡实例',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'gwlb:CreateLoadBalancer',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/*'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'],
],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ [
+ 'apiName' => 'GetListenerAttribute',
+ 'description' => '查询监听详细信息',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'gwlb:GetListenerAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
+ ],
+ ],
],
- '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' => '查询资源标签',
- ],
- 'MoveResourceGroup' => [
- 'summary' => '修改资源所属的资源组。',
- 'methods' => [
- 'post',
- 'get',
+ [
+ 'apiName' => 'ListServerGroups',
+ 'description' => '查询服务器组列表',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'gwlb:ListServerGroups',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/*'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'],
+ ],
+ ],
],
- 'schemes' => [
- 'https',
+ [
+ 'apiName' => 'DeleteServerGroup',
+ 'description' => '删除服务器组',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'gwlb:DeleteServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'GetListenerHealthStatus',
+ 'description' => '查询监听健康检查状态',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'gwlb:GetListenerHealthStatus',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
+ ],
],
],
- 'operationType' => 'write',
- 'deprecated' => false,
- 'systemTags' => [
+ [
+ 'apiName' => 'MoveResourceGroup',
+ 'description' => '迁移资源组',
'operationType' => 'update',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'abilityTreeCode' => '225546',
- 'abilityTreeNodes' => [
- 'FEATUREslbRXTOWD',
+ 'ramAction' => [
+ 'action' => 'gwlb:MoveResourceGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:serverGroup/{#serverGroupId}'],
+ ],
],
- 'autoTest' => true,
- 'tenantRelevance' => 'tenant',
],
- 'parameters' => [
- [
- 'name' => 'ResourceId',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '资源ID。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'gwlb-nrnrxwd15en27r****',
+ [
+ 'apiName' => 'UntagResources',
+ 'description' => '删除资源标签',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:UntagResources',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
],
],
- [
- 'name' => 'NewResourceGroupId',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '目标资源组ID。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'rg-aek253e4oit****',
+ ],
+ [
+ 'apiName' => 'DeleteLoadBalancer',
+ 'description' => '删除负载均衡实例',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'gwlb:DeleteLoadBalancer',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
],
],
- [
- 'name' => 'ResourceType',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '资源类型,取值:'."\n"
- ."\n"
- .'- **loadbalancer**:网关型负载均衡实例。'."\n"
- .'- **servergroup**:服务器组。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'loadbalancer',
- 'enum' => [
- 'loadbalancer',
- 'servergroup',
- ],
+ ],
+ [
+ 'apiName' => 'TagResources',
+ 'description' => '添加资源标签',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:TagResources',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
],
],
- [
- 'name' => 'DryRun',
- 'in' => 'formData',
- 'schema' => [
- 'title' => 'dryRun标记',
- 'description' => '是否只预检此次请求。取值:'."\n"
- .'- **true**:发送检查请求,不会迁移资源组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n"
- .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。',
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
+ ],
+ [
+ 'apiName' => 'ListLoadBalancers',
+ 'description' => '查询负载均衡实例列表',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'gwlb:ListLoadBalancers',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/*'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'],
+ ['validationType' => 'conditional', 'product' => 'GWLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'],
],
],
- [
- 'name' => 'ClientToken',
- 'in' => 'formData',
- 'schema' => [
- 'title' => '幂等token',
- 'description' => '客户端Token,用于保证请求的幂等性。'."\n"
- ."\n"
- .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n"
- ."\n"
- .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '123e4567-e89b-12d3-a456-42665544****',
+ ],
+ [
+ 'apiName' => 'DeleteListener',
+ 'description' => '删除监听',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'gwlb:DeleteListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'title' => '',
- 'description' => '请求的返回值。',
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'description' => '请求ID。',
- 'type' => 'string',
- 'example' => '78828B5C-521E-50F3-84D4-7019691D1382',
- ],
- ],
+ [
+ 'apiName' => 'ListListeners',
+ 'description' => '查询监听列表',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'gwlb:ListListeners',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => '全部资源', 'arn' => '*'],
],
],
],
- '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.',
+ [
+ 'apiName' => 'CreateListener',
+ 'description' => '创建监听',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'gwlb:CreateListener',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/*'],
],
],
- 404 => [
- [
- 'errorCode' => 'ResourceNotFound.LoadBalancer',
- 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ [
+ 'apiName' => 'UpdateServerGroupAttribute',
+ 'description' => '更新服务器组属性',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'gwlb:UpdateServerGroupAttribute',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => '全部资源', 'arn' => '*'],
],
- [
- 'errorCode' => 'ResourceNotFound.ServerGroup',
- 'errorMessage' => 'The specified resource of %s is not found.',
+ ],
+ ],
+ [
+ 'apiName' => 'ListServerGroupServers',
+ 'description' => '查询服务器组中的服务器列表',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'gwlb:ListServerGroupServers',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => '全部资源', 'arn' => '*'],
],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ [
+ 'apiName' => 'CreateServerGroup',
+ 'description' => '创建服务器组',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'gwlb:CreateServerGroup',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/*'],
+ ['validationType' => 'always', 'product' => 'GWLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'],
+ ],
+ ],
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"78828B5C-521E-50F3-84D4-7019691D1382\\"\\n}","type":"json"}]',
- 'title' => '迁移资源组',
- ],
- ],
- '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',
+ 'resourceTypes' => [
+ ['validationType' => 'always', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'],
+ ['validationType' => 'conditional', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#InstanceId}'],
+ ['validationType' => 'conditional', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:eni/{#ServerId}'],
+ ['validationType' => 'conditional', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:eci:{#regionId}:{#accountId}:containergroup/{#ServerId}'],
+ ['validationType' => 'always', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'],
+ ['validationType' => 'always', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/{#ListenerId}'],
+ ['validationType' => 'always', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'],
+ ['validationType' => 'conditional', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/*'],
+ ['validationType' => 'conditional', 'resourceType' => 'Listener', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:listener/*'],
+ ['validationType' => 'conditional', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:loadbalancer/*'],
+ ['validationType' => 'always', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'],
+ ['validationType' => 'conditional', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:serverGroup/{#serverGroupId}'],
+ ['validationType' => 'always', 'resourceType' => 'ServerGroup', 'arn' => 'acs:gwlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId{#ServerGroupId}'],
],
],
];