diff options
| author | Zhineng Li <im@zhineng.li> | 2026-07-12 17:11:17 +0800 |
|---|---|---|
| committer | Zhineng Li <im@zhineng.li> | 2026-07-12 17:11:17 +0800 |
| commit | 1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634 (patch) | |
| tree | 5f0857666365b7e40cdaa3733ebe1f3ba9e13c67 /data/zh_cn/nlb | |
| parent | 7347bac4ab7e136157fc94777e6cf87ef9e08599 (diff) | |
| download | afterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.tar.gz afterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.zip | |
update APIs 20260712
Diffstat (limited to 'data/zh_cn/nlb')
| -rw-r--r-- | data/zh_cn/nlb/2022-04-30/api-docs.php | 15491 |
1 files changed, 6138 insertions, 9353 deletions
diff --git a/data/zh_cn/nlb/2022-04-30/api-docs.php b/data/zh_cn/nlb/2022-04-30/api-docs.php index f148ac5..108800b 100644 --- a/data/zh_cn/nlb/2022-04-30/api-docs.php +++ b/data/zh_cn/nlb/2022-04-30/api-docs.php @@ -1,597 +1,943 @@ <?php return [ 'version' => '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'Nlb', - 'version' => '2022-04-30', - ], + 'info' => ['style' => 'RPC', 'product' => 'Nlb', 'version' => '2022-04-30'], 'directories' => [ [ - 'id' => 192387, - 'title' => '监控', + 'children' => ['DescribeHdMonitorRegionConfig', 'SetHdMonitorRegionConfig'], 'type' => 'directory', - 'children' => [ - 'DescribeHdMonitorRegionConfig', - 'SetHdMonitorRegionConfig', - ], + 'title' => '监控', + 'id' => 82501, ], [ - 'id' => 175130, - 'title' => '地域与可用区', + 'children' => ['DescribeRegions', 'DescribeZones'], 'type' => 'directory', - 'children' => [ - 'DescribeRegions', - 'DescribeZones', - ], + 'title' => '地域与可用区', + 'id' => 82488, ], [ - 'id' => 175092, - 'title' => '实例', + 'children' => ['CreateLoadBalancer', 'DeleteLoadBalancer', 'UpdateLoadBalancerAddressTypeConfig', 'UpdateLoadBalancerAttribute', 'UpdateLoadBalancerZones', 'EnableLoadBalancerIpv6Internet', 'DisableLoadBalancerIpv6Internet', 'LoadBalancerLeaveSecurityGroup', 'LoadBalancerJoinSecurityGroup', 'UpdateLoadBalancerProtection', 'ListLoadBalancers', 'GetLoadBalancerAttribute', 'StartShiftLoadBalancerZones', 'CancelShiftLoadBalancerZones'], 'type' => 'directory', - 'children' => [ - 'CreateLoadBalancer', - 'DeleteLoadBalancer', - 'UpdateLoadBalancerAddressTypeConfig', - 'UpdateLoadBalancerAttribute', - 'UpdateLoadBalancerZones', - 'EnableLoadBalancerIpv6Internet', - 'DisableLoadBalancerIpv6Internet', - 'LoadBalancerLeaveSecurityGroup', - 'LoadBalancerJoinSecurityGroup', - 'UpdateLoadBalancerProtection', - 'ListLoadBalancers', - 'GetLoadBalancerAttribute', - 'StartShiftLoadBalancerZones', - 'CancelShiftLoadBalancerZones', - ], + 'title' => '实例', + 'id' => 82452, ], [ - 'id' => 175084, - 'title' => '监听', + 'children' => ['CreateListener', 'DeleteListener', 'StartListener', 'StopListener', 'UpdateListenerAttribute', 'ListListeners', 'GetListenerAttribute', 'GetListenerHealthStatus'], 'type' => 'directory', - 'children' => [ - 'CreateListener', - 'DeleteListener', - 'StartListener', - 'StopListener', - 'UpdateListenerAttribute', - 'ListListeners', - 'GetListenerAttribute', - 'GetListenerHealthStatus', - ], + 'title' => '监听', + 'id' => 82443, ], [ - 'id' => 175131, - 'title' => '监听证书', + 'children' => ['ListListenerCertificates', 'AssociateAdditionalCertificatesWithListener', 'DisassociateAdditionalCertificatesWithListener'], 'type' => 'directory', - 'children' => [ - 'ListListenerCertificates', - 'AssociateAdditionalCertificatesWithListener', - 'DisassociateAdditionalCertificatesWithListener', - ], + 'title' => '监听证书', + 'id' => 82491, ], [ - 'id' => 175112, - 'title' => '服务器组', + 'children' => ['CreateServerGroup', 'AddServersToServerGroup', 'DeleteServerGroup', 'RemoveServersFromServerGroup', 'UpdateServerGroupAttribute', 'UpdateServerGroupServersAttribute', 'ListServerGroups', 'ListServerGroupServers'], 'type' => 'directory', - 'children' => [ - 'CreateServerGroup', - 'AddServersToServerGroup', - 'DeleteServerGroup', - 'RemoveServersFromServerGroup', - 'UpdateServerGroupAttribute', - 'UpdateServerGroupServersAttribute', - 'ListServerGroups', - 'ListServerGroupServers', - ], + 'title' => '服务器组', + 'id' => 82476, ], [ - 'id' => 175103, - 'title' => '共享带宽包', + 'children' => ['DetachCommonBandwidthPackageFromLoadBalancer', 'AttachCommonBandwidthPackageToLoadBalancer'], 'type' => 'directory', - 'children' => [ - 'DetachCommonBandwidthPackageFromLoadBalancer', - 'AttachCommonBandwidthPackageToLoadBalancer', - ], + 'title' => '共享带宽包', + 'id' => 82467, ], [ - 'id' => 175106, - 'title' => '安全策略', + 'children' => ['CreateSecurityPolicy', 'DeleteSecurityPolicy', 'UpdateSecurityPolicyAttribute', 'ListSecurityPolicy', 'ListSystemSecurityPolicy'], 'type' => 'directory', - 'children' => [ - 'CreateSecurityPolicy', - 'DeleteSecurityPolicy', - 'UpdateSecurityPolicyAttribute', - 'ListSecurityPolicy', - 'ListSystemSecurityPolicy', - ], + 'title' => '安全策略', + 'id' => 82470, ], [ - 'id' => 183551, - 'title' => '资源组', + 'children' => ['MoveResourceGroup'], 'type' => 'directory', - 'children' => [ - 'MoveResourceGroup', - ], + 'title' => '资源组', + 'id' => 82499, ], [ - 'id' => 175122, - 'title' => '异步任务', + 'children' => ['GetJobStatus', 'ListAsynJobs'], 'type' => 'directory', - 'children' => [ - 'GetJobStatus', - 'ListAsynJobs', - ], + 'title' => '异步任务', + 'id' => 82485, ], [ - 'id' => 175132, - 'title' => '标签', + 'children' => ['TagResources', 'UntagResources', 'ListTagResources'], 'type' => 'directory', - 'children' => [ - 'TagResources', - 'UntagResources', - 'ListTagResources', - ], + 'title' => '标签', + 'id' => 82495, ], ], 'components' => [ 'schemas' => [], ], 'apis' => [ - 'DescribeHdMonitorRegionConfig' => [ - 'summary' => '查询秒级监控存储配置。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddServersToServerGroup' => [ + 'summary' => '向网络型负载均衡服务器组中添加后端服务器。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', + 'abilityTreeNodes' => ['FEATUREslbWFW5HS'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', + 'name' => 'ServerGroupId', + 'in' => 'formData', + 'schema' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****'], + ], + [ + 'name' => 'Servers', + 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'title' => 'add 必选', - 'description' => '资源所在的地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + 'description' => '后端服务器列表。'."\n" + ."\n" + .'> 单次调用最多支持传入200个服务器。', + 'type' => 'array', + 'items' => [ + 'description' => '后端服务器列表。'."\n" + ."\n" + .'> 单次调用最多支持传入200个服务器。', + 'type' => 'object', + 'properties' => [ + 'ServerId' => ['title' => '服务器id', 'description' => '后端服务器ID。'."\n" + ."\n" + .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源ID。'."\n" + ."\n" + .'- 当服务器组为**Ip**类型时,该参数为IP地址。', 'type' => 'string', 'required' => true, 'example' => 'i-bp67acfmxazb4p****'], + 'ServerType' => [ + 'title' => '服务器类型', + 'description' => '后端服务器类型,取值:'."\n" + ."\n" + .'- **Ecs**:ECS实例。'."\n" + .'- **Eni**:ENI弹性网卡实例。'."\n" + .'- **Eci**:ECI弹性容器。'."\n" + .'- **Ip**:Ip地址。', + 'type' => 'string', + 'required' => true, + 'example' => 'Ecs', + 'enum' => [], + ], + 'ServerIp' => ['title' => '服务器ip', 'description' => '服务器IP地址。当服务器组为**Ip**类型时,必须指定IP地址。', 'type' => 'string', 'required' => false, 'example' => '192.168.6.6'], + 'Port' => ['title' => '服务器端口', 'description' => '后端服务器使用的端口。端口范围**0~65535**,不填则默认传入端口值**0**。'."\n" + ."\n" + .'当服务器组开启全端口转发后,添加后端服务器时无需指定端口(默认传入0),NLB将按照前端请求端口转发流量至后端服务器。您可以通过[ListServerGroups](~~445895~~)接口返回的**AnyPortEnabled**字段查询是否开启了全端口转发。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '443'], + 'Weight' => ['title' => '后端权重', 'description' => '后端服务器的权重,取值范围:**0**~**100**。默认值为**100**。如果设置权重为**0**,则不会将请求转发给该后端服务器。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'default' => '100'], + 'Description' => ['title' => '服务器描述信息', 'description' => '服务器描述信息。'."\n" + ."\n" + .'长度限制为2-256个字符,可包含英文字母、数字、中文、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'ECS'], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 200, ], ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会添加服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<GetJodResponse>', - 'description' => 'RpcResponse<GetJodResponse>', + 'title' => 'RpcResponse<AddServersToServerGroupResponse>', + 'description' => '添加后端服务器。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'RegionId' => [ - 'description' => '资源所在地域ID。'."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'LogProject' => [ - 'description' => '日志服务LogProject的名称。', - 'type' => 'string', - 'example' => 'hdmonitor-cn-hangzhou-223794579283657556'."\n", - ], - 'MetricStore' => [ - 'description' => '日志服务MetricStore的名称。', - 'type' => 'string', - 'example' => 'hdmonitor-cn-hangzhou-metricStore-1', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => '指定的资源当前存在锁冲突。'], + ['errorCode' => 'IllegalParam.IP', 'errorMessage' => 'The param of IP is illegal.', 'description' => '参数IP非法。请检查参数IP的输入值。'], + ['errorCode' => 'QuotaExceeded.QuotaInsufficient', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额不足,已使用%s/%s。请在配额中心中修改配额大小。'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'DuplicatedParam.Server', 'errorMessage' => 'The param of Server is duplicated.', 'description' => '参数中的server重复了。'], + ['errorCode' => 'IncorrectStatus.serverGroup', 'errorMessage' => 'The status of servergroup [%s] is incorrect.', 'description' => '服务器组的状态无法进行当前操作,请检查服务器组当前是否处于其他操作下。'], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The VpcId is mismatched for %s and %s.', 'description' => '资源%s和资源%s的VpcId不匹配。请检查两种资源是否在同一个VPC下。'], + ['errorCode' => 'Mismatch.ServerType', 'errorMessage' => 'The ServerType is mismatched for %s and %s.', 'description' => 'ServerType不匹配'], + ['errorCode' => 'IllegalParam.RSPortConflictWithServerGroup', 'errorMessage' => 'The param of RSPortConflictWithServerGroup is illegal.', 'description' => '参数RSPort与ServerGroup冲突。请检查输入值。'], + ['errorCode' => 'TagInvokeError', 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', 'description' => '在资源标签中找不到资源定义,请检查RAM是否给NLB添加授权。'], + ['errorCode' => 'ResourceInUse.IP', 'errorMessage' => 'The specified resource of IP is in use.', 'description' => '传入的IP不能是NLB的eni地址,请检查参数。'], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => '参数%s缺失,请检查输入参数。'], + ['errorCode' => 'IllegalParam.description', 'errorMessage' => 'The parameter description of server is illegal.', 'description' => '服务器描述不符合输入要求,请根据错误中的详细信息进行修改。'], + ['errorCode' => 'MissingParam.IP', 'errorMessage' => 'The param of IP is missing.', 'description' => '输入的IP参数缺失,请检查您的输入参数。'], + ['errorCode' => 'OperationDenied.ServerGroupNotSupportIpv6', 'errorMessage' => 'The operation is not allowed because of ServerGroupNotSupportIpv6.', 'description' => '因为服务器组不支持IPV6,所以操作失败。'], + ['errorCode' => 'IncorrectStatus.Eni', 'errorMessage' => 'Eni status is invalid.', 'description' => '弹性网卡状态不合法。'], + ['errorCode' => 'IdempotenceSignatureMismatch', 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', 'description' => '请求的幂等令牌与上一个相同,但签名不同。'], + ['errorCode' => 'Throttling.User', 'errorMessage' => 'Request was denied due to api flow control.', 'description' => '由于触发流控,请求被拒绝。'], + ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'DescribeHDMonitor.Fail', - 'errorMessage' => 'DescribeHDMonitor Fail.', - ], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => '找不到指定的服务器组资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.Eci', 'errorMessage' => 'The specified resource of Eci is not found.', 'description' => '找不到指定的弹性容器实例(Eci)资源,请检查输入的参数。'], + ['errorCode' => 'ResourceNotFound.Ecs', 'errorMessage' => 'The specified resource of Ecs is not found.', 'description' => '找不到指定的ECS资源, 请检查输入的参数。'], + ['errorCode' => 'ResourceNotFound.Eni', 'errorMessage' => 'The specified resource Eni is not found.', 'description' => '没有找到指定的弹性网卡实例,请检查输入参数。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<AddServersToServerGroupResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</AddServersToServerGroupResponse>","errorExample":""}]', + 'title' => '添加后端服务器', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddServersToServerGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:AddServersToServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:eni/{#ServerId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:eci:{#regionId}:{#accountId}:containergroup/{#ServerId}'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LogProject\\": \\"hdmonitor-cn-hangzhou-223794579283657556\\\\n\\",\\n \\"MetricStore\\": \\"hdmonitor-cn-hangzhou-metricStore-1\\"\\n}","type":"json"}]', - 'title' => '查询秒级监控配置', - 'description' => '查询当前地域配置的秒级监控存储数仓。', ], - 'SetHdMonitorRegionConfig' => [ - 'summary' => '配置秒级监控存储。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AssociateAdditionalCertificatesWithListener' => [ + 'summary' => '为TCPSSL监听关联扩展证书。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '207971', - 'abilityTreeNodes' => [ - 'FEATUREslbNC4CZR', - ], - 'tenantRelevance' => 'publicInformation', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '177212', + 'abilityTreeNodes' => ['FEATUREslbEI2GF0'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', + 'name' => 'AdditionalCertificateIds', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'title' => 'add 必选', - 'description' => '资源所在的地域ID。'."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~2399192~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + 'title' => 'server扩展证书列表', + 'description' => '扩展证书列表。一次调用最多支持为监听关联15个扩展证书。', + 'type' => 'array', + 'items' => ['description' => '扩展证书列表。一次调用最多支持为监听关联15个扩展证书。', 'type' => 'string', 'required' => false, 'example' => '123157******'], + 'required' => true, + 'maxItems' => 15, + 'minItems' => 1, ], ], [ - 'name' => 'LogProject', - 'in' => 'query', - 'schema' => [ - 'title' => 'add 必选', - 'description' => '日志服务LogProject的名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'hdmonitor-cn-hangzhou-223794579283657556', - ], + 'name' => 'ListenerId', + 'in' => 'formData', + 'schema' => ['title' => 'update or delete必选, add在custom中生成', 'description' => '监听ID。该接口仅支持输入TCPSSL监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-bpn0kn908w4nbw****@80'], ], [ - 'name' => 'MetricStore', - 'in' => 'query', - 'schema' => [ - 'title' => 'add 必选', - 'description' => '日志服务MetricStore的名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'hdmonitor-cn-hangzhou-metricStore-1', - ], + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会为TCPSSL监听添加扩展证书。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + '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' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<GetJodResponse>', - 'description' => 'RpcResponse<GetJodResponse>', + 'title' => 'RpcResponse<AdditionalCertificatesWithListenerResponse>', + 'description' => '为TCPSSL监听添加扩展证书。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'RegionId' => [ - 'description' => '资源所在地域ID。'."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~2399192~~)接口获取地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'LogProject' => [ - 'description' => '日志服务LogProject的名称。', - 'type' => 'string', - 'example' => 'hdmonitor-cn-hangzhou-223794579283657556', - ], - 'MetricStore' => [ - 'description' => '日志服务MetricStore的名称。', - 'type' => 'string', - 'example' => 'hdmonitor-cn-hangzhou-metricStore-1', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'OperationDenied.%s', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '因为%s,当前操作是不允许的'], + ['errorCode' => 'OperationFailed.%s', 'errorMessage' => 'The operation failed because of %s.', 'description' => '因为%操作当前API失败'], + ['errorCode' => 'IncorrectStatus.%s', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '%s的状态不正确,不允许进行当前操作'], + ['errorCode' => 'ResourceAlreadyAssociated.%s', 'errorMessage' => 'The specified resource of %s is already associated.', 'description' => '所请求的资源%s已经被关联。'], + ['errorCode' => 'IncorrectStatus.listener', 'errorMessage' => 'The status of listener [%s] is incorrect.', 'description' => '监听的状态无法进行当前操作,请检查监听当前是否处于其他操作下。'], + ['errorCode' => 'ResourceAlreadyAssociated.Certificate', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => '资源%s已被关联。'], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => '指定的资源当前存在锁冲突。'], + ['errorCode' => 'OperationDenied.Protocol', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'], + ['errorCode' => 'ResourceNotFound.Certificate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'EnableHDMonitor.Fail', - 'errorMessage' => 'EnableHDMonitor Fail.', - ], + ['errorCode' => 'ResourceNotFound.%s', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '无法找到所需要使用的资源%s'], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Nlb::2022-04-30::GetJobStatus', 'callbackInterval' => 5000, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<AssociateAdditionalCertificatesWithListenerResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</AssociateAdditionalCertificatesWithListenerResponse>","errorExample":""}]', + 'title' => '关联扩展证书和监听', + 'description' => '**AssociateAdditionalCertificatesWithListener**接口属于异步接口,即系统返回一个请求ID,但该扩展证书尚未添加成功,系统后台的添加任务仍在进行。您可以调用[ListListenerCertificates](~~615175~~)查询扩展证书的添加状态:'."\n" + ."\n" + .'- 当TCPSSL监听处于**Associating**状态时,表示扩展证书正在添加中。'."\n" + .'- 当TCPSSL监听处于**Associated**状态时,表示扩展证书添加成功。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateAdditionalCertificatesWithListener'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:AssociateAdditionalCertificatesWithListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LogProject\\": \\"hdmonitor-cn-hangzhou-223794579283657556\\",\\n \\"MetricStore\\": \\"hdmonitor-cn-hangzhou-metricStore-1\\"\\n}","type":"json"}]', - 'title' => '配置秒级监控', - 'description' => '设置秒级监控数仓信息,如果当前地域存在已开启秒级监控的监听,需要先关闭才可以调整秒级监控数仓。', ], - 'DescribeRegions' => [ - 'summary' => '查询NLB的可用地域。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AttachCommonBandwidthPackageToLoadBalancer' => [ + 'summary' => '为网络型负载均衡实例绑定共享带宽包。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', + 'abilityTreeCode' => '141865', + 'abilityTreeNodes' => ['FEATUREslb12YEWG'], ], 'parameters' => [ [ - 'name' => 'ServiceCode', - 'in' => 'query', + 'name' => 'LoadBalancerId', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], + ], + [ + 'name' => 'BandwidthPackageId', + 'in' => 'formData', + 'schema' => ['description' => '绑定的共享带宽包ID。', 'type' => 'string', 'required' => true, 'example' => 'cbwp-bp1pzf0ym72pu3y76****'], + ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会绑定带宽包。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + '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' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '云产品的ServiceCode,仅取值:**nlb**。', - 'type' => 'string', - 'required' => false, - 'example' => 'nlb', - 'default' => 'nlb', + 'title' => 'response', + 'description' => '实例绑定共享带宽包。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.IntranetLoadBalancer', 'errorMessage' => 'The operation is not allowed because of IntranetLoadBalancer.', 'description' => '由于是内网负载均衡器(IntranetLoadBalancer),不允许进行此操作。'], + ['errorCode' => 'ResourceAlreadyAssociated.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is already associated.', 'description' => '指定的负载均衡已经和共享带宽包绑定过了。'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => '正在配置指定的负载均衡资源,请稍后重试。'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.BandwidthPackageId', 'errorMessage' => 'The specified resource of BandwidthPackageId is not found.', 'description' => '找不到指定的带宽包资源。请检查输入的参数。'], + ['errorCode' => 'ResourceNotFound.CommonBandwidthPackage', 'errorMessage' => 'The specified resource of CommonBandwidthPackage is not found.', 'description' => '共享带宽包资源不存在,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<AttachCommonBandwidthPackageToLoadBalancerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</AttachCommonBandwidthPackageToLoadBalancerResponse>","errorExample":""}]', + 'title' => '实例绑定共享带宽包', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AttachCommonBandwidthPackageToLoadBalancer'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:AttachCommonBandwidthPackageToLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'CommonBandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:CommonBandwidthPackage/{#CommonBandwidthPackageId}'], + ], + ], + ], + ], + ], + 'CancelShiftLoadBalancerZones' => [ + 'summary' => '将可用区对应的EIP/VIP加回到域名解析中。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'AcceptLanguage', - 'in' => 'query', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'ZoneMappings', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '支持的语言。取值:'."\n" + 'description' => '可用区及交换机映射列表。'."\n" ."\n" - .'- **zh-CN**:中文'."\n" - .'- **en-US**(默认):英文'."\n" - .'- **ja**:日文', - 'type' => 'string', - 'required' => false, - 'example' => 'en-US', + .'> 一次调用最多支持加回一个可用区。', + 'type' => 'array', + 'items' => [ + 'description' => '可用区及交换机映射列表。'."\n" + ."\n" + .'> 一次调用最多支持加回一个可用区。', + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。'."\n", 'type' => 'string', 'required' => true, 'example' => 'vsw-sersdf****'], + 'ZoneId' => ['description' => 'NLB实例的可用区ID。'."\n" + .'> 一次调用最多支持加回一个可用区。'."\n" + ."\n" + .'您可以通过调用[DescribeZones](~~443890~~)接口获取可用区ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a'], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 1, + 'minItems' => 1, ], ], [ + 'name' => 'LoadBalancerId', + 'in' => 'formData', + 'schema' => ['description' => 'NLB实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], + ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会加回可用区。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'NLB实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<DescribeRegionsResponse>', - 'description' => '返回数据的结构。', + 'title' => 'RpcResponse<LoadBalancerZonesResponse>', + 'description' => 'RpcResponse<LoadBalancerZonesResponse>', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'Regions' => [ - 'description' => '地域列表。', - 'type' => 'array', - 'items' => [ - 'description' => '地域信息结构。', - 'type' => 'object', - 'properties' => [ - 'LocalName' => [ - 'description' => '地域名称。', - 'type' => 'string', - 'example' => 'China (Hangzhou)', - ], - 'RegionEndpoint' => [ - 'description' => '地域服务的Endpoint地址。', - 'type' => 'string', - 'example' => 'nlb.cn-hangzhou.aliyuncs.com', - ], - 'RegionId' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', + ['errorCode' => 'IncorrectStatus.ZoneId', 'errorMessage' => 'The zoneId status of eni [%s] is incorrect.', 'description' => '弹性网卡的可用区状态当前无法操作,请等待前置操作完成。'], + ], + 403 => [ + ['errorCode' => 'Forbidden.%s', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '当前资源或者操作%s鉴权失败'], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"<CancelShiftLoadBalancerZonesResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n</CancelShiftLoadBalancerZonesResponse>","errorExample":""}]', + 'title' => '把可用区的EIP/VIP加到DNS中', + 'description' => '调用本接口时,您已通过[StartShiftLoadBalancerZones](~~2411999~~)接口或控制台移除NLB实例的某个可用区。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelShiftLoadBalancerZones'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:CancelShiftLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"China (Hangzhou)\\",\\n \\"RegionEndpoint\\": \\"nlb.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeRegionsResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <Regions>\\n <LocalName>华东1(杭州)</LocalName>\\n <RegionEndpoint>nlb.cn-hangzhou.aliyuncs.com</RegionEndpoint>\\n <RegionId>cn-hangzhou</RegionId>\\n </Regions>\\n</DescribeRegionsResponse>","errorExample":""}]', - 'title' => '查询地域', ], - 'DescribeZones' => [ - 'summary' => '查询NLB一个地域下的可用区列表。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateListener' => [ + 'summary' => '在网络型负载均衡实例中创建TCP、UDP或TCPSSL监听。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '141889', + 'abilityTreeNodes' => ['FEATUREslbC68LB1', 'FEATUREslb4PUXNB', 'FEATUREslbGDCN1S', 'FEATUREslbUZZGGD'], ], 'parameters' => [ [ - 'name' => 'ServiceCode', - 'in' => 'query', + 'name' => 'ListenerProtocol', + 'in' => 'formData', 'schema' => [ - 'description' => '云产品的ServiceCode,仅取值:**nlb**。', + 'title' => '监听协议', + 'description' => '监听协议。取值:**TCP**、**UDP**或**TCPSSL**。', 'type' => 'string', - 'required' => false, - 'example' => 'nlb', + 'required' => true, + 'example' => 'TCP', + 'enum' => [], ], ], [ - 'name' => 'RegionId', - 'in' => 'query', + 'name' => 'ListenerPort', + 'in' => 'formData', + 'schema' => ['title' => '监听端口', 'description' => '监听端口。取值范围:**0**~**65535**。'."\n" + ."\n" + .'**0**:表示使用全端口功能。当设置为**0**时,您需要配置**StartPort**和**EndPort**。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '65535', 'minimum' => '0', 'example' => '80'], + ], + [ + 'name' => 'ListenerDescription', + 'in' => 'formData', + 'schema' => ['title' => '监听描述', 'description' => '自定义监听名称。'."\n" + ."\n" + .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'tcp_80'], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'formData', + 'schema' => ['title' => 'add 必选', 'description' => '网络型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], + ], + [ + 'name' => 'ServerGroupId', + 'in' => 'formData', + 'schema' => ['title' => 'servergroupId', 'description' => '服务器组ID。'."\n" + .'> - 当**ListenerProtocol**取值为**TCP**时,该监听支持选择后端协议为**TCP**或者**TCP_UDP**的服务器组,不支持选择后端协议为**UDP**的服务器组。'."\n" + .'> - 当**ListenerProtocol**取值为**UDP**时,该监听支持选择后端协议为**UDP**或者**TCP_UDP**的服务器组,不支持选择后端协议为**TCP**的服务器组。'."\n" + .'> - 当**ListenerProtocol**取值为**TCPSSL**时,该监听支持选择后端协议为**TCP**且**未开启客户端地址保持功能**的服务器组,不支持选择后端协议为**TCP**且**开启客户端地址保持功能**的服务器组、后端协议为**UDP**或者**TCP_UDP**的服务器组。', 'type' => 'string', 'required' => false, 'example' => 'sgp-ppdpc14gdm3x4o****'], + ], + [ + 'name' => 'IdleTimeout', + 'in' => 'formData', + 'schema' => ['title' => '空闲超时时间', 'description' => '连接空闲超时时间。单位:秒。'."\n" + ."\n" + .'- 当**ListenerProtocol**取值为**TCP**或**TCPSSL**时,连接空闲超时时间取值范围为:**10**~**900**。默认值:**900**。'."\n" + ."\n" + .'- 当**ListenerProtocol**取值为**UDP**时,连接空闲超时时间取值范围为:**10**~**90**。默认值:**90**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3600', 'minimum' => '10', 'example' => '900'], + ], + [ + 'name' => 'SecurityPolicyId', + 'in' => 'formData', + 'schema' => ['title' => 'Tclssl监听的安全策略', 'description' => '安全策略ID。支持系统安全策略和自定义安全策略。'."\n" + ."\n" + .'- 系统策略取值:**tls_cipher_policy_1_0**(默认值)、**tls_cipher_policy_1_1**、**tls_cipher_policy_1_2**、**tls_cipher_policy_1_2_strict**或**tls_cipher_policy_1_2_strict_with_1_3**。'."\n" + .'- 自定义安全策略:输入自定义安全策略ID。'."\n" + .' - 创建自定义策略,请参见[CreateSecurityPolicy](~~445901~~)。'."\n" + .' - 查询安全策略,请参见[ListSecurityPolicy](~~445900~~)。'."\n" + ."\n" + .'>仅对TCPSSL监听生效。', 'type' => 'string', 'required' => false, 'example' => 'tls_cipher_policy_1_0'], + ], + [ + 'name' => 'CertificateIds', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '可用区所在的地域ID。您可以调用[DescribeRegions](~~443657~~)查看最新的阿里云地域列表。', - 'type' => 'string', + 'title' => 'server证书列表', + 'description' => '服务器证书列表信息。仅对TCPSSL监听生效。'."\n" + ."\n" + .'> 目前仅支持添加1个服务器证书。', + 'type' => 'array', + 'items' => ['description' => '服务器证书列表信息。仅对TCPSSL监听生效。'."\n" + ."\n" + .'> 目前仅支持添加1个服务器证书。', 'type' => 'string', 'required' => false, 'example' => '123157******'], 'required' => false, - 'example' => 'cn-hangzhou', + 'maxItems' => 10, ], ], [ - 'name' => 'AcceptLanguage', - 'in' => 'query', + 'name' => 'CaCertificateIds', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '支持的语言。取值:'."\n" + 'title' => 'ca 证书列表', + 'description' => 'CA证书列表。仅对TCPSSL监听生效。'."\n" ."\n" - .'- **zh-CN**:中文'."\n" - .'- **en-US**(默认):英文'."\n" - .'- **ja**:日文', - 'type' => 'string', + .'> 目前仅支持添加1个CA证书。', + 'type' => 'array', + 'items' => ['description' => 'CA证书列表。仅对TCPSSL监听生效。'."\n" + ."\n" + .'> 目前仅支持添加1个CA证书。', 'type' => 'string', 'required' => false, 'example' => '139a00******'], 'required' => false, - 'example' => 'zh-CN', + 'maxItems' => 10, ], ], [ + 'name' => 'CaEnabled', + 'in' => 'formData', + 'schema' => ['description' => '是否启动双向认证。取值:'."\n" + ."\n" + .'- **true**:启动。'."\n" + ."\n" + .'- **false**(默认值):关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], + ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会创建监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], + ], + [ 'name' => 'ClientToken', - 'in' => 'query', + 'in' => 'formData', + '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' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'ProxyProtocolEnabled', + 'in' => 'formData', + 'schema' => ['description' => '是否开启通过Proxy Protocol协议携带客户端源地址到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**(默认值):关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], + ], + [ + 'name' => 'SecSensorEnabled', + 'in' => 'formData', + 'schema' => ['description' => '是否开启秒级监控功能。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**(默认值):关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], + ], + [ + 'name' => 'AlpnEnabled', + 'in' => 'formData', + 'schema' => ['description' => '是否开启ALPN。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**(默认值):关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], + ], + [ + 'name' => 'AlpnPolicy', + 'in' => 'formData', 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + 'description' => 'ALPN策略。取值:'."\n" ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + .'- **HTTP1Only**:只协商使用HTTP1.x协议,优先级为HTTP1.1>HTTP1.0。'."\n" + .'- **HTTP2Only**:只协商使用HTTP2.0协议。'."\n" + .'- **HTTP2Optional**:优先使用HTTP1.x协议,但也接受HTTP2.0协议,优先级为HTTP1.1>HTTP1.0>HTTP2.0。'."\n" + .'- **HTTP2Preferred**:优先使用HTTP2.0协议,但也接受HTTP1.x协议,优先级为HTTP2.0>HTTP1.1>HTTP1.0。'."\n" ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', + .'> **AlpnEnabled**开启后需配置该参数。', 'type' => 'string', 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'example' => 'HTTP1Only', + 'enum' => ['HTTP1Only', 'HTTP2Only', 'HTTP2Preferred', 'HTTP2Optional'], + ], + ], + [ + 'name' => 'StartPort', + 'in' => 'formData', + 'schema' => ['description' => '全端口监听起始端口。取值范围:**1** ~ **65535**。'."\n" + ."\n" + .'> 当**ListenerPort**为**0**时,需要配置该参数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '244'], + ], + [ + 'name' => 'EndPort', + 'in' => 'formData', + 'schema' => ['description' => '全端口监听结束端口。取值范围:**1** ~ **65535**。'."\n" + .'终止端口的取值大于起始端口。'."\n" + ."\n" + .'> 当**ListenerPort**为**0**时,需要配置该参数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '566'], + ], + [ + 'name' => 'Cps', + 'in' => 'formData', + 'schema' => ['description' => '该监听在每个可用区(VIP)处理的每秒新建连接限速值。取值范围:**0**~**1000000**。**0**表示不限速。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + ], + [ + 'name' => 'Mss', + 'in' => 'formData', + 'schema' => ['description' => 'TCP报文的最大段大小。单位:字节,取值范围:**0**~**1500**。'."\n" + .'**0**:表示不修改用户TCP报文的MSS值。'."\n" + ."\n" + .'> 仅TCP、TCPSSL类型的监听支持该字段值。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '43'], + ], + [ + 'name' => 'Tag', + 'in' => 'formData', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。最多支持64个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" + ."\n" + .'一次调用最多支持添加20个标签。', 'type' => 'string', 'required' => false, 'example' => 'KeyTest'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" + ."\n" + .'一次调用最多支持添加20个标签。', 'type' => 'string', 'required' => false, 'example' => 'Test'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'ProxyProtocolV2Config', + 'in' => 'formData', + 'style' => 'json', + 'schema' => [ + 'description' => '通过Proxy Protocol协议携带VpcId、PrivateLinkEpId、PrivateLinkEpsId信息到后端服务器配置。', + 'type' => 'object', + 'properties' => [ + 'Ppv2VpcIdEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带VpcId到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**(默认值):关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], + 'Ppv2PrivateLinkEpIdEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带Ppv2PrivateLinkEpId到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**(默认值):关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], + 'Ppv2PrivateLinkEpsIdEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpsId到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**(默认值):关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], + ], + 'required' => false, ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<DescribeZonesResponse>', - 'description' => '返回数据的结构。', + 'title' => 'RpcResponse<CreateListenerResponse>', + 'description' => 'RpcResponse<CreateListenerResponse>', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'Zones' => [ - 'description' => '可用区列表。', - 'type' => 'array', - 'items' => [ - 'description' => '可用区信息结构。', - 'type' => 'object', - 'properties' => [ - 'LocalName' => [ - 'description' => '可用区名称。', - 'type' => 'string', - 'example' => '杭州 可用区G', - ], - 'ZoneId' => [ - 'description' => '可用区ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou-g', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'ListenerId' => ['description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-bp1bpn0kn908w4nbw****@80'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.AcceptLanguage', - 'errorMessage' => 'The param of AcceptLanguage[%s] is illegal from bundle %s', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', + ['errorCode' => 'Conflict.Port', 'errorMessage' => 'The Port [%s] is conflict.', 'description' => '指定端口与已有端口存在冲突'], + ['errorCode' => 'IllegalParam.MssConflictWithUdpAndGeneve', 'errorMessage' => 'The param of MssConflictWithUdpAndGeneve is illegal.', 'description' => 'Mss值不为null时,listenerProtocol不可以是udp或者GENEVE。'], + ['errorCode' => 'QuotaExceeded.%s', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '%s的配额超过限制,已使用%s/%s'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The VpcId is mismatched for %s and %s.', 'description' => '资源%s和资源%s的VpcId不匹配。请检查两种资源是否在同一个VPC下。'], + ['errorCode' => 'ResourceNotEnough.%s', 'errorMessage' => 'The specified resource of %s is not enough.', 'description' => '所需要的资源%s不足了'], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => '指定的资源当前存在锁冲突。'], + ['errorCode' => 'IllegalParam.AnyPortListenerConflictWithNonAnyPortServerGroup', 'errorMessage' => 'The param of AnyPortListenerConflictWithNonAnyPortServerGroup is illegal.', 'description' => 'servergroup的全端口转发开关,必须匹配与监听的anyport开关匹配,请检查参数。'], + ['errorCode' => 'IncorrectStatus.loadbalancer', 'errorMessage' => 'The status of loadbalancer [%s] is incorrect.', 'description' => '负载均衡的状态无法进行当前操作,请检查负载均衡当前是否处于其他操作下。'], + ['errorCode' => 'ResourceNotFound.Certificate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'IllegalParam.ServerGroupId', 'errorMessage' => 'The param of ServerGroupId is illegal.', 'description' => '参数ServerGroupId非法,请检查输入参数。'], + ['errorCode' => 'IllegalParam.NonAnyPortListenerConflictWithAnyPortServerGroup', 'errorMessage' => 'The param of NonAnyPortListenerConflictWithAnyPortServerGroup is illegal.', 'description' => '监听端口配置与全端口转发开关冲突。'], + ['errorCode' => 'MissingParam.Certificate', 'errorMessage' => 'The param of certificate is missing.', 'description' => '参数Certificate缺失。'], + ['errorCode' => 'IllegalParam.Port', 'errorMessage' => 'The param of Port is illegal.', 'description' => '请求中的端口范围非法,请检查输入参数。'], + ['errorCode' => 'QuotaExceeded.QuotaInsufficient', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额不足,已使用%s/%s。请在配额中心中修改配额大小。'], + ['errorCode' => 'Mismatch.Protocol', 'errorMessage' => 'The Protocol is mismatched for %s and %s.', 'description' => '监听和服务器组的协议不匹配。'], + ['errorCode' => 'ResourceNotEnough.CaCertificateApiCount', 'errorMessage' => 'The specified resource of CaCertificateApiCount is not enough.', 'description' => ''], + ['errorCode' => 'MissingParam.ServerGroupId', 'errorMessage' => 'The param of ServerGroupId is missing.', 'description' => '参数ServerGroupId缺失,请检查输入参数。'], + ['errorCode' => 'IllegalParam.ListenerDescription', 'errorMessage' => 'The parameter ListenerDescription of listener is illegal.', 'description' => '监听描述不符合输入要求,请根据错误中的详细信息进行修改。'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], + ['errorCode' => 'IllegalParam.IdleTimeout', 'errorMessage' => 'The param of IdleTimeout is illegal.', 'description' => '参数连接空闲超时时间配置非法。'], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => '参数%s缺失,请检查输入参数。'], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], + ['errorCode' => 'IllegalParamSize.certificateIds', 'errorMessage' => 'The param size of certificateIds or caCertificateIds is illegal.', 'description' => '证书的id只能有一个,请检查是否重复输入。'], + ['errorCode' => 'DuplicatedParam.listener', 'errorMessage' => 'The param of any port listener is duplicated.', 'description' => '只能创建一个anyport类型监听,请检查输入参数。'], + ['errorCode' => 'IllegalParam.PreserveClientIpSwitch', 'errorMessage' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.', 'description' => 'tcpssl监听关联的服务器组不支持开启客户端ip保持功能'], + ['errorCode' => 'OperationDenied.RegionNotSupportHDMonitor', 'errorMessage' => 'The operation is not allowed because of RegionNotSupportHDMonitor.', 'description' => '当前区域不支持秒级监控。'], + ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource of vSwitch is not found.', 'description' => '找不到指定的虚拟交换机资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => '找不到指定的服务器组资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.CaCertificate', 'errorMessage' => 'The specified resource of CaCertificate is not found.', 'description' => 'Ca证书不存在,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.HdMonitorConfigNotExist', 'errorMessage' => 'The specified resource of HdMonitorConfigNotExist is not found.', 'description' => 'HdMonitorConfig 不存在,请检查输入参数。'], + ], + ], + 'title' => '创建监听', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateListener'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateListener', + 'authLevel' => 'operate', + 'actionConditions' => [ + ['conditionKey' => 'nlb:ListenerProtocol', 'validationType' => 'always'], + ['conditionKey' => 'nlb:SecurityPolicyId', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Zones\\": [\\n {\\n \\"LocalName\\": \\"杭州 可用区G\\",\\n \\"ZoneId\\": \\"cn-hangzhou-g\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeZonesResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <Zones>\\n <LocalName>华东 1 可用区G</LocalName>\\n <ZoneId>cn-hangzhou-g</ZoneId>\\n </Zones>\\n</DescribeZonesResponse>","errorExample":""}]', - 'title' => '查询可用区', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@80\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateListenerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <ListenerId>lsn-bp1bpn0kn908w4nbw****</ListenerId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</CreateListenerResponse>","errorExample":""}]', ], 'CreateLoadBalancer' => [ 'summary' => '创建网络型负载均衡实例。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -604,9 +950,7 @@ 'riskType' => 'none', 'chargeType' => 'paid', 'abilityTreeCode' => '141875', - 'abilityTreeNodes' => [ - 'FEATUREslbS3YPBZ', - ], + 'abilityTreeNodes' => ['FEATUREslbS3YPBZ'], ], 'parameters' => [ [ @@ -624,14 +968,9 @@ [ 'name' => 'LoadBalancerName', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'NLB1', - ], + 'schema' => ['description' => '网络型负载均衡实例名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'NLB1'], ], [ 'name' => 'AddressType', @@ -667,12 +1006,7 @@ [ 'name' => 'VpcId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例的专有网络ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-bp1b49rqrybk45nio****', - ], + 'schema' => ['description' => '网络型负载均衡实例的专有网络ID。', 'type' => 'string', 'required' => true, 'example' => 'vpc-bp1b49rqrybk45nio****'], ], [ 'name' => 'ZoneMappings', @@ -685,68 +1019,31 @@ 'description' => '可用区及交换机映射列表。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', 'type' => 'object', 'properties' => [ - 'VSwitchId' => [ - 'description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。最多支持添加10个可用区。'."\n" - .'若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-sersdf****', - ], - 'ZoneId' => [ - 'description' => '网络型负载均衡实例的可用区ID。最多支持添加10个可用区。若当前地域支持2个及以上可用区,至少需要添加2个可用区。'."\n" - ."\n" - .'您可以通过调用[DescribeZones](~~443890~~)接口获取可用区ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou-a', - ], - 'PrivateIPv4Address' => [ - 'title' => '私网ip', - 'description' => 'IPv4 私网VIP地址。NLB对外提供服务的私网IPv4地址。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.10.1', - ], - 'AllocationId' => [ - 'title' => '公网ipId', - 'description' => '公网实例绑定的EIP实例ID,每个可用区对应1个EIP实例ID。最多支持添加10个可用区。若当前地域支持2个及以上可用区,至少需要添加2个可用区。', - 'type' => 'string', - 'required' => false, - 'example' => 'eip-bp1aedxso6u80u0qf****', - ], - 'Ipv6Address' => [ - 'description' => 'IPv6 VIP地址。NLB对外提供服务的IPv6地址。', - 'type' => 'string', - 'required' => false, - 'example' => '2408:400a:d5:3080:b409:840a:ca:e8e5', - ], + 'VSwitchId' => ['description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。最多支持添加10个可用区。'."\n" + .'若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', 'type' => 'string', 'required' => true, 'example' => 'vsw-sersdf****'], + 'ZoneId' => ['description' => '网络型负载均衡实例的可用区ID。最多支持添加10个可用区。若当前地域支持2个及以上可用区,至少需要添加2个可用区。'."\n" + ."\n" + .'您可以通过调用[DescribeZones](~~443890~~)接口获取可用区ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a'], + 'PrivateIPv4Address' => ['title' => '私网ip', 'description' => 'IPv4 私网VIP地址。NLB对外提供服务的私网IPv4地址。', 'type' => 'string', 'required' => false, 'example' => '192.168.10.1'], + 'AllocationId' => ['title' => '公网ipId', 'description' => '公网实例绑定的EIP实例ID,每个可用区对应1个EIP实例ID。最多支持添加10个可用区。若当前地域支持2个及以上可用区,至少需要添加2个可用区。', 'type' => 'string', 'required' => false, 'example' => 'eip-bp1aedxso6u80u0qf****'], + 'Ipv6Address' => ['description' => 'IPv6 VIP地址。NLB对外提供服务的IPv6地址。', 'type' => 'string', 'required' => false, 'example' => '2408:400a:d5:3080:b409:840a:ca:e8e5'], 'Ipv4LocalAddresses' => [ 'description' => 'IPv4 Local地址列表。NLB与后端服务交互的地址列表。'."\n" .'地址个数必须是偶数,且最少2个,最多8个。', 'type' => 'array', - 'items' => [ - 'description' => 'IPv4 Local地址。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.10.2', - ], + 'items' => ['description' => 'IPv4 Local地址。', 'type' => 'string', 'required' => false, 'example' => '192.168.10.2'], 'required' => false, - 'maxItems' => 8, - 'minItems' => 2, + 'maxItems' => 15, + 'minItems' => 1, ], 'Ipv6LocalAddresses' => [ 'description' => 'IPv6 Local地址列表。NLB与后端服务交互的地址列表。'."\n" .'地址个数必须是偶数,且最少2个,最多8个。', 'type' => 'array', - 'items' => [ - 'description' => 'IPv6 Local地址。', - 'type' => 'string', - 'required' => false, - 'example' => '2408:400a:d5:3080:b409:840a:ca:e8e6', - ], + 'items' => ['description' => 'IPv6 Local地址。', 'type' => 'string', 'required' => false, 'example' => '2408:400a:d5:3080:b409:840a:ca:e8e6'], 'required' => false, - 'maxItems' => 8, - 'minItems' => 2, + 'maxItems' => 15, + 'minItems' => 1, ], ], 'required' => false, @@ -759,12 +1056,7 @@ [ 'name' => 'BandwidthPackageId', 'in' => 'formData', - 'schema' => [ - 'description' => '公网类型实例关联的共享带宽包ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cbwp-bp1vevu8h3ieh****', - ], + 'schema' => ['description' => '公网类型实例关联的共享带宽包ID。', 'type' => 'string', 'required' => false, 'example' => 'cbwp-bp1vevu8h3ieh****'], ], [ 'name' => 'LoadBalancerBillingConfig', @@ -774,15 +1066,9 @@ 'description' => '网络型负载均衡实例计费配置。', 'type' => 'object', 'properties' => [ - 'PayType' => [ - 'title' => 'PrePay, PostPay', - 'description' => '网络型负载均衡实例的计费类型。'."\n" - ."\n" - .'仅取值**PostPay**:表示按量计费。', - 'type' => 'string', - 'required' => false, - 'example' => 'PostPay', - ], + 'PayType' => ['title' => 'PrePay, PostPay', 'description' => '网络型负载均衡实例的计费类型。'."\n" + ."\n" + .'仅取值**PostPay**:表示按量计费。', 'type' => 'string', 'required' => false, 'example' => 'PostPay'], ], 'required' => false, ], @@ -790,51 +1076,30 @@ [ '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' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会创建实例。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会创建实例。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ 'name' => 'DeletionProtectionConfig', @@ -844,21 +1109,11 @@ 'description' => '删除保护配置。', 'type' => 'object', 'properties' => [ - 'Enabled' => [ - 'description' => '删除保护状态,取值:'."\n" - ."\n" - .'- **true**:开启状态。'."\n" - .'- **false**(默认值):关闭状态。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'Reason' => [ - 'description' => '更改删除保护状态的原因。长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => '实例运行中', - ], + 'Enabled' => ['description' => '删除保护状态,取值:'."\n" + ."\n" + .'- **true**:开启状态。'."\n" + .'- **false**(默认值):关闭状态。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'Reason' => ['description' => '更改删除保护状态的原因。长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'Instance is running'], ], 'required' => false, ], @@ -871,25 +1126,15 @@ 'description' => '修改保护配置。', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '网络型负载均衡修改保护状态。取值:'."\n" - ."\n" - .'- **NonProtection**:不保护,表示不允许传入保护配置的**Reason**。如果配置了保护配置的**Reason**,则清空其配置信息。'."\n" - .'- **ConsoleProtection**:控制台修改保护,此时允许传入保护配置的**Reason**。'."\n" - ."\n" - .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'ConsoleProtection', - ], - 'Reason' => [ - 'description' => '输入开启修改保护的原因。长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" - ."\n" - .'> 仅在**Status**为**ConsoleProtection**时有效且合法。', - 'type' => 'string', - 'required' => false, - 'example' => '业务保障期', - ], + 'Status' => ['description' => '网络型负载均衡修改保护状态。取值:'."\n" + ."\n" + .'- **NonProtection**:不保护,表示不允许传入保护配置的**Reason**。如果配置了保护配置的**Reason**,则清空其配置信息。'."\n" + .'- **ConsoleProtection**:控制台修改保护,此时允许传入保护配置的**Reason**。'."\n" + ."\n" + .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', 'type' => 'string', 'required' => false, 'example' => 'ConsoleProtection'], + 'Reason' => ['description' => '输入开启修改保护的原因。长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" + ."\n" + .'> 仅在**Status**为**ConsoleProtection**时有效且合法。', 'type' => 'string', 'required' => false, 'example' => 'Business protection period'], ], 'required' => false, ], @@ -906,22 +1151,12 @@ 'description' => '标签。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持64个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" - ."\n" - .'一次调用最多支持添加20个标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" - ."\n" - .'一次调用最多支持添加20个标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], + 'Key' => ['description' => '标签键。最多支持64个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" + ."\n" + .'一次调用最多支持添加20个标签。', 'type' => 'string', 'required' => false, 'example' => 'env'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" + ."\n" + .'一次调用最多支持添加20个标签。', 'type' => 'string', 'required' => false, 'example' => 'product'], ], 'required' => false, ], @@ -937,156 +1172,50 @@ 'description' => 'response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'LoadbalancerId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'OrderId' => [ - 'description' => '网络型负载均衡实例的订单ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20230000', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'LoadbalancerId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****'], + 'OrderId' => ['description' => '网络型负载均衡实例的订单ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '20230000'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.OnlyPayByTrafficSupported', - 'errorMessage' => 'The operation is not allowed because of OnlyPayByTrafficSupported.', - ], - [ - 'errorCode' => 'OperationFailed.%s', - 'errorMessage' => 'The operation failed because of %s.', - ], - [ - 'errorCode' => 'Mismatch.ZoneIdAndVswitchId', - 'errorMessage' => 'The ZoneIdAndVswitchId is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'QuotaExceeded.%s', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'OperationDenied.OnlyPostPaidSupported', - 'errorMessage' => 'The operation is not allowed because of OnlyPostPaidSupported.', - ], - [ - 'errorCode' => 'OperationFailed.DuplicateZones.', - 'errorMessage' => 'The operation failed because of Can not Specify duplicate zones.', - ], - [ - 'errorCode' => 'ResourceNotEnough.VSwitchIp', - 'errorMessage' => 'The specified resource of VSwitchIp is not enough.', - ], - [ - 'errorCode' => 'DuplicatedParam.AllocationId', - 'errorMessage' => 'The param of AllocationId is duplicated.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.VswitchId', - 'errorMessage' => 'The specified resource of VswitchId is being configured, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.UnpaidBill', - 'errorMessage' => 'The operation failed because of UnpaidBill.', - ], - [ - 'errorCode' => 'OperationDenied.ServiceLinkedRoleNotExist', - 'errorMessage' => 'The operation is not allowed because of ServiceLinkedRoleNotExist.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.AllocationId', - 'errorMessage' => 'The specified resource of %s is already associated.', - ], - [ - 'errorCode' => 'OperationFailed.vSwitchNotSupportIpv6', - 'errorMessage' => 'The operation failed because of vSwitchNotSupportIpv6.', - ], - [ - 'errorCode' => 'InvalidZones', - 'errorMessage' => 'The current zone list is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded.QuotaInsufficient', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceInUse.IP', - 'errorMessage' => 'The specified resource of IP is in use.', - ], - [ - 'errorCode' => 'OperationFailed.CreateOrderError', - 'errorMessage' => 'Operation failed because CreateOrderError.', - ], - [ - 'errorCode' => 'OperationFailed.NotExist.ResourceGroup', - 'errorMessage' => 'Operation failed because ResourceGroup not exist.', - ], - [ - 'errorCode' => 'IllegalParam.loadBalancerName', - 'errorMessage' => 'Param loadBalancerName is illegal.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', - ], - [ - 'errorCode' => 'IllegalParam.DeletionProtectionConfig', - 'errorMessage' => 'DeletionProtectionConfig reason is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.ModificationProtectionConfig', - 'errorMessage' => 'ModificationProtectionConfig reason is illegal.', - ], - [ - 'errorCode' => 'Throttling.User', - 'errorMessage' => 'Request was denied due to api flow control.', - ], + ['errorCode' => 'OperationDenied.OnlyPayByTrafficSupported', 'errorMessage' => 'The operation is not allowed because of OnlyPayByTrafficSupported.', 'description' => '由于仅支持按流量计费,因此不允许进行此操作。'], + ['errorCode' => 'OperationFailed.%s', 'errorMessage' => 'The operation failed because of %s.', 'description' => '因为%操作当前API失败'], + ['errorCode' => 'Mismatch.ZoneIdAndVswitchId', 'errorMessage' => 'The ZoneIdAndVswitchId is mismatched for %s and %s.', 'description' => 'ZoneId和VswitchId缺失,请检查输入参数。'], + ['errorCode' => 'QuotaExceeded.%s', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '%s的配额超过限制,已使用%s/%s'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], + ['errorCode' => 'OperationDenied.OnlyPostPaidSupported', 'errorMessage' => 'The operation is not allowed because of OnlyPostPaidSupported.', 'description' => '由于仅支持后付费,因此不允许进行此操作。'], + ['errorCode' => 'OperationFailed.DuplicateZones.', 'errorMessage' => 'The operation failed because of Can not Specify duplicate zones.', 'description' => '由于指定了重复的可用区,操作失败。请修改参数。'], + ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource of VSwitchIp is not enough.', 'description' => '所指定的虚拟交换机(vSwitch) IP资源不足。'], + ['errorCode' => 'DuplicatedParam.AllocationId', 'errorMessage' => 'The param of AllocationId is duplicated.', 'description' => 'AllocationId参数重复,请检查参数。'], + ['errorCode' => 'ResourceInConfiguring.VswitchId', 'errorMessage' => 'The specified resource of VswitchId is being configured, please try again later.', 'description' => '正在配置指定的虚拟交换机资源,请稍后重试。'], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], + ['errorCode' => 'OperationFailed.UnpaidBill', 'errorMessage' => 'The operation failed because of UnpaidBill.', 'description' => '您有欠费账单,不符合购买条件。请先充值结清账单后再购买。'], + ['errorCode' => 'OperationDenied.ServiceLinkedRoleNotExist', 'errorMessage' => 'The operation is not allowed because of ServiceLinkedRoleNotExist.', 'description' => '由于服务关联角色不存在(ServiceLinkedRoleNotExist),不允许进行此操作。请检查RAM中是否给NLB进行了授权。'], + ['errorCode' => 'ResourceAlreadyAssociated.AllocationId', 'errorMessage' => 'The specified resource of %s is already associated.', 'description' => '指定的资源AllocationId已经被关联。'], + ['errorCode' => 'OperationFailed.vSwitchNotSupportIpv6', 'errorMessage' => 'The operation failed because of vSwitchNotSupportIpv6.', 'description' => '所使用的虚拟交换机(vSwicth)不支持ipv6协议,请确认输入参数。'], + ['errorCode' => 'InvalidZones', 'errorMessage' => 'The current zone list is illegal.', 'description' => 'Zone maping中使用的可用区非法。'], + ['errorCode' => 'QuotaExceeded.QuotaInsufficient', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额不足,已使用%s/%s。请在配额中心中修改配额大小。'], + ['errorCode' => 'ResourceInUse.IP', 'errorMessage' => 'The specified resource of IP is in use.', 'description' => '传入的IP不能是NLB的eni地址,请检查参数。'], + ['errorCode' => 'OperationFailed.CreateOrderError', 'errorMessage' => 'Operation failed because CreateOrderError.', 'description' => '因为创建订单失败,所以操作失败。'], + ['errorCode' => 'OperationFailed.NotExist.ResourceGroup', 'errorMessage' => 'Operation failed because ResourceGroup not exist.', 'description' => '指定的资源组不存在。'], + ['errorCode' => 'IllegalParam.loadBalancerName', 'errorMessage' => 'Param loadBalancerName is illegal.', 'description' => '实例名称非法,请检查参数。'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => '参数%s缺失,请检查输入参数。'], + ['errorCode' => 'IllegalParam.DeletionProtectionConfig', 'errorMessage' => 'DeletionProtectionConfig reason is illegal.', 'description' => '更改删除保护状态原因参数非法。'], + ['errorCode' => 'IllegalParam.ModificationProtectionConfig', 'errorMessage' => 'ModificationProtectionConfig reason is illegal.', 'description' => '修改保护原因参数非法。'], + ['errorCode' => 'Throttling.User', 'errorMessage' => 'Request was denied due to api flow control.', 'description' => '由于触发流控,请求被拒绝。'], ], 403 => [ - [ - 'errorCode' => 'UnauthorizedZone', - 'errorMessage' => 'The specified zone of %s is not authorized.', - ], - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - [ - 'errorCode' => 'UnauthorizedRegion', - 'errorMessage' => 'The specified region of %s is not authorized.', - ], + ['errorCode' => 'UnauthorizedZone', 'errorMessage' => 'The specified zone of %s is not authorized.', 'description' => '指定的可用区%s未被授权使用'], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ['errorCode' => 'UnauthorizedRegion', 'errorMessage' => 'The specified region of %s is not authorized.', 'description' => '当前region还没有获得授权。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource of vSwitch is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Vpc', - 'errorMessage' => 'The specified resource of Vpc is not found.', - ], + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource of vSwitch is not found.', 'description' => '找不到指定的虚拟交换机资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.Vpc', 'errorMessage' => 'The specified resource of Vpc is not found.', 'description' => '找不到指定的VPC资源,请检查输入参数。'], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"LoadbalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"OrderId\\": 20230000\\n}","errorExample":""},{"type":"xml","example":"<CreateLoadBalancerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <LoadbalancerId>nlb-83ckzc8d4xlp8o****</LoadbalancerId>\\n <OrderId>20230000</OrderId>\\n</CreateLoadBalancerResponse>","errorExample":""}]', @@ -1095,16 +1224,36 @@ .'- **CreateLoadBalancer**接口属于异步接口,即系统返回一个实例ID,但该网络型负载均衡实例尚未创建成功,系统后台的创建任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~445873~~)查询网络型负载均衡实例的创建状态:'."\n" .' - 当网络型负载均衡实例处于**Provisioning**状态时,表示网络型负载均衡实例正在创建中。'."\n" .' - 当网络型负载均衡实例处于**Active**状态时,表示网络型负载均衡实例创建成功。', - ], - 'DeleteLoadBalancer' => [ - 'summary' => '删除网络型负载均衡实例。', - 'methods' => [ - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateLoadBalancer'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nlb:AddressType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/*'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'EipAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], + ], + ], ], + ], + 'CreateSecurityPolicy' => [ + 'summary' => '在指定地域创建TCPSSL监听的自定义安全策略。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1113,135 +1262,225 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', + 'abilityTreeCode' => '141883', + 'abilityTreeNodes' => ['FEATUREslbAZREFH'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'TlsVersions', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', + 'description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。', + 'type' => 'array', + 'items' => ['description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。最多支持添加4个TLS协议版本。', 'type' => 'string', 'required' => false, 'example' => 'TLSv1.0'], 'required' => true, - 'example' => 'nlb-wb7r6dlwetvt5j****', + 'maxItems' => 4, + 'minItems' => 1, ], ], [ - 'name' => 'DryRun', + 'name' => 'SecurityPolicyName', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会删除实例。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '安全策略名称。'."\n" + ."\n" + .'长度为1~200个字符,支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'TLSCipherPolicy'], ], [ - 'name' => 'ClientToken', + 'name' => 'ResourceGroupId', + 'in' => 'formData', + 'schema' => ['description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], + ], + [ + 'name' => 'Ciphers', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + 'description' => '支持的加密套件列表,具体依赖TLSVersion值。最多支持添加32个加密套件。'."\n" ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + .'TLSv1.0和TLSv1.1 支持:'."\n" + .'- **ECDHE-ECDSA-AES128-SHA**'."\n" + .'- **ECDHE-ECDSA-AES256-SHA**'."\n" + .'- **ECDHE-RSA-AES128-SHA**'."\n" + .'- **ECDHE-RSA-AES256-SHA**'."\n" + .'- **AES128-SHA**'."\n" + .'- **AES256-SHA**'."\n" + .'- **DES-CBC3-SHA**'."\n" ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + .'TLSv1.2支持:'."\n" + .'- **ECDHE-ECDSA-AES128-SHA**'."\n" + .'- **ECDHE-ECDSA-AES256-SHA**'."\n" + .'- **ECDHE-RSA-AES128-SHA**'."\n" + .'- **ECDHE-RSA-AES256-SHA**'."\n" + .'- **AES128-SHA**'."\n" + .'- **AES256-SHA**'."\n" + .'- **DES-CBC3-SHA**'."\n" + .'- **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" + .'- **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" + .'- **ECDHE-ECDSA-AES128-SHA256**'."\n" + .'- **ECDHE-ECDSA-AES256-SHA384**'."\n" + .'- **ECDHE-RSA-AES128-GCM-SHA256**'."\n" + .'- **ECDHE-RSA-AES256-GCM-SHA384**'."\n" + .'- **ECDHE-RSA-AES128-SHA256**'."\n" + .'- **ECDHE-RSA-AES256-SHA384**'."\n" + .'- **AES128-GCM-SHA256**'."\n" + .'- **AES256-GCM-SHA384**'."\n" + .'- **AES128-SHA256**'."\n" + .'- **AES256-SHA256**'."\n" + .'- **ECDHE-ECDSA-CHACHA20-POLY1305**'."\n" + .'- **ECDHE-RSA-CHACHA20-POLY1305**'."\n" + ."\n" + .'TLSv1.3支持:'."\n" + .'- **TLS_AES_128_GCM_SHA256**'."\n" + .'- **TLS_AES_256_GCM_SHA384**'."\n" + .'- **TLS_CHACHA20_POLY1305_SHA256**'."\n" + .'- **TLS_AES_128_CCM_SHA256**'."\n" + .'- **TLS_AES_128_CCM_8_SHA256**', + 'type' => 'array', + 'items' => ['description' => '支持的加密套件列表,具体依赖TLSVersion值。最多支持添加32个加密套件。'."\n" + ."\n" + .'TLSv1.0和TLSv1.1 支持:'."\n" + .'- **ECDHE-ECDSA-AES128-SHA**'."\n" + .'- **ECDHE-ECDSA-AES256-SHA**'."\n" + .'- **ECDHE-RSA-AES128-SHA**'."\n" + .'- **ECDHE-RSA-AES256-SHA**'."\n" + .'- **AES128-SHA**'."\n" + .'- **AES256-SHA**'."\n" + .'- **DES-CBC3-SHA**'."\n" + ."\n" + .'TLSv1.2支持:'."\n" + .'- **ECDHE-ECDSA-AES128-SHA**'."\n" + .'- **ECDHE-ECDSA-AES256-SHA**'."\n" + .'- **ECDHE-RSA-AES128-SHA**'."\n" + .'- **ECDHE-RSA-AES256-SHA**'."\n" + .'- **AES128-SHA**'."\n" + .'- **AES256-SHA**'."\n" + .'- **DES-CBC3-SHA**'."\n" + .'- **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" + .'- **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" + .'- **ECDHE-ECDSA-AES128-SHA256**'."\n" + .'- **ECDHE-ECDSA-AES256-SHA384**'."\n" + .'- **ECDHE-RSA-AES128-GCM-SHA256**'."\n" + .'- **ECDHE-RSA-AES256-GCM-SHA384**'."\n" + .'- **ECDHE-RSA-AES128-SHA256**'."\n" + .'- **ECDHE-RSA-AES256-SHA384**'."\n" + .'- **AES128-GCM-SHA256**'."\n" + .'- **AES256-GCM-SHA384**'."\n" + .'- **AES128-SHA256**'."\n" + .'- **AES256-SHA256**'."\n" + .'- **ECDHE-ECDSA-CHACHA20-POLY1305**'."\n" + .'- **ECDHE-RSA-CHACHA20-POLY1305**'."\n" + ."\n" + .'TLSv1.3支持:'."\n" + .'- **TLS_AES_128_GCM_SHA256**'."\n" + .'- **TLS_AES_256_GCM_SHA384**'."\n" + .'- **TLS_CHACHA20_POLY1305_SHA256**'."\n" + .'- **TLS_AES_128_CCM_SHA256**'."\n" + .'- **TLS_AES_128_CCM_8_SHA256**', 'type' => 'string', 'required' => false, 'example' => 'ECDHE-ECDSA-AES128-SHA'], + 'required' => true, + 'maxItems' => 32, ], ], [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会创建自定义安全策略。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + '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' => 'RegionId', 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'Tag', + 'in' => 'formData', + 'allowEmptyValue' => true, + 'style' => 'repeatList', 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。最多支持64个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" + ."\n" + .'一次调用最多支持添加20个标签。', 'type' => 'string', 'required' => false, 'example' => 'KeyTest'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" + ."\n" + .'一次调用最多支持添加20个标签。', 'type' => 'string', 'required' => false, 'example' => 'ValueTest'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'cn-hangzhou', + 'maxItems' => 20, ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => '删除网络型负载均衡实例。', + 'title' => 'RpcResponse<CreateSecurityPolicyResponse>', + 'description' => '创建自定义安全策略。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF'], + 'SecurityPolicyId' => ['description' => 'TLS安全策略ID。', 'type' => 'string', 'example' => 'sp-wuytp9pa******'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.%s', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], - [ - 'errorCode' => 'ResourceInCreating.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'OperationDenied.DeletionProtectionEnabled', - 'errorMessage' => 'The operation is not allowed because of DeletionProtectionEnabled.', - ], - [ - 'errorCode' => 'IncorrectStatus.loadbalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicyId\\": \\"sp-wuytp9pa******\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateSecurityPolicyResponse>\\n <RequestId>D7A8875F-373A-5F48-8484-25B07A61F2AF</RequestId>\\n <SecurityPolicyId>tls-bp14bb1e7dll4f****</SecurityPolicyId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</CreateSecurityPolicyResponse>","errorExample":""}]', + 'title' => '创建自定义安全策略', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateSecurityPolicy'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteLoadBalancerResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DeleteLoadBalancerResponse>","errorExample":""}]', - 'title' => '删除负载均衡实例', ], - 'UpdateLoadBalancerAddressTypeConfig' => [ - 'summary' => '变更网络型负载均衡NLB实例的IPv4地址的网络类型。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateServerGroup' => [ + 'summary' => '在指定地域创建服务器组。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1250,734 +1489,457 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '141880', - 'abilityTreeNodes' => [ - 'FEATUREslb12YEWG', - 'FEATUREslb4N3NIV', - ], + 'abilityTreeCode' => '141881', + 'abilityTreeNodes' => ['FEATUREslbVDXH6N'], ], 'parameters' => [ [ - 'name' => 'LoadBalancerId', - 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - ], - [ - 'name' => 'AddressType', + 'name' => 'ServerGroupType', 'in' => 'formData', 'schema' => [ - 'description' => '目标网络类型。取值:'."\n" + 'title' => '服务器组类型', + 'description' => '服务器组类型。取值:'."\n" ."\n" - .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', + .'- **Instance**(默认值):服务器类型,该类型服务器组支持添加**Ecs**、**Eni**、**Eci**类型实例。'."\n" + ."\n" + .'- **Ip**:IP地址类型,该类型服务器组支持直接添加IP地址类型的后端服务器。', 'type' => 'string', - 'required' => true, - 'example' => 'Internet', + 'required' => false, + 'example' => 'Instance', + 'default' => 'Instance', 'enum' => [], ], ], [ - 'name' => 'ZoneMappings', + 'name' => 'ServerGroupName', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '可用区及交换机映射列表,最多支持10个可用区。', - 'type' => 'array', - 'items' => [ - 'description' => '可用区及交换机映射列表。', - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。', - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-bp10ttov87felojcn****', - ], - 'ZoneId' => [ - 'description' => '网络型负载均衡实例的可用区ID。'."\n" - ."\n" - .'您可以通过调用[DescribeZones](~~443890~~)接口获取可用区ID对应的可用区信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou-a', - ], - 'AllocationId' => [ - 'title' => '公网ipId', - 'description' => '弹性公网IP实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'eip-bp1aedxso6u80u0qf****', - ], - 'EipType' => [ - 'description' => '公网EIP的类型。取值:'."\n" - ."\n" - .'- **Common**:弹性公网IP,简称EIP。'."\n" - .'- **Anycast**:任播弹性公网IP,简称Anycast EIP。'."\n" - ."\n" - .'> **AddressType**配置为**Internet**时,需要配置该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'Common', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['title' => '服务器组名称', 'description' => '服务器组名称。'."\n" + ."\n" + .'长度为2~128个字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => true, 'example' => 'NLB_ServerGroup'], ], [ - 'name' => 'DryRun', + 'name' => 'AddressIPVersion', 'in' => 'formData', 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" + 'description' => '协议版本。取值:'."\n" + ."\n" + .'- **ipv4**(默认值):IPv4类型。'."\n" ."\n" - .'- **true**:发送检查请求,不会更新实例的网络类型。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', + .'- **DualStack**:双栈类型。', + 'type' => 'string', 'required' => false, - 'example' => 'false', - 'default' => 'false', + 'example' => 'ipv4', + 'default' => 'Ipv4', + 'enum' => [], ], ], [ - 'name' => 'ClientToken', + 'name' => 'IpVersionAffinityMode', 'in' => 'formData', 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + 'title' => '', + 'description' => '双栈模式下的流量调度策略:'."\n" ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', + .'- NonAffinity(默认):无亲和模式,转发时不区分来源的IP协议版本,按照调度算法向健康的后端转发。'."\n" + .'- Affinity:亲和模式,转发时根据请求来源的IP协议版本亲和转发,IPv4请求仅转发至IPv4后端,IPv6请求仅转发至IPv6后端。'."\n" + .'> 仅**AddressIPVersion**为**DualStack**时,该参数生效。', 'type' => 'string', 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'example' => 'Affinity', + 'enum' => ['NonAffinity', 'Affinity'], ], ], [ - 'name' => 'RegionId', + 'name' => 'Protocol', 'in' => 'formData', 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" + 'title' => '后端服务器类型', + 'description' => '转发到后端服务器使用的通信协议。取值:'."\n" ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', + .'- **TCP**(默认值)'."\n" + .'- **UDP**'."\n" + .'- **TCP_UDP**'."\n" + .'> '."\n" + .'> - 当该参数取值为**UDP**时,该服务器组只支持关联**UDP**监听。'."\n" + .'> - 当该参数取值为**TCP**且**PreserveClientIpEnabled**取值为**true**时,该服务器组只支持关联**TCP**监听。'."\n" + .'> - 当该参数取值为**TCP**且**PreserveClientIpEnabled**取值为**false**时,该服务器组支持关联**TCPSSL**监听和**TCP**监听。'."\n" + .'> - 当该参数取值为**TCP_UDP**时,该服务器组支持关联**TCP**监听和**UDP**监听。', 'type' => 'string', 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'headers' => [], - 'schema' => [ - 'title' => 'response', - 'description' => '变更NLB实例的IPv4地址的网络类型。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'DuplicatedParam.AllocationId', - 'errorMessage' => 'The param of AllocationId is duplicated.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], - [ - 'errorCode' => 'OperationDenied.EipAlreadyInBandwidthPackage', - 'errorMessage' => 'The operation is not allowed because of EipAlreadyInBandwidthPackage.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.%s', - 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', - ], - [ - 'errorCode' => 'OperationDenied.AddressTypeNotChanged', - 'errorMessage' => 'The operation is not allowed because of AddressTypeNotChanged.', - ], - [ - 'errorCode' => 'Mismatch.ZoneIdAndVswitchId', - 'errorMessage' => 'The ZoneIdAndVswitchId is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'TagInvokeError', - 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'Throttling.User', - 'errorMessage' => 'Request was denied due to api flow control.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + 'example' => 'TCP', + 'default' => 'Tcp', + 'enum' => [], ], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.AnycastInstance', - 'errorMessage' => 'The specified resource of AnycastInstance is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerAddressTypeConfigResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateLoadBalancerAddressTypeConfigResponse>","errorExample":""}]', - 'title' => '变更网络类型配置', - 'description' => '- 您已创建NLB实例,请参见[CreateLoadBalancer](~~445868~~)。'."\n" - .'- 您可以通过[GetLoadBalancerAttribute](~~445873~~)接口查询变更后NLB实例的**AddressType**取值。'."\n" - .'- **UpdateLoadBalancerAddressTypeConfig**属于异步接口,即系统返回一个请求ID,但该NLB实例IPv4地址的网络类型尚未变更成功,系统后台的变更任务仍在进行。您可以调用[GetJobStatus](~~445904~~)查询IPv4地址网络类型变更状态:'."\n" - .' - 当任务状态处于**Succeeded**时,表示实例IPv4地址的网络类型变更成功。'."\n" - .' - 当任务状态处于**Processing**时,表示实例IPv4地址的网络类型变更中,在该状态下,您只能执行查询操作,不能执行其他操作。', - ], - 'UpdateLoadBalancerAttribute' => [ - 'summary' => '更新网络型负载均衡实例名称等属性。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '141877', - 'abilityTreeNodes' => [ - 'FEATUREslb12YEWG', - 'FEATUREslb4N3NIV', - ], - ], - 'parameters' => [ - [ - 'name' => 'LoadBalancerId', + 'name' => 'VpcId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例的ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-wb7r6dlwetvt5j****', - ], + 'schema' => ['title' => '服务器组所在vpc的id', 'description' => '服务器组所在VPC的ID。'."\n" + ."\n" + .'> 如果**ServerGroupType**取值为**Instance**时,只有该VPC下的服务器可以加入到该服务器组。', 'type' => 'string', 'required' => true, 'example' => 'vpc-bp15zckdt37pq72zv****'], ], [ - 'name' => 'LoadBalancerName', + 'name' => 'AnyPortEnabled', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'NLB1', - ], + 'schema' => ['description' => '是否开启全端口转发。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**(默认值):关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], ], [ - 'name' => 'CrossZoneEnabled', + 'name' => 'ConnectionDrainEnabled', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例是否开启跨可用区。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '是否开启连接优雅中断', 'description' => '是否开启连接优雅中断。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**(默认值):关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], ], [ - 'name' => 'DryRun', + 'name' => 'ConnectionDrainTimeout', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会更新实例信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['title' => '连接优雅中断超时时间', 'description' => '设置连接优雅中断超时时间。单位:秒。'."\n" + .'取值范围:**0**~**900**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3600', 'minimum' => '0', 'example' => '10', 'default' => '10'], ], [ - 'name' => 'ClientToken', + 'name' => 'Scheduler', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['title' => '调度类型', 'description' => '调度算法。取值:'."\n" + ."\n" + .'- **Wrr**(默认值):加权轮询,权重值越高的后端服务器,被轮询到的概率也越高。'."\n" + ."\n" + .'- **Wlc**:加权最小连接数,除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的概率也越高。'."\n" + ."\n" + .'- **rr**:轮询,按照访问顺序依次将外部请求分发到后端服务器。'."\n" + ."\n" + .'- **sch**:源IP哈希:相同的源地址会调度到相同的后端服务器。'."\n" + ."\n" + .'- **tch**:四元组哈希,基于四元组(源IP、目的IP、源端口和目的端口)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n" + ."\n" + .'- **qch**:QUIC ID哈希,支持将同一个QUIC ID的请求哈希到同一台后端服务器上。'."\n" + ."\n" + .'> 仅后端协议为UDP时,支持选择QUIC ID哈希。', 'type' => 'string', 'required' => false, 'example' => 'Wrr', 'default' => 'wrr'], ], [ - 'name' => 'RegionId', + 'name' => 'PreserveClientIpEnabled', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-beijing', - ], + 'schema' => ['description' => '是否开启客户端地址保持功能。取值:'."\n" + ."\n" + .'- **true**(默认值):开启。'."\n" + .'- **false**:关闭。'."\n" + ."\n\n" + .'> '."\n" + .'> 当**Protocol**取值为**TCP**且该参数取值为**true**时,该服务器组不支持关联**TCPSSL**监听。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'Cps', + 'name' => 'HealthCheckConfig', 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'description' => '网络型负载均衡实例在每个可用区(VIP)处理的每秒新建连接限速值。取值范围:**1**~**1000000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'response', - 'description' => '更新网络型负载均衡实例名称等属性。', + 'title' => '健康检查配置', + 'description' => '健康检查相关配置。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', + 'HealthCheckEnabled' => ['title' => '是否开启健康检查', 'description' => '是否开启健康检查,取值:'."\n" + ."\n" + .'- **true**(默认值):开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'HealthCheckType' => ['title' => '健康检查协议类型', 'description' => '健康检查协议。取值:'."\n" + ."\n" + .'- **TCP**'."\n" + .'- **HTTP**'."\n" + .'- **UDP**', 'type' => 'string', 'required' => false, 'example' => 'TCP'], + 'HealthCheckConnectPort' => ['title' => '健康检查使用的端口', 'description' => '健康检查的后端服务器的端口。'."\n" + ."\n" + .'取值范围: **0**~**65535**。'."\n" + ."\n" + .'默认值:**0**,表示使用后端服务器的端口进行健康检查。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + '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'], + 'HealthCheckConnectTimeout' => ['title' => '健康检查响应的最大超时时间', 'description' => '健康检查响应的最大超时时间。单位:秒。'."\n" + .'取值范围:**1**~**300**。'."\n" + .'默认值:**5**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'], + 'HealthCheckInterval' => ['title' => '健康检查时间间隔', 'description' => '健康检查的时间间隔。单位:秒。默认值:**5**'."\n" + ."\n" + .'- **HealthCheckType**为**TCP**或者**HTTP**时,取值范围为:**1**~**50**。'."\n" + .'- **HealthCheckType**为**UDP**时,取值范围为:**1**~**300**,您需要设置间隔时间>=响应超时时间,以确保UDP探测回包不会因为超时而被误判为未响应。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'], + 'HealthCheckDomain' => ['title' => '健康检查的域名', 'description' => '用于健康检查的域名。取值:'."\n" + ."\n" + .'- **$SERVER_IP**:使用后端服务器内网IP。'."\n" + ."\n" + .'- **domain**:指定特定域名。长度限制1~80个字符,只能使用大小写字母、数字、短划线(-)、半角句号(.)。'."\n" + ."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => '$SERVER_IP'], + 'HealthCheckUrl' => ['title' => '健康检查的url', 'description' => '健康检查路径。'."\n" + ."\n" + .'长度为1~80个字符,只能使用大小写英文字母、数字、字符`-/.%?#&`。 必须以正斜线(/)开头。'."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => '/test/index.html'], + 'HealthCheckHttpCode' => [ + 'title' => '状态码,多个状态码用逗号分隔', + 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n" + .'取值:**http\\_2xx**(默认值)、**http\\_3xx**、**http\\_4xx**和**http\\_5xx**。'."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', + 'type' => 'array', + 'items' => ['description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n" + .'取值:**http\\_2xx**(默认值)、**http\\_3xx**、**http\\_4xx**和**http\\_5xx**。'."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'http_2xx'], + 'required' => false, + ], + 'HttpCheckMethod' => [ + 'description' => '健康检查方法,取值:**GET**(默认值)或**HEAD**。'."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', - 'example' => '7294679F-08DE-16D4-8E5D-1625685DC10B', + 'required' => false, + 'example' => 'GET', + 'enum' => [], ], - 'JobId' => [ - 'description' => '异步任务ID。', + 'HealthCheckReq' => ['description' => 'UDP 监听健康检查的请求字符串,只允许包含字母、数字,最大长度限制为 512 个字符。', 'type' => 'string', 'required' => false, 'example' => 'hello'], + 'HealthCheckExp' => ['description' => 'UDP 监听健康检查的请求字符串,只允许包含字母、数字,最大长度限制为 512 个字符。', 'type' => 'string', 'required' => false, 'example' => 'ok'], + 'HealthCheckHttpVersion' => [ + 'description' => '健康检查HTTP协议版本,取值:**HTTP1.0**(默认值)或**HTTP1.1**。'."\n" + ."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', - 'example' => 'aab74cfa-3bc4-48fc-80fc-0101da5a****', + 'required' => false, + 'example' => 'HTTP1.0', + 'enum' => ['HTTP1.0', 'HTTP1.1'], ], ], + 'required' => false, ], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IllegalParam.loadBalancerName', - 'errorMessage' => 'Param loadBalancerName is illegal.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'formData', + 'schema' => ['description' => '服务器组所属的资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会创建服务器组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7294679F-08DE-16D4-8E5D-1625685DC10B\\",\\n \\"JobId\\": \\"aab74cfa-3bc4-48fc-80fc-0101da5a****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerAttributeResponse>\\n <RequestId>7294679F-08DE-16D4-8E5D-1625685DC10B</RequestId>\\n <JobId>aab74cfa-3bc4-48fc-80fc-0101da5a****</JobId>\\n</UpdateLoadBalancerAttributeResponse>","errorExample":""}]', - 'title' => '更新负载均衡实例属性', - ], - 'UpdateLoadBalancerZones' => [ - 'summary' => '修改网络型负载均衡实例可用区及可用区属性。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'ZoneMappings', + 'name' => 'Tag', 'in' => 'formData', + 'allowEmptyValue' => true, 'style' => 'repeatList', 'schema' => [ - 'description' => '可用区及交换机映射列表,最多支持添加10个可用区。', + 'description' => '标签列表。', 'type' => 'array', 'items' => [ - 'description' => '可用区及交换机映射列表,最多支持添加10个可用区。', + 'description' => '标签。', 'type' => 'object', 'properties' => [ - 'VSwitchId' => [ - 'description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-bp1rmcrwg3erh1fh8****', - ], - 'ZoneId' => [ - 'description' => '可用区ID,您可以通过调用[DescribeZones](~~443890~~)接口获取。'."\n" - ."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou-a', - ], - 'PrivateIPv4Address' => [ - 'title' => '私网ip', - 'description' => '私网IP地址。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.36.16', - ], - 'AllocationId' => [ - 'title' => '公网ipId', - 'description' => '弹性公网IP或任播弹性公网IP的实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'eip-bp1aedxso6u80u0qf****', - ], - 'EipType' => [ - 'description' => '公网EIP的类型。取值:'."\n" - ."\n" - .'- **Common**:弹性公网IP,简称EIP。'."\n" - .'- **Anycast**:任播弹性公网IP,简称Anycast EIP。'."\n" - ."\n" - .'> 支持绑定Anycast EIP的地域见[使用限制'."\n" - .'](~~470000~~),**AddressType**配置为**Internet**时,需要配置该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'Common', - ], + 'Key' => ['description' => '标签键。最多支持64个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" + ."\n" + .'一次调用最多支持添加20个标签。', 'type' => 'string', 'required' => false, 'example' => 'env'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" + ."\n" + .'一次调用最多支持添加20个标签。', 'type' => 'string', 'required' => false, 'example' => 'product'], ], 'required' => false, ], - 'required' => true, - 'maxItems' => 10, - 'minItems' => 1, - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会修改实例可用区属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP_2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'formData', - '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' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', 'required' => false, - 'example' => 'cn-hangzhou', + 'maxItems' => 20, ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => 'response', + 'title' => 'RpcResponse<CreateServerGroupResponse>', + 'description' => '创建服务器组。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceInCreating.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', - ], - [ - 'errorCode' => 'OperationDenied.ProtectedPrivateIPv4AddressChanged', - 'errorMessage' => 'The operation is not allowed because of ProtectedPrivateIPv4AddressChanged.', - ], - [ - 'errorCode' => 'OperationFailed.vSwitchNotSupportIpv6', - 'errorMessage' => 'The operation failed because of vSwitchNotSupportIpv6.', - ], - [ - 'errorCode' => 'OperationDenied.%s', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.ZoneVSwitchChanged', - 'errorMessage' => 'The operation is not allowed because of ZoneVSwitchChanged.', - ], - [ - 'errorCode' => 'InvalidZones', - 'errorMessage' => 'The current zone list is illegal.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'ResourceNotEnough.VSwitchIp', - 'errorMessage' => 'The specified resource of VSwitchIp is not enough.', - ], + ['errorCode' => 'IllegalParam.AnyPortServerGroupConflictWithHealthCheckConfig', 'errorMessage' => 'The param of AnyPortServerGroupConflictWithHealthCheckConfig is illegal.', 'description' => '服务器组的配置与健康检查设置冲突。请检查配置参数。'], + ['errorCode' => 'IllegalParamFormat.ParseCreateRsPoolRequestFailed', 'errorMessage' => 'The param format of CreateRsPoolRequest is illegal.', 'description' => 'CreateRsPoolRequestFailed的参数格式不合法,请参考OpenAPI文档检查请求参数。'], + ['errorCode' => 'IllegalParam.PreserveClientIpSwitch', 'errorMessage' => 'The param of PreserveClientIpSwitch is illegal.', 'description' => ''], + ['errorCode' => 'OperationDenied.VpcNotSupportIpv6', 'errorMessage' => 'The operation is not allowed because of VpcNotSupportIpv6.', 'description' => '使用的VPC不支持Ipv6。'], + ['errorCode' => 'IllegalParam.healthCheckDomain', 'errorMessage' => 'The parameter of healthCheckConfig.healthCheckDomain is illegal.', 'description' => '健康检查配置中的healthCheckDomain非法,请检查输入参数。'], + ['errorCode' => 'OperationDenied.UidNotAllowQuic29', 'errorMessage' => 'The operation is not allowed because of uid not allow quic29 version.', 'description' => ''], + ['errorCode' => 'IlleagalParam.healthCheckUrl', 'errorMessage' => 'The parameter of healthCheckUrl in healthCheckConfig is illegal.', 'description' => '健康检查设置中使用的健康检查的URL不合法。'], + ['errorCode' => 'IllegalParam.ServerGroupName', 'errorMessage' => 'The param of ServerGroupName is illegal.', 'description' => '传入的ServerGroupName参数非法'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => '参数%s缺失,请检查输入参数。'], + ['errorCode' => 'IllegalParam.ConnectionDrainTimeout', 'errorMessage' => 'The param of ConnectionDrainTimeout is illegal.', 'description' => '参数ConnectionDrainTimeout非法,请检查输入参数。'], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'QuotaExceeded.QuotaInsufficient', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额不足,已使用%s/%s。请在配额中心中修改配额大小。'], ], 403 => [ - [ - 'errorCode' => 'UnauthorizedZone', - 'errorMessage' => 'The specified zone of %s is not authorized.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource of vSwitch is not found.', + ['errorCode' => 'ResourceNotFound.Vpc', 'errorMessage' => 'The specified resource of Vpc is not found.', 'description' => '找不到指定的VPC资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.ResourceGroup', 'errorMessage' => 'The param of resourceGroup not existed.', 'description' => '资源组不存在。'], + ], + ], + 'title' => '创建服务器组', + 'description' => '**CreateServerGroup**接口属于异步接口,即系统返回一个请求ID,但该网络型负载均衡的服务器组尚未创建成功,系统后台的创建任务仍在进行。您可以调用[GetJobStatus](~~445904~~)查询服务器组的创建状态:'."\n" + .' - 当任务状态处于**Succeeded**时,表示服务器组创建成功。'."\n" + .' - 当任务状态处于**Processing**时,表示服务器组正在创建中,在该状态下,您只能执行查询操作,不能执行其他操作。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateServerGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/*'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerZonesResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateLoadBalancerZonesResponse>","errorExample":""}]', - 'title' => '更新实例可用区及可用区属性', - 'description' => '每次调用该接口时,请确保您传入该NLB实例的所有可用区参数,包括存量和新增的可用区。如您未传入存量的可用区参数,存量可用区将会被删掉。'."\n" - ."\n" - .'前提条件:'."\n" - .'- 您已创建NLB实例,请参见[CreateLoadBalancer](~~445868~~)。'."\n" - .'- 您可以通过[GetLoadBalancerAttribute](~~445873~~)接口查询该NLB实例的可用区及可用区属性。'."\n" - .'- **UpdateLoadBalancerZones**属于异步接口,即系统返回一个请求ID,但该NLB实例可用区及可用区属性尚未修改成功,系统后台的变更任务仍在进行。您可以调用[GetJobStatus](~~445904~~)查询修改状态:'."\n" - .' - 当任务状态处于**Succeeded**时,表示实例可用区及可用区属性修改成功。'."\n" - .' - 当任务状态处于**Processing**时,表示实例可用区及可用区属性正在修改中,在该状态下,您只能执行查询操作,不能执行其他操作。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateServerGroupResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</CreateServerGroupResponse>","errorExample":""}]', ], - 'EnableLoadBalancerIpv6Internet' => [ - 'summary' => '将双栈NLB实例的IPv6地址从私网变更为公网。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteListener' => [ + 'summary' => '删除网络型负载均衡监听。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'ListenerId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['title' => 'update or delete必选, add在custom中生成', 'description' => '监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn908w4nbw****@80'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会变更Pv6类型实例的网络类型。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会删除监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => '双栈NLB实例的IPv6地址从私网变更为公网。', + 'title' => 'RpcResponse<UpdateOrDeleteListenerResponse>', + 'description' => '删除监听。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.NonDualStackInstance', - 'errorMessage' => 'The operation is not allowed because of NonDualStackInstance.', - ], - [ - 'errorCode' => 'ResourceInCreating.%s', - 'errorMessage' => 'The specified resource of %s is creating, please try again later.', - ], - [ - 'errorCode' => 'ResourceInCreating.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', - ], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], + ['errorCode' => 'IncorrectStatus.listener', 'errorMessage' => 'The status of listener [%s] is incorrect.', 'description' => '监听的状态无法进行当前操作,请检查监听当前是否处于其他操作下。'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'IncorrectStatus.loadbalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的状态无效。'], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => '指定的资源当前存在锁冲突。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ipv6Gateway', - 'errorMessage' => 'The specified resource of Ipv6Gateway is not found.', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteListenerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DeleteListenerResponse>","errorExample":""}]', + 'title' => '删除监听', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteListener'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableLoadBalancerIpv6InternetResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</EnableLoadBalancerIpv6InternetResponse>","errorExample":""}]', - 'title' => '开启NLB实例IPv6公网', ], - 'DisableLoadBalancerIpv6Internet' => [ - 'summary' => '将双栈NLB实例的Pv6地址从公网变更为私网。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteLoadBalancer' => [ + 'summary' => '删除网络型负载均衡实例。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1986,108 +1948,98 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslbC68LB1'], ], 'parameters' => [ [ 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-wb7r6dlwetvt5j****'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会变更Pv6类型实例的网络类型。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会删除实例。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'response', - 'description' => 'response', + 'description' => '删除网络型负载均衡实例。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.Ipv6IntranetInstance', - 'errorMessage' => 'The operation is not allowed because of Ipv6IntranetInstance.', - ], - [ - 'errorCode' => 'OperationDenied.NonDualStackInstance', - 'errorMessage' => 'The operation is not allowed because of NonDualStackInstance.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], + ['errorCode' => 'OperationDenied.%s', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '因为%s,当前操作是不允许的'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => '正在配置指定的负载均衡资源,请稍后重试。'], + ['errorCode' => 'ResourceInCreating.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', 'description' => '正在创建指定的负载均衡器资源,请稍后重试。'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], + ['errorCode' => 'OperationDenied.DeletionProtectionEnabled', 'errorMessage' => 'The operation is not allowed because of DeletionProtectionEnabled.', 'description' => '由于启用了删除保护(DeletionProtectionEnabled),不允许进行此操作。'], + ['errorCode' => 'IncorrectStatus.loadbalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的状态无效。'], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => '指定的资源当前存在锁冲突。'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ], + ], + 'title' => '删除负载均衡实例', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteLoadBalancer'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableLoadBalancerIpv6InternetResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DisableLoadBalancerIpv6InternetResponse>","errorExample":""}]', - 'title' => '关闭NLB实例IPv6公网', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteLoadBalancerResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DeleteLoadBalancerResponse>","errorExample":""}]', ], - 'LoadBalancerLeaveSecurityGroup' => [ - 'summary' => '为网络型负载均衡实例解绑安全组。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteSecurityPolicy' => [ + 'summary' => '删除网络型负载均衡TLS自定义安全策略。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2095,141 +2047,87 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'SecurityGroupIds', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '待解绑的安全组ID。', - 'type' => 'array', - 'items' => [ - 'description' => '待解绑的安全组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sg-bp1fg655nh68xyz9****', - ], - 'required' => true, - 'maxItems' => 10, - ], - ], - [ - 'name' => 'LoadBalancerId', + 'name' => 'SecurityPolicyId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['description' => 'TLS安全策略ID。', 'type' => 'string', 'required' => true, 'example' => 'sp-wuytp9pa******'."\n"], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会为实例解绑安全组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会删除自定义安全策略。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。'."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => 'response', + 'title' => 'RpcResponse<DeleteSecurityPolicyResponse>', + 'description' => '删除TLS自定义安全策略。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], + ['errorCode' => 'ResourceInUse.SecurityPolicy', 'errorMessage' => 'The specified resource of SecurityPolicy is in use.', 'description' => 'SecurityPolicy变配中,请稍后重试。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.SecurityGroup', - 'errorMessage' => 'Authentication is failed for SecurityGroup.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.%s', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ['errorCode' => 'ResourceNotFound.securitypolicy', 'errorMessage' => 'The specified resource of securitypolicy is not found.', 'description' => '找不到指定的安全策略资源。请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteSecurityPolicyResponse>\\n <RequestId>D7A8875F-373A-5F48-8484-25B07A61F2AF</RequestId>\\n</DeleteSecurityPolicyResponse>","errorExample":""}]', + 'title' => '删除自定义安全策略', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteSecurityPolicy'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<LoadBalancerLeaveSecurityGroupResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</LoadBalancerLeaveSecurityGroupResponse>","errorExample":""}]', - 'title' => '解绑安全组', - 'description' => 'LoadBalancerLeaveSecurityGroup接口属于异步接口,即系统返回一个请求ID,但该网络型负载均衡实例的安全组尚未解绑成功,系统后台的解绑任务仍在进行。您可以调用[GetJobStatus](~~445904~~)查询安全组的解绑状态:'."\n" - ."\n" - .'- 当任务状态处于**Succeeded**时,表示安全组解绑成功。'."\n" - .'- 当任务状态处于**Processing**时,表示安全组正在解绑中,在该状态下,您只能执行查询操作,不能执行其他操作。', ], - 'LoadBalancerJoinSecurityGroup' => [ - 'summary' => '为网络型负载均衡实例绑定已创建的安全组。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteServerGroup' => [ + 'summary' => '删除网络型负载均衡的服务器组。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2237,377 +2135,162 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'SecurityGroupIds', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '安全组ID。', - 'type' => 'array', - 'items' => [ - 'description' => '安全组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sg-bp1fg655nh68xyz9****', - ], - 'required' => true, - 'maxItems' => 10, - ], - ], - [ - 'name' => 'LoadBalancerId', + 'name' => 'ServerGroupId', 'in' => 'formData', - 'schema' => [ - 'description' => '待绑定安全组的网络型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['title' => '服务器组ID', 'description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会为实例绑定安全组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会删除服务器组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。'."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => '为NLB实例绑定已创建的安全组。', + 'title' => 'RpcResponse<DeleteServerGroupResponse>', + 'description' => '删除服务器组。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'QuotaExceeded.QuotaInsufficient', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'Conflict.SecurityGroup', - 'errorMessage' => 'The SecurityGroup [%s] is conflict.', - ], - [ - 'errorCode' => 'Mismatch.%s', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'OperationDenied.%s', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'TagInvokeError', - 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'Mismatch.vpc', - 'errorMessage' => 'The Vpc is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'ResourceInCreating.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], + ['errorCode' => 'ResourceInUse.ServerGroup', 'errorMessage' => 'The specified resource of ServerGroup is in use.', 'description' => '指定的服务器组资源正在使用中,请稍后重试。'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'IncorrectStatus.serverGroup', 'errorMessage' => 'The status of servergroup [%s] is incorrect.', 'description' => '服务器组的状态无法进行当前操作,请检查服务器组当前是否处于其他操作下。'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => '指定的资源当前存在锁冲突。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - [ - 'errorCode' => 'Forbidden.SecurityGroup', - 'errorMessage' => 'Authentication is failed for SecurityGroup.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.SecurityGroup', - 'errorMessage' => 'The specified resource of SecurityGroup is not found.', + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => '找不到指定的服务器组资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteServerGroupResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DeleteServerGroupResponse>","errorExample":""}]', + 'title' => '删除服务器组', + 'description' => '服务器组未被任何监听使用时支持删除。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteServerGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<LoadBalancerJoinSecurityGroupResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</LoadBalancerJoinSecurityGroupResponse>","errorExample":""}]', - 'title' => '绑定安全组', - 'description' => '- 请确保您已创建安全组。创建安全组,请参见[CreateSecurityGroup](~~25553~~)。'."\n" - .'- 一个网络型负载均衡实例最多支持加入4个安全组。'."\n" - .'- 您可以通过[GetLoadBalancerAttribute](~~214362~~)接口查询实例绑定的安全组。'."\n" - .'- LoadBalancerJoinSecurityGroup属于异步接口,即系统返回一个请求ID,但该网络型负载均衡实例绑定安全组尚未成功,系统后台的绑定任务仍在进行。您可以调用[GetJobStatus](~~445904~~)查询安全组的绑定状态:'."\n" - .' - 当任务状态处于**Succeeded**时,表示安全组绑定成功。'."\n" - .' - 当任务状态处于**Processing**时,表示安全组正在绑定中,在该状态下,您只能执行查询操作,不能执行其他操作。', ], - 'UpdateLoadBalancerProtection' => [ - 'summary' => '开启或关闭删除保护功能,及更新修改保护功能。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeHdMonitorRegionConfig' => [ + 'summary' => '查询秒级监控存储配置。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'DeletionProtectionEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否开启删除保护。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'DeletionProtectionReason', - 'in' => 'formData', - 'schema' => [ - 'description' => '输入开启删除保护的原因。长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" - ."\n" - .'> 仅在**DeletionProtectionEnabled**为**true**时该参数有效且合法。', - 'type' => 'string', - 'required' => false, - 'example' => '实例使用中', - ], - ], - [ - 'name' => 'ModificationProtectionStatus', - 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡修改保护状态。取值:'."\n" - ."\n" - .'- **NonProtection**:不保护,表示不允许传入**ModificationProtectionReason**。如果配置了保护配置的**ModificationProtectionReason**,则清空其配置信息。'."\n" - .'- **ConsoleProtection**:控制台修改保护,此时允许传入**ModificationProtectionReason**。'."\n" - ."\n" - .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'ConsoleProtection', - ], - ], - [ - 'name' => 'ModificationProtectionReason', - 'in' => 'formData', - 'schema' => [ - 'description' => '输入开启修改保护的原因。长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" - ."\n" - .'> 仅在**Status**为**ConsoleProtection**时该参数有效且合法。', - 'type' => 'string', - 'required' => false, - 'example' => '托管实例', - ], - ], - [ - 'name' => 'LoadBalancerId', - 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会更新修改保护和删除保护。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'formData', - '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' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'in' => 'query', + 'schema' => ['title' => 'add 必选', 'description' => '资源所在的地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => '更新修改删除保护。', + 'title' => 'RpcResponse<GetJodResponse>', + 'description' => 'RpcResponse<GetJodResponse>', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'RegionId' => ['description' => '资源所在地域ID。'."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'LogProject' => ['description' => '日志服务LogProject的名称。', 'type' => 'string', 'example' => 'hdmonitor-cn-hangzhou-223794579283657556'."\n"], + 'MetricStore' => ['description' => '日志服务MetricStore的名称。', 'type' => 'string', 'example' => 'hdmonitor-cn-hangzhou-metricStore-1'], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ResourceInConfiguring.%s', - 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IdempotenceSignatureMismatch', - 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IllegalParam.deletionProtectionReason', - 'errorMessage' => 'The param of deletionProtectionReason is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.modificationProtectionReason', - 'errorMessage' => 'The param of modificationProtectionReason is illegal.', - ], - [ - 'errorCode' => 'ResourceInCreating.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', - ], - ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ['errorCode' => 'DescribeHDMonitor.Fail', 'errorMessage' => 'DescribeHDMonitor Fail.', 'description' => '查询秒级监控配置失败'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LogProject\\": \\"hdmonitor-cn-hangzhou-223794579283657556\\\\n\\",\\n \\"MetricStore\\": \\"hdmonitor-cn-hangzhou-metricStore-1\\"\\n}","type":"json"}]', + 'title' => '查询秒级监控配置', + 'description' => '查询当前地域配置的秒级监控存储数仓。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeHdMonitorRegionConfig'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:DescribeHdMonitorRegionConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerProtectionResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</UpdateLoadBalancerProtectionResponse>","errorExample":""}]', - 'title' => '修改删除保护', - 'description' => '> 您可以通过[GetLoadBalancerAttribute](~~445873~~)接口查询删除保护和修改保护详细信息。', ], - 'ListLoadBalancers' => [ - 'summary' => '查询已创建的网络型负载均衡实例的基本信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeRegions' => [ + 'summary' => '查询NLB的可用地域。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2615,640 +2298,78 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '141871', - 'abilityTreeNodes' => [ - 'FEATUREslb12YEWG', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'LoadBalancerType', - 'in' => 'query', - 'schema' => [ - 'title' => '负载均衡类型', - 'description' => '负载均衡类型。仅取值:**network**,表示网络型负载均衡。', - 'type' => 'string', - 'required' => false, - 'example' => 'network', - ], - ], - [ - 'name' => 'ZoneId', - 'in' => 'query', - 'schema' => [ - 'title' => '负载均衡拥有的可用区', - 'description' => '可用区名称。您可以通过调用[DescribeZones](~~443890~~)接口获取。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou-a', - ], - ], - [ - 'name' => 'VpcIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '专有网络唯一标识', - 'description' => '网络型负载均衡实例的专有网络ID。一次最多支持查询10个VPC ID。', - 'type' => 'array', - 'items' => [ - 'description' => '网络型负载均衡实例的专有网络ID。一次最多支持查询10个VPC ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp1b49rqrybk45nio****', - ], - 'required' => false, - 'maxItems' => 10, - ], - ], - [ - 'name' => 'AddressType', - 'in' => 'query', - 'schema' => [ - 'title' => '地址类型:取值 internet,intranet', - 'description' => '网络型负载均衡的IPv4地址类型。取值:'."\n" - .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', - 'required' => false, - 'example' => 'Internet', - ], - ], - [ - 'name' => 'AddressIpVersion', - 'in' => 'query', - 'schema' => [ - 'title' => '协议类型', - 'description' => '协议版本。取值:'."\n" - .'- **ipv4**:IPv4类型。'."\n" - .'- **DualStack**:双栈类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'ipv4', - ], - ], - [ - 'name' => 'Ipv6AddressType', - 'in' => 'query', - 'schema' => [ - 'title' => '协议类型', - 'description' => '网络型负载均衡的IPv6地址类型。取值:'."\n" - .'- **Internet**:公网类型。网络型负载均衡实例具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - .'- **Intranet**:私网类型。网络型负载均衡实例只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', - 'required' => false, - 'example' => 'Internet', - ], - ], - [ - 'name' => 'DNSName', - 'in' => 'query', - 'schema' => [ - 'title' => 'dns 地址', - 'description' => 'DNS域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com', - ], - ], - [ - 'name' => 'LoadBalancerStatus', - 'in' => 'query', - 'schema' => [ - 'title' => '实例状态', - 'description' => '网络型负载均衡实例状态。取值:'."\n" - .'- **Inactive**:已停止,表示实例监听不会再转发流量。'."\n" - .'- **Active**:运行中。'."\n" - .'- **Provisioning**:创建中。'."\n" - .'- **Configuring**:变配中。'."\n" - .'- **Deleting**:删除中。'."\n" - .'- **Deleted**:已删除。', - 'type' => 'string', - 'required' => false, - 'example' => 'Active', - ], - ], - [ - 'name' => 'LoadBalancerBusinessStatus', - 'in' => 'query', - 'schema' => [ - 'title' => '实例业务状态', - 'description' => '网络型负载均衡的业务状态。取值:'."\n" - .'- **Abnormal**:异常状态。'."\n" - .'- **Normal**:正常状态。', - 'type' => 'string', - 'required' => false, - 'example' => 'Normal', - ], - ], - [ - 'name' => 'LoadBalancerNames', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '负载均衡实例名称', - 'description' => '网络型负载均衡实例名称。一次最多支持查询20个实例名称。', - 'type' => 'array', - 'items' => [ - 'description' => '网络型负载均衡实例名称。一次最多支持查询20个实例。', - 'type' => 'string', - 'required' => false, - 'example' => 'NLB1', - ], - 'required' => false, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'title' => '企业资源组标识', - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', - ], - ], - [ - 'name' => 'LoadBalancerIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '实例列表', - 'description' => '网络型负载均衡实例的ID。一次最多支持查询20个实例。', - 'type' => 'array', - 'items' => [ - 'description' => '网络型负载均衡实例的ID。一次最多支持查询20个实例。', - 'type' => 'string', - 'required' => false, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'required' => false, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '网络型负载均衡实例标签。', - 'type' => 'array', - 'items' => [ - 'description' => '网络型负载均衡实例标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '实例的标签键。最多支持输入20个标签键。一旦输入该值,则不允许为空字符串。'."\n" - ."\n" - .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'KeyTest', - ], - 'Value' => [ - 'description' => '实例的标签值。最多支持输入20个标签值。一旦输入该值,可以为空字符串。'."\n" - ."\n" - .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'ValueTest', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - 'minItems' => 1, - ], - ], - [ - 'name' => 'NextToken', + 'name' => 'ServiceCode', 'in' => 'query', - 'schema' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => '云产品的ServiceCode,仅取值:**nlb**。', 'type' => 'string', 'required' => false, 'example' => 'nlb', 'default' => 'nlb'], ], [ - 'name' => 'MaxResults', + 'name' => 'AcceptLanguage', 'in' => 'query', - 'schema' => [ - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => '支持的语言。取值:'."\n" + ."\n" + .'- **zh-CN**:中文'."\n" + .'- **en-US**(默认):英文'."\n" + .'- **ja**:日文', 'type' => 'string', 'required' => false, 'example' => 'en-US'], ], [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => 'response', + 'title' => 'RpcResponse<DescribeRegionsResponse>', + 'description' => '返回数据的结构。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'LoadBalancers' => [ - 'description' => '网络型负载均衡实例列表。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'Regions' => [ + 'description' => '地域列表。', 'type' => 'array', 'items' => [ - 'description' => '网络型负载均衡实例列表。', + 'description' => '地域信息结构。', 'type' => 'object', 'properties' => [ - 'RegionId' => [ - 'title' => '业务location', - 'description' => '网络型负载均衡实例所在的地域ID。 ', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'LoadBalancerId' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'LoadBalancerName' => [ - 'description' => '网络型负载均衡实例名称。', - 'type' => 'string', - 'example' => 'NLB1', - ], - 'LoadBalancerType' => [ - 'description' => '负载均衡实例类型。仅取值**Network**,表示网络型负载均衡。', - 'type' => 'string', - 'example' => 'Network', - ], - 'AddressType' => [ - 'description' => '网络型负载均衡的IPv4地址类型。取值:'."\n" - .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', - 'example' => 'Internet', - ], - 'AddressIpVersion' => [ - 'description' => '协议版本。取值:'."\n" - .'- **ipv4**:IPv4类型。'."\n" - .'- **DualStack**:双栈类型。', - 'type' => 'string', - 'example' => 'ipv4', - ], - 'Ipv6AddressType' => [ - 'description' => '网络型负载均衡的IPv6地址类型。取值:'."\n" - ."\n" - .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', - 'example' => 'Internet', - ], - 'LoadBalancerStatus' => [ - 'description' => '网络型负载均衡实例状态。取值:'."\n" - .'- **Inactive**:已停止,表示实例监听不会再转发流量。'."\n" - .'- **Active**:运行中。'."\n" - .'- **Provisioning**:创建中。'."\n" - .'- **Configuring**:变配中。'."\n" - .'- **Deleting**:删除中。'."\n" - .'- **Deleted**:已删除。', - 'type' => 'string', - 'example' => 'Active', - ], - 'LoadBalancerBusinessStatus' => [ - 'description' => '网络型负载均衡的业务状态。取值:'."\n" - .'- **Abnormal**:异常状态。'."\n" - .'- **Normal**:正常状态。', - 'type' => 'string', - 'example' => 'Normal', - ], - 'OperationLocks' => [ - 'title' => '实例处于锁定状态列表', - 'description' => '网络型负载均衡操作锁配置。在`LoadBalancerBussinessStatus`为**Abnormal**(异常状态)时有效。', - 'type' => 'array', - 'items' => [ - 'description' => '网络型负载均衡操作锁配置。', - 'type' => 'object', - 'properties' => [ - 'LockType' => [ - 'description' => '锁定的类型。取值 :'."\n" - ."\n" - .'- **SecurityLocked**:安全锁定。'."\n" - .'- **RelatedResourceLocked**:关联锁定。'."\n" - .'- **FinancialLocked**:欠费锁定。'."\n" - .'- **ResidualLocked**:残留锁定。', - 'type' => 'string', - 'example' => 'SecurityLocked', - ], - 'LockReason' => [ - 'description' => '锁定的原因。', - 'type' => 'string', - 'example' => '业务异常', - ], - ], - ], - ], - 'VpcId' => [ - 'description' => '网络型负载均衡实例的专有网络ID。', - 'type' => 'string', - 'example' => 'vpc-bp1b49rqrybk45nio****', - ], - 'CreateTime' => [ - 'description' => '资源创建时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', - 'type' => 'string', - 'example' => '2022-07-18T17:22:45Z', - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - 'DNSName' => [ - 'description' => 'DNS域名。', - 'type' => 'string', - 'example' => 'nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com', - ], - 'ZoneMappings' => [ - 'description' => '可用区及交换机映射列表。', - 'type' => 'array', - 'items' => [ - 'description' => '可用区及交换机映射列表。', - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。', - 'type' => 'string', - 'example' => 'vsw-bp1rmcrwg3erh1fh8****', - ], - 'ZoneId' => [ - 'description' => '可用区名称,您可以通过调用[DescribeZones](~~443890~~)接口获取。', - 'type' => 'string', - 'example' => 'cn-hangzhou-a', - ], - 'LoadBalancerAddresses' => [ - 'description' => '网络型负载均衡实例地址信息。', - 'type' => 'array', - 'items' => [ - 'description' => '网络型负载均衡实例地址信息。', - 'type' => 'object', - 'properties' => [ - 'EniId' => [ - 'description' => '网络型负载均衡实例挂载的ENI的ID。', - 'type' => 'string', - 'example' => 'eni-bp12f1xhs5yal61a****', - ], - 'PrivateIPv4Address' => [ - 'title' => '私网ip', - 'description' => '网络型负载均衡实例私网IPv4地址。', - 'type' => 'string', - 'example' => '192.168.3.32', - ], - 'AllocationId' => [ - 'title' => '公网ipId', - 'description' => '弹性公网IP实例ID。', - 'type' => 'string', - 'example' => 'eip-bp1aedxso6u80u0qf****', - ], - 'PublicIPv4Address' => [ - 'title' => '公网ip地址:仅Get的时候有值', - 'description' => '网络型负载均衡实例公网IPv4地址。', - 'type' => 'string', - 'example' => '120.XX.XX.69', - ], - 'Ipv6Address' => [ - 'description' => '网络型负载均衡实例Ipv6地址。', - 'type' => 'string', - 'example' => '2001:db8:1:1:1:1:1:1', - ], - 'PrivateIPv4HcStatus' => [ - 'description' => '网络型负载均衡实例私网IPv4地址探测状态。取值:'."\n" - .'- **Healthy**:健康。'."\n" - .'- **Unhealthy**:异常。'."\n" - ."\n" - .'> 只有可用区状态(**Status**)为运行中(**Active**)时才返回该参数。', - 'type' => 'string', - 'example' => 'Healthy', - ], - 'PrivateIPv6HcStatus' => [ - 'description' => '网络型负载均衡实例IPv6地址探测状态。'."\n" - .'- **Healthy**:健康。'."\n" - .'- **Unhealthy**:异常。'."\n" - ."\n" - .'> 只有可用区状态(**Status**)为运行中(**Active**)时才返回该参数。', - 'type' => 'string', - 'example' => 'Healthy', - ], - ], - ], - ], - 'Status' => [ - 'description' => '可用区状态。取值:'."\n" - ."\n" - .'- **Active**:启动。'."\n" - .'- **Stopped**:停止。该状态仅支持通过CADT容灾管理服务调用实现。'."\n" - .'- **Shifted**:DNS摘除。'."\n" - .'- **Starting**:启动中。该状态仅支持通过CADT容灾管理服务调用实现。'."\n" - .'- **Stopping**:停止中。该状态仅支持通过CADT容灾管理服务调用实现。', - 'type' => 'string', - 'example' => 'Active', - ], - ], - ], - ], - 'BandwidthPackageId' => [ - 'description' => '公网类型实例关联的共享带宽包ID。', - 'type' => 'string', - 'example' => 'cbwp-bp1vevu8h3ieh****', - ], - 'SecurityGroupIds' => [ - 'description' => '网络型负载均衡实例加入的安全组。', - 'type' => 'array', - 'items' => [ - 'description' => '网络型负载均衡实例加入的安全组。', - 'type' => 'string', - 'example' => 'sg-bp10uag3q0jkxu72****', - ], - ], - 'CrossZoneEnabled' => [ - 'description' => '网络型负载均衡实例是否开启跨可用区。取值:'."\n" - .'- **true**:开启。'."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'LoadBalancerBillingConfig' => [ - 'title' => '计费相关属性', - 'description' => '网络型负载均衡实例计费配置。', - 'type' => 'object', - 'properties' => [ - 'PayType' => [ - 'title' => '实例的计费类型', - 'description' => '网络型负载均衡实例的计费类型。仅取值**PostPay**:表示按量计费。', - 'type' => 'string', - 'example' => 'PostPay', - 'default' => 'PostPay', - ], - ], - ], - 'DeletionProtectionConfig' => [ - 'description' => '删除保护配置。', - 'type' => 'object', - 'properties' => [ - 'Enabled' => [ - 'description' => '删除保护状态,取值:'."\n" - ."\n" - .'- **true**:开启状态。'."\n" - .'- **false**:关闭状态。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Reason' => [ - 'description' => '更改删除保护状态的原因。长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n", - 'type' => 'string', - 'example' => '实例运行中', - ], - 'EnabledTime' => [ - 'description' => '删除保护开启时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', - 'type' => 'string', - 'example' => '2022-12-01T17:22:45Z', - ], - ], - ], - 'ModificationProtectionConfig' => [ - 'description' => '修改保护配置。', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '网络型负载均衡修改保护状态。取值:'."\n" - ."\n" - .'- **NonProtection**:不保护,表示不允许传入**Reason**。如果配置了**Reason**,则清空其配置信息。'."\n" - .'- **ConsoleProtection**:控制台修改保护,此时允许传入**Reason**。'."\n" - ."\n" - .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', - 'type' => 'string', - 'example' => 'ConsoleProtection', - ], - 'Reason' => [ - 'description' => '输入开启修改保护的原因。长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" - ."\n" - .'仅在**Status**为**ConsoleProtection**时有效。', - 'type' => 'string', - 'example' => '业务保障期', - ], - 'EnabledTime' => [ - 'description' => '修改保护开启时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', - 'type' => 'string', - 'example' => '2022-12-01T17:22:45Z', - ], - ], - ], - 'Tags' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签列表。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '实例的标签键。', - 'type' => 'string', - 'example' => 'KeyTest', - ], - 'Value' => [ - 'description' => '实例的标签值。', - 'type' => 'string', - 'example' => 'ValueTest', - ], - ], - ], - ], + 'LocalName' => ['description' => '地域名称。', 'type' => 'string', 'example' => 'China (Hangzhou)'], + 'RegionEndpoint' => ['description' => '地域服务的Endpoint地址。', 'type' => 'string', 'example' => 'nlb.cn-hangzhou.aliyuncs.com'], + 'RegionId' => ['description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], ], ], ], - 'TotalCount' => [ - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'NextToken' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => '分批次查询时每次显示的条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.LoadBalancerType', - 'errorMessage' => 'The LoadBalancerType value is invalid.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam.loadBalancerName', - 'errorMessage' => 'Param loadBalancerName is illegal.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"China (Hangzhou)\\",\\n \\"RegionEndpoint\\": \\"nlb.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeRegionsResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <Regions>\\n <LocalName>华东1(杭州)</LocalName>\\n <RegionEndpoint>nlb.cn-hangzhou.aliyuncs.com</RegionEndpoint>\\n <RegionId>cn-hangzhou</RegionId>\\n </Regions>\\n</DescribeRegionsResponse>","errorExample":""}]', + 'title' => '查询地域', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRegions'], ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"LoadBalancers\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"LoadBalancerName\\": \\"NLB1\\",\\n \\"LoadBalancerType\\": \\"Network\\",\\n \\"AddressType\\": \\"Internet\\",\\n \\"AddressIpVersion\\": \\"ipv4\\",\\n \\"Ipv6AddressType\\": \\"Internet\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"LoadBalancerBusinessStatus\\": \\"Normal\\",\\n \\"OperationLocks\\": [\\n {\\n \\"LockType\\": \\"SecurityLocked\\",\\n \\"LockReason\\": \\"业务异常\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"CreateTime\\": \\"2022-07-18T17:22:45Z\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"DNSName\\": \\"nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"VSwitchId\\": \\"vsw-bp1rmcrwg3erh1fh8****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"EniId\\": \\"eni-bp12f1xhs5yal61a****\\",\\n \\"PrivateIPv4Address\\": \\"192.168.3.32\\",\\n \\"AllocationId\\": \\"eip-bp1aedxso6u80u0qf****\\",\\n \\"PublicIPv4Address\\": \\"120.XX.XX.69\\",\\n \\"Ipv6Address\\": \\"2001:db8:1:1:1:1:1:1\\",\\n \\"PrivateIPv4HcStatus\\": \\"Healthy\\",\\n \\"PrivateIPv6HcStatus\\": \\"Healthy\\"\\n }\\n ],\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-bp10uag3q0jkxu72****\\"\\n ],\\n \\"CrossZoneEnabled\\": true,\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"Reason\\": \\"实例运行中\\",\\n \\"EnabledTime\\": \\"2022-12-01T17:22:45Z\\"\\n },\\n \\"ModificationProtectionConfig\\": {\\n \\"Status\\": \\"ConsoleProtection\\",\\n \\"Reason\\": \\"业务保障期\\",\\n \\"EnabledTime\\": \\"2022-12-01T17:22:45Z\\"\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"ValueTest\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListLoadBalancersResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <LoadBalancers>\\n <RegionId>cn-hangzhou</RegionId>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n <LoadBalancerName>NLB1</LoadBalancerName>\\n <LoadBalancerType>Network</LoadBalancerType>\\n <AddressType>Internet</AddressType>\\n <AddressIpVersion>ipv4</AddressIpVersion>\\n <Ipv6AddressType>Internet</Ipv6AddressType>\\n <LoadBalancerStatus>Active</LoadBalancerStatus>\\n <LoadBalancerBusinessStatus>Normal</LoadBalancerBusinessStatus>\\n <OperationLocks>\\n <LockType>SecurityLocked</LockType>\\n <LockReason>业务异常</LockReason>\\n </OperationLocks>\\n <VpcId>vpc-bp1b49rqrybk45nio****</VpcId>\\n <CreateTime>2022-07-18T17:22Z</CreateTime>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <DNSName>nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com</DNSName>\\n <ZoneMappings>\\n <VSwitchId>vsw-bp1rmcrwg3erh1fh8****</VSwitchId>\\n <ZoneId>cn-hangzhou-a</ZoneId>\\n <LoadBalancerAddresses>\\n <EniId>eni-bp12f1xhs5yal61a****</EniId>\\n <PrivateIPv4Address>192.168.3.32</PrivateIPv4Address>\\n <AllocationId>eip-bp1aedxso6u80u0qf****</AllocationId>\\n <PublicIPv4Address>120.XX.XX.69</PublicIPv4Address>\\n <Ipv6Address>2001:db8:1:1:1:1:1:1</Ipv6Address>\\n <PrivateIPv4HcStatus>Healthy</PrivateIPv4HcStatus>\\n <PrivateIPv6HcStatus>Healthy</PrivateIPv6HcStatus>\\n </LoadBalancerAddresses>\\n <Status>Active</Status>\\n </ZoneMappings>\\n <BandwidthPackageId>cbwp-bp1vevu8h3ieh****</BandwidthPackageId>\\n <SecurityGroupIds>sg-bp10uag3q0jkxu72****</SecurityGroupIds>\\n <CrossZoneEnabled>true</CrossZoneEnabled>\\n <LoadBalancerBillingConfig>\\n <PayType>PostPay</PayType>\\n </LoadBalancerBillingConfig>\\n <DeletionProtectionConfig>\\n <Enabled>true</Enabled>\\n <Reason>实例运行中</Reason>\\n <EnabledTime>2022-12-01T17:22Z</EnabledTime>\\n </DeletionProtectionConfig>\\n <ModificationProtectionConfig>\\n <Status>ConsoleProtection</Status>\\n <Reason>业务保障期</Reason>\\n <EnabledTime>2022-12-01T17:22Z</EnabledTime>\\n </ModificationProtectionConfig>\\n <Tags>\\n <Key>KeyTest</Key>\\n <Value>ValueTest</Value>\\n </Tags>\\n </LoadBalancers>\\n <TotalCount>10</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListLoadBalancersResponse>","errorExample":""}]', - 'title' => '查询负载均衡实例信息', + 'ramActions' => [], ], - 'GetLoadBalancerAttribute' => [ - 'summary' => '查询指定网络型负载均衡实例的详细信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeZones' => [ + 'summary' => '查询NLB一个地域下的可用区列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3256,400 +2377,54 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeNodes' => [ - 'FEATUREslbZQW9H1', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'ServiceCode', 'in' => 'query', - 'schema' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['description' => '云产品的ServiceCode,仅取值:**nlb**。', 'type' => 'string', 'required' => false, 'example' => 'nlb'], ], [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会查询实例的配置信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '可用区所在的地域ID。您可以调用[DescribeRegions](~~443657~~)查看最新的阿里云地域列表。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'ClientToken', + 'name' => 'AcceptLanguage', 'in' => 'query', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => '支持的语言。取值:'."\n" + ."\n" + .'- **zh-CN**:中文'."\n" + .'- **en-US**(默认):英文'."\n" + .'- **ja**:日文', 'type' => 'string', 'required' => false, 'example' => 'zh-CN'], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => 'response', + 'title' => 'RpcResponse<DescribeZonesResponse>', + 'description' => '返回数据的结构。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'RegionId' => [ - 'description' => 'NLB实例所在的地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'LoadBalancerId' => [ - 'description' => 'NLB实例ID。', - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'LoadBalancerName' => [ - 'description' => 'NLB实例名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'example' => 'NLB1', - ], - 'LoadBalancerType' => [ - 'description' => '负载均衡类型。仅取值:**network**,表示网络型负载均衡。', - 'type' => 'string', - 'example' => 'network', - ], - 'AddressType' => [ - 'description' => 'NLB实例的IPv4网络地址类型。取值:'."\n" - .'- **Internet**:公网。负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - .'- **Intranet**:私网。负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', - 'example' => 'Internet', - ], - 'AddressIpVersion' => [ - 'description' => '协议版本。取值:'."\n" - ."\n" - .'- **ipv4**:IPv4类型。'."\n" - .'- **DualStack**:双栈类型。', - 'type' => 'string', - 'example' => 'ipv4', - ], - 'Ipv6AddressType' => [ - 'description' => 'NLB实例的IPv6地址类型。取值:'."\n" - .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', - 'example' => 'Internet', - ], - 'LoadBalancerStatus' => [ - 'description' => 'NLB实例状态。取值:'."\n" - .'- **Inactive**:已停止,表示实例监听不会再转发流量。'."\n" - .'- **Active**:运行中。'."\n" - .'- **Provisioning**:创建中。'."\n" - .'- **Configuring**:变配中。'."\n" - .'- **CreateFailed**:创建失败,此时不会产生费用,实例只能被删除。', - 'type' => 'string', - 'example' => 'Active', - ], - 'LoadBalancerBusinessStatus' => [ - 'description' => 'NLB的业务状态。取值:'."\n" - .'- **Abnormal**:异常状态。'."\n" - .'- **Normal**:正常状态。', - 'type' => 'string', - 'example' => 'Normal', - ], - 'OperationLocks' => [ - 'title' => '实例处于锁定状态列表', - 'description' => 'NLB实例处于锁定状态列表。在`LoadBalancerBussinessStatus`为**Abnormal**(异常状态)时才返回当前参数。', - 'type' => 'array', - 'items' => [ - 'description' => '网络型负载均衡实例处于锁定状态列表。在`LoadBalancerBussinessStatus`为**Abnormal**(异常状态)时才返回当前参数。。', - 'type' => 'object', - 'properties' => [ - 'LockType' => [ - 'description' => '锁定的类型。取值 :'."\n" - .'- **SecurityLocked**:安全锁定。'."\n" - .'- **RelatedResourceLocked**:关联锁定。'."\n" - .'- **FinancialLocked**:欠费锁定。'."\n" - .'- **ResidualLocked**:残留锁定。'."\n", - 'type' => 'string', - 'example' => 'SecurityLocked', - ], - 'LockReason' => [ - 'description' => '锁定的原因。', - 'type' => 'string', - 'example' => '业务异常。', - ], - ], - ], - ], - 'VpcId' => [ - 'description' => 'NLB实例的专有网络ID。', - 'type' => 'string', - 'example' => 'vpc-bp1b49rqrybk45nio****', - ], - 'CreateTime' => [ - 'description' => '资源创建时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', - 'type' => 'string', - 'example' => '2022-07-02T02:49:05Z', - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - 'DNSName' => [ - 'description' => 'DNS域名。', - 'type' => 'string', - 'example' => 'nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com', - ], - 'ZoneMappings' => [ - 'description' => '可用区及交换机映射列表,最多返回10个可用区。若当前地域支持2个及以上可用区,至少返回2个及以上可用区。', - 'type' => 'array', - 'items' => [ - 'description' => '可用区及交换机映射列表,最多返回10个可用区。若当前地域支持2个及以上可用区,至少返回2个及以上可用区。', - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。', - 'type' => 'string', - 'example' => 'vsw-bp1rmcrwg3erh1fh8****', - ], - 'ZoneId' => [ - 'description' => '可用区ID,您可以通过调用[DescribeZones](~~443890~~)接口获取。', - 'type' => 'string', - 'example' => 'cn-hangzhou-a', - ], - 'LoadBalancerAddresses' => [ - 'description' => '网络型负载均衡实例地址信息。', - 'type' => 'array', - 'items' => [ - 'description' => '网络型负载均衡实例地址信息。', - 'type' => 'object', - 'properties' => [ - 'EniId' => [ - 'description' => 'ENI的ID。', - 'type' => 'string', - 'example' => 'eni-bp12f1xhs5yal61a****', - ], - 'PrivateIPv4Address' => [ - 'title' => '私网ip', - 'description' => 'IPv4 私网VIP地址。NLB对外提供服务的私网IPv4地址。', - 'type' => 'string', - 'example' => '192.168.3.32', - ], - 'AllocationId' => [ - 'title' => '公网ipId', - 'description' => '弹性公网IP实例ID。', - 'type' => 'string', - 'example' => 'eip-bp1aedxso6u80u0qf****', - ], - 'PublicIPv4Address' => [ - 'title' => '公网ip地址:仅Get的时候有值', - 'description' => 'NLB实例公网IPv4地址。', - 'type' => 'string', - 'example' => '120.XX.XX.69', - ], - 'Ipv6Address' => [ - 'description' => 'IPv6 VIP地址。NLB对外提供服务的IPv6地址。', - 'type' => 'string', - 'example' => '2001:db8:1:1:1:1:1:1', - ], - 'PrivateIPv4HcStatus' => [ - 'description' => 'NLB实例私网IPv4地址的探测状态。取值:'."\n" - ."\n" - .'- **Healthy**:健康。'."\n" - .'- **Unhealthy**:异常。'."\n" - ."\n" - .'> 只有可用区状态(**Status**)为运行中(**Active**)时才返回该参数。', - 'type' => 'string', - 'example' => 'Healthy', - ], - 'PrivateIPv6HcStatus' => [ - 'description' => 'NLB实例IPv6地址的探测状态。取值:'."\n" - ."\n" - .'- **Healthy**:健康。'."\n" - .'- **Unhealthy**:异常。'."\n" - ."\n" - .'> 只有可用区状态(**Status**)为运行中(**Active**)时才返回该参数。', - 'type' => 'string', - 'example' => 'Healthy', - ], - 'Ipv4LocalAddresses' => [ - 'description' => 'IPv4 Local地址列表。NLB与后端服务交互的地址列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'IPv4 Local地址。', - 'type' => 'string', - 'example' => '192.168.36.16', - ], - ], - 'Ipv6LocalAddresses' => [ - 'description' => 'IPv6 Local地址列表。NLB与后端服务交互的地址列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'IPv6 Local地址。', - 'type' => 'string', - 'example' => '2408:4005:357:ba00:64a2:221f:5685:8854', - ], - ], - ], - ], - ], - 'Status' => [ - 'description' => '可用区状态。取值:'."\n" - ."\n" - .'- **Active**:启动。'."\n" - .'- **Stopped**:停止。该状态仅支持通过CADT容灾管理服务调用实现。'."\n" - .'- **Shifted**:DNS摘除。'."\n" - .'- **Starting**:启动中。该状态仅支持通过CADT容灾管理服务调用实现。'."\n" - .'- **Stopping**:停止中。该状态仅支持通过CADT容灾管理服务调用实现。', - 'type' => 'string', - 'example' => 'Active', - ], - ], - ], - ], - 'BandwidthPackageId' => [ - 'description' => '公网类型实例关联的共享带宽包ID。', - 'type' => 'string', - 'example' => 'cbwp-bp1vevu8h3ieh****', - ], - 'SecurityGroupIds' => [ - 'description' => 'NLB实例绑定的安全组ID。', - 'type' => 'array', - 'items' => [ - 'description' => 'NLB实例绑定的安全组ID。', - 'type' => 'string', - 'example' => 'sg-bp10uag3q0jkxu72****', - ], - ], - 'CrossZoneEnabled' => [ - 'description' => 'NLB实例是否开启跨可用区。取值:'."\n" - .'- **true**:开启。'."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'LoadBalancerBillingConfig' => [ - 'title' => '计费相关属性', - 'description' => '负载均衡实例计费配置。', - 'type' => 'object', - 'properties' => [ - 'PayType' => [ - 'title' => '实例的计费类型', - 'description' => 'NLB实例的计费类型。'."\n" - .'仅取值**PostPay**:表示按量计费。', - 'type' => 'string', - 'example' => 'PostPay', - 'default' => 'PostPay', - ], - ], - ], - 'Cps' => [ - 'description' => 'NLB实例在每个可用区(VIP)处理的每秒新建连接限速值。取值范围:**0**~**1000000**。'."\n" - ."\n" - .'**0**表示不限速。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'DeletionProtectionConfig' => [ - 'description' => '删除保护配置。', - 'type' => 'object', - 'properties' => [ - 'Enabled' => [ - 'description' => '删除保护状态,取值:'."\n" - ."\n" - .'- **true**:开启状态。'."\n" - .'- **false**:关闭状态。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Reason' => [ - 'description' => '更改删除保护状态的原因。长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'example' => '实例运行中', - ], - 'EnabledTime' => [ - 'description' => '删除保护开启时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', - 'type' => 'string', - 'example' => '2022-11-02T02:49:05Z', - ], - ], - ], - 'ModificationProtectionConfig' => [ - 'description' => '修改保护配置。', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '网络型负载均衡修改保护状态。取值:'."\n" - ."\n" - .'- **NonProtection**:不保护,表示不允许传入修改保护配置的**Reason**字段。如果配置了**Reason**,则清空其配置信息。'."\n" - .'- **ConsoleProtection**:控制台修改保护,此时允许传入修改保护配置的**Reason**字段。'."\n" - ."\n" - .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。'."\n", - 'type' => 'string', - 'example' => 'ConsoleProtection', - ], - 'Reason' => [ - 'description' => '输入开启修改保护的原因。长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" - ."\n" - .'仅在修改保护配置的**Status**为**ConsoleProtection**有效且合法。', - 'type' => 'string', - 'example' => '业务保障期', - ], - 'EnabledTime' => [ - 'description' => '修改保护时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', - 'type' => 'string', - 'example' => '2022-12-02T02:49:05Z', - ], - ], - ], - 'Tags' => [ - 'description' => '标签列表。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'Zones' => [ + 'description' => '可用区列表。', 'type' => 'array', 'items' => [ - 'description' => '标签列表。', + 'description' => '可用区信息结构。', 'type' => 'object', 'properties' => [ - 'TagKey' => [ - 'description' => '实例的标签键。', - 'type' => 'string', - 'example' => 'KeyTest', - ], - 'TagValue' => [ - 'description' => '实例的标签值。', - 'type' => 'string', - 'example' => 'ValueTest', - ], + 'LocalName' => ['description' => '可用区名称。', 'type' => 'string', 'example' => '杭州 可用区G'], + 'ZoneId' => ['description' => '可用区ID。', 'type' => 'string', 'example' => 'cn-hangzhou-g'], ], ], ], @@ -3659,40 +2434,26 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DuplicatedParam.%s', - 'errorMessage' => 'The param of %s is duplicated.', - ], - [ - 'errorCode' => 'OperationFailed.GetXipFailed', - 'errorMessage' => 'Operation failed because GetXipFailed.', - ], + ['errorCode' => 'IllegalParam.AcceptLanguage', 'errorMessage' => 'The param of AcceptLanguage[%s] is illegal from bundle %s', 'description' => 'AcceptLanguage 参数[%s] 非法。'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Zones\\": [\\n {\\n \\"LocalName\\": \\"杭州 可用区G\\",\\n \\"ZoneId\\": \\"cn-hangzhou-g\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeZonesResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <Zones>\\n <LocalName>华东 1 可用区G</LocalName>\\n <ZoneId>cn-hangzhou-g</ZoneId>\\n </Zones>\\n</DescribeZonesResponse>","errorExample":""}]', + 'title' => '查询可用区', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeZones'], ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"LoadBalancerName\\": \\"NLB1\\",\\n \\"LoadBalancerType\\": \\"network\\",\\n \\"AddressType\\": \\"Internet\\",\\n \\"AddressIpVersion\\": \\"ipv4\\",\\n \\"Ipv6AddressType\\": \\"Internet\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"LoadBalancerBusinessStatus\\": \\"Normal\\",\\n \\"OperationLocks\\": [\\n {\\n \\"LockType\\": \\"SecurityLocked\\",\\n \\"LockReason\\": \\"业务异常。\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"DNSName\\": \\"nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"VSwitchId\\": \\"vsw-bp1rmcrwg3erh1fh8****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"EniId\\": \\"eni-bp12f1xhs5yal61a****\\",\\n \\"PrivateIPv4Address\\": \\"192.168.3.32\\",\\n \\"AllocationId\\": \\"eip-bp1aedxso6u80u0qf****\\",\\n \\"PublicIPv4Address\\": \\"120.XX.XX.69\\",\\n \\"Ipv6Address\\": \\"2001:db8:1:1:1:1:1:1\\",\\n \\"PrivateIPv4HcStatus\\": \\"Healthy\\",\\n \\"PrivateIPv6HcStatus\\": \\"Healthy\\",\\n \\"Ipv4LocalAddresses\\": [\\n \\"192.168.36.16\\"\\n ],\\n \\"Ipv6LocalAddresses\\": [\\n \\"2408:4005:357:ba00:64a2:221f:5685:8854\\"\\n ]\\n }\\n ],\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-bp10uag3q0jkxu72****\\"\\n ],\\n \\"CrossZoneEnabled\\": true,\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"Cps\\": 100,\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"Reason\\": \\"实例运行中\\",\\n \\"EnabledTime\\": \\"2022-11-02T02:49:05Z\\"\\n },\\n \\"ModificationProtectionConfig\\": {\\n \\"Status\\": \\"ConsoleProtection\\",\\n \\"Reason\\": \\"业务保障期\\",\\n \\"EnabledTime\\": \\"2022-12-02T02:49:05Z\\"\\n },\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"KeyTest\\",\\n \\"TagValue\\": \\"ValueTest\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetLoadBalancerAttributeResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <RegionId>cn-hangzhou</RegionId>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n <LoadBalancerName>NLB1</LoadBalancerName>\\n <LoadBalancerType>network</LoadBalancerType>\\n <AddressType>Internet</AddressType>\\n <AddressIpVersion>ipv4</AddressIpVersion>\\n <Ipv6AddressType>Internet</Ipv6AddressType>\\n <LoadBalancerStatus>Active</LoadBalancerStatus>\\n <LoadBalancerBusinessStatus>Normal</LoadBalancerBusinessStatus>\\n <OperationLocks>\\n <LockType>SecurityLocked</LockType>\\n <LockReason>业务异常。</LockReason>\\n </OperationLocks>\\n <VpcId>vpc-bp1b49rqrybk45nio****</VpcId>\\n <CreateTime>2022-07-02T02:49:05Z</CreateTime>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <DNSName>nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com</DNSName>\\n <ZoneMappings>\\n <VSwitchId>vsw-bp1rmcrwg3erh1fh8****</VSwitchId>\\n <ZoneId>cn-hangzhou-a</ZoneId>\\n <LoadBalancerAddresses>\\n <EniId>eni-bp12f1xhs5yal61a****</EniId>\\n <PrivateIPv4Address>192.168.3.32</PrivateIPv4Address>\\n <AllocationId>eip-bp1aedxso6u80u0qf****</AllocationId>\\n <PublicIPv4Address>120.XX.XX.69</PublicIPv4Address>\\n <Ipv6Address>2001:db8:1:1:1:1:1:1</Ipv6Address>\\n <PrivateIPv4HcStatus>Healthy</PrivateIPv4HcStatus>\\n <PrivateIPv6HcStatus>Healthy</PrivateIPv6HcStatus>\\n </LoadBalancerAddresses>\\n <Status>Active</Status>\\n </ZoneMappings>\\n <BandwidthPackageId>cbwp-bp1vevu8h3ieh****</BandwidthPackageId>\\n <SecurityGroupIds>sg-bp10uag3q0jkxu72****</SecurityGroupIds>\\n <CrossZoneEnabled>true</CrossZoneEnabled>\\n <LoadBalancerBillingConfig>\\n <PayType>PostPay</PayType>\\n </LoadBalancerBillingConfig>\\n <Cps>100</Cps>\\n <DeletionProtectionConfig>\\n <Enabled>true</Enabled>\\n <Reason>实例运行中</Reason>\\n <EnabledTime>2022-11-02T02:49:05Z</EnabledTime>\\n </DeletionProtectionConfig>\\n <ModificationProtectionConfig>\\n <Status>ConsoleProtection</Status>\\n <Reason>业务保障期</Reason>\\n <EnabledTime>2022-12-02T02:49:05Z</EnabledTime>\\n </ModificationProtectionConfig>\\n <Tags>\\n <TagKey>KeyTest</TagKey>\\n <TagValue>ValueTest</TagValue>\\n </Tags>\\n</GetLoadBalancerAttributeResponse>","errorExample":""}]', - 'title' => '查询负载均衡实例的详细信息', + 'ramActions' => [], ], - 'StartShiftLoadBalancerZones' => [ - 'summary' => '将可用区对应的EIP/VIP从域名解析中摘除。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DetachCommonBandwidthPackageFromLoadBalancer' => [ + 'summary' => '解绑网络型负载均衡实例中的共享带宽包。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3700,150 +2461,91 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'ZoneMappings', + 'name' => 'LoadBalancerId', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '可用区及交换机映射列表。'."\n" - ."\n" - .'> 一次调用最多支持移除一个可用区。', - 'type' => 'array', - 'items' => [ - 'description' => '可用区及交换机映射列表。'."\n" - ."\n" - .'> 一次调用最多支持移除一个可用区。', - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-bp1rmcrwg3erh1fh8****', - ], - 'ZoneId' => [ - 'description' => 'NLB实例的可用区ID。'."\n" - .'> 一次调用最多支持移除一个可用区。'."\n" - ."\n" - .'您可以通过调用[DescribeZones](~~443890~~)接口获取可用区ID。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou-a', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 1, - 'minItems' => 1, - ], + 'schema' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], ], [ - 'name' => 'LoadBalancerId', + 'name' => 'BandwidthPackageId', 'in' => 'formData', - 'schema' => [ - 'description' => 'NLB实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['description' => '需要移除的共享带宽包ID。', 'type' => 'string', 'required' => true, 'example' => 'cbwp-bp1pzf0ym72pu3y76****'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会移除可用区。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会解绑带宽包。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'NLB实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<LoadBalancerZonesResponse>', - 'description' => 'RpcResponse<LoadBalancerZonesResponse>', + 'title' => 'response', + 'description' => '解绑共享带宽包。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], + ['errorCode' => 'OperationDenied.%s', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '因为%s,当前操作是不允许的'], + ['errorCode' => 'ResourceNotAssociated.loadbalancer', 'errorMessage' => 'Thre resource is not associated with loadbalancer.', 'description' => '当前带宽包没有和参数中的lb关联,请检查输入参数。'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.%s', - 'errorMessage' => 'Authentication is failed for %s.', - ], - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DetachCommonBandwidthPackageFromLoadBalancerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DetachCommonBandwidthPackageFromLoadBalancerResponse>","errorExample":""}]', + 'title' => '实例解绑共享带宽包', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DetachCommonBandwidthPackageFromLoadBalancer'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:DetachCommonBandwidthPackageFromLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"<StartShiftLoadBalancerZonesResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n</StartShiftLoadBalancerZonesResponse>","errorExample":""}]', - 'title' => '把可用区的EIP/VIP从域名解析中摘除', - 'description' => '> 当前NLB实例可用区数量为1时,不支持将该可用区的EIP/VIP从域名解析中摘除。', ], - 'CancelShiftLoadBalancerZones' => [ - 'summary' => '将可用区对应的EIP/VIP加回到域名解析中。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DisableLoadBalancerIpv6Internet' => [ + 'summary' => '将双栈NLB实例的Pv6地址从公网变更为私网。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3851,150 +2553,86 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'ZoneMappings', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '可用区及交换机映射列表。'."\n" - ."\n" - .'> 一次调用最多支持加回一个可用区。', - 'type' => 'array', - 'items' => [ - 'description' => '可用区及交换机映射列表。'."\n" - ."\n" - .'> 一次调用最多支持加回一个可用区。', - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-sersdf****', - ], - 'ZoneId' => [ - 'description' => 'NLB实例的可用区ID。'."\n" - .'> 一次调用最多支持加回一个可用区。'."\n" - ."\n" - .'您可以通过调用[DescribeZones](~~443890~~)接口获取可用区ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou-a', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 1, - 'minItems' => 1, - ], - ], - [ 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => 'NLB实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会加回可用区。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会变更Pv6类型实例的网络类型。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'NLB实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<LoadBalancerZonesResponse>', - 'description' => 'RpcResponse<LoadBalancerZonesResponse>', + 'title' => 'response', + 'description' => 'response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.ZoneId', - 'errorMessage' => 'The zoneId status of eni [%s] is incorrect.', - ], + ['errorCode' => 'OperationDenied.Ipv6IntranetInstance', 'errorMessage' => 'The operation is not allowed because of Ipv6IntranetInstance.', 'description' => '私网ipv6负载均衡实例不支持当前操作。'], + ['errorCode' => 'OperationDenied.NonDualStackInstance', 'errorMessage' => 'The operation is not allowed because of NonDualStackInstance.', 'description' => '由于不存在双栈实例,因此操作不被允许。'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => '正在配置指定的负载均衡资源,请稍后重试。'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.%s', - 'errorMessage' => 'Authentication is failed for %s.', - ], - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableLoadBalancerIpv6InternetResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DisableLoadBalancerIpv6InternetResponse>","errorExample":""}]', + 'title' => '关闭NLB实例IPv6公网', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableLoadBalancerIpv6Internet'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:DisableLoadBalancerIpv6Internet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"<CancelShiftLoadBalancerZonesResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n</CancelShiftLoadBalancerZonesResponse>","errorExample":""}]', - 'title' => '把可用区的EIP/VIP加到DNS中', - 'description' => '调用本接口时,您已通过[StartShiftLoadBalancerZones](~~2411999~~)接口或控制台移除NLB实例的某个可用区。', ], - 'CreateListener' => [ - 'summary' => '在网络型负载均衡实例中创建TCP、UDP或TCPSSL监听。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DisassociateAdditionalCertificatesWithListener' => [ + 'summary' => '解除TCPSSL监听关联的扩展证书。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4003,675 +2641,463 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '141889', - 'abilityTreeNodes' => [ - 'FEATUREslbC68LB1', - 'FEATUREslb4PUXNB', - 'FEATUREslbGDCN1S', - 'FEATUREslbUZZGGD', - ], + 'abilityTreeCode' => '177213', + 'abilityTreeNodes' => ['FEATUREslbEI2GF0'], ], 'parameters' => [ [ - 'name' => 'ListenerProtocol', + 'name' => 'AdditionalCertificateIds', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'title' => '监听协议', - 'description' => '监听协议。取值:**TCP**、**UDP**或**TCPSSL**。', - 'type' => 'string', + 'title' => 'server扩展证书列表', + 'description' => '扩展证书列表。一次调用最多支持为监听解绑15个扩展证书。', + 'type' => 'array', + 'items' => ['description' => '扩展证书列表。仅支持服务器证书,一次调用最多支持为监听解绑15个扩展证书。', 'type' => 'string', 'required' => false, 'example' => '123157******'], 'required' => true, - 'example' => 'TCP', - 'enum' => [], + 'maxItems' => 15, + 'minItems' => 1, ], ], [ - 'name' => 'ListenerPort', + 'name' => 'ListenerId', 'in' => 'formData', - 'schema' => [ - 'title' => '监听端口', - 'description' => '监听端口。取值范围:**0**~**65535**。'."\n" - ."\n" - .'**0**:表示使用全端口功能。当设置为**0**时,您需要配置**StartPort**和**EndPort**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '65535', - 'minimum' => '0', - 'example' => '80', - ], + 'schema' => ['title' => 'update or delete必选, add在custom中生成', 'description' => '监听ID。该接口仅支持输入TCPSSL监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-bpn0kn908w4nbw****@80'], ], [ - 'name' => 'ListenerDescription', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'title' => '监听描述', - 'description' => '自定义监听名称。'."\n" - ."\n" - .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'tcp_80', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会为TCPSSL监听解绑扩展证书。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'LoadBalancerId', + 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'title' => 'add 必选', - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + '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' => 'ServerGroupId', + 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'title' => 'servergroupId', - 'description' => '服务器组ID。'."\n" - .'> - 当**ListenerProtocol**取值为**TCP**时,该监听支持选择后端协议为**TCP**或者**TCP_UDP**的服务器组,不支持选择后端协议为**UDP**的服务器组。'."\n" - .'> - 当**ListenerProtocol**取值为**UDP**时,该监听支持选择后端协议为**UDP**或者**TCP_UDP**的服务器组,不支持选择后端协议为**TCP**的服务器组。'."\n" - .'> - 当**ListenerProtocol**取值为**TCPSSL**时,该监听支持选择后端协议为**TCP**且**未开启客户端地址保持功能**的服务器组,不支持选择后端协议为**TCP**且**开启客户端地址保持功能**的服务器组、后端协议为**UDP**或者**TCP_UDP**的服务器组。', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-ppdpc14gdm3x4o****', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], - [ - 'name' => 'IdleTimeout', - 'in' => 'formData', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '空闲超时时间', - 'description' => '连接空闲超时时间。单位:秒。'."\n" - ."\n" - .'- 当**ListenerProtocol**取值为**TCP**或**TCPSSL**时,连接空闲超时时间取值范围为:**10**~**900**。默认值:**900**。'."\n" - ."\n" - .'- 当**ListenerProtocol**取值为**UDP**时,连接空闲超时时间取值范围为:**10**~**90**。默认值:**90**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '3600', - 'minimum' => '10', - 'example' => '900', + 'title' => 'RpcResponse<AdditionalCertificatesWithListenerResponse>', + 'description' => 'RpcResponse<AdditionalCertificatesWithListenerResponse>', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + ], ], ], - [ - 'name' => 'SecurityPolicyId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'Tclssl监听的安全策略', - 'description' => '安全策略ID。支持系统安全策略和自定义安全策略。'."\n" - ."\n" - .'- 系统策略取值:**tls_cipher_policy_1_0**(默认值)、**tls_cipher_policy_1_1**、**tls_cipher_policy_1_2**、**tls_cipher_policy_1_2_strict**或**tls_cipher_policy_1_2_strict_with_1_3**。'."\n" - .'- 自定义安全策略:输入自定义安全策略ID。'."\n" - .' - 创建自定义策略,请参见[CreateSecurityPolicy](~~445901~~)。'."\n" - .' - 查询安全策略,请参见[ListSecurityPolicy](~~445900~~)。'."\n" - ."\n" - .'>仅对TCPSSL监听生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'tls_cipher_policy_1_0', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的状态无效。'], + ['errorCode' => 'IncorrectStatus.certificate', '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]的状态无效。'], + ['errorCode' => 'OperationDenied.Protocol', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'], + ['errorCode' => 'OperationDenied.DefaultCertificateUsed', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'], + ['errorCode' => 'ResourceNotAssociated.Certificate', 'errorMessage' => 'The specified resource %s is not associated.', 'description' => '资源%s未被关联。'], + ['errorCode' => 'OperationDenied.CaCertificateUsed', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '资源%s已被关联。'], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => '指定的资源当前存在锁冲突。'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Nlb::2022-04-30::GetJobStatus', 'callbackInterval' => 5, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DisassociateAdditionalCertificatesWithListenerResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DisassociateAdditionalCertificatesWithListenerResponse>","errorExample":""}]', + 'title' => '解除关联监听和扩展证书', + 'description' => '**DisassociateAdditionalCertificatesWithListener**接口属于异步接口,即系统返回一个请求ID,但该扩展证书尚未解绑成功,系统后台的解绑任务仍在进行。您可以调用[ListListenerCertificates](~~615175~~)查询扩展证书的解绑状态:'."\n" + .' - 当扩展证书状态处于**Dissociating**状态时,表示扩展证书正在解绑中。'."\n" + .' - 当扩展证书状态处于**Dissociated**状态时,表示扩展证书解绑成功。', + 'changeSet' => [ + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisassociateAdditionalCertificatesWithListener'], ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ [ - 'name' => 'CertificateIds', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'server证书列表', - 'description' => '服务器证书列表信息。仅对TCPSSL监听生效。'."\n" - ."\n" - .'> 目前仅支持添加1个服务器证书。', - 'type' => 'array', - 'items' => [ - 'description' => '服务器证书列表信息。仅对TCPSSL监听生效。'."\n" - ."\n" - .'> 目前仅支持添加1个服务器证书。', - 'type' => 'string', - 'required' => false, - 'example' => '123157******', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:DisassociateAdditionalCertificatesWithListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:loadbalancer/{#LoadBalancerId}'], ], - 'required' => false, - 'maxItems' => 10, ], ], + ], + ], + 'EnableLoadBalancerIpv6Internet' => [ + 'summary' => '将双栈NLB实例的IPv6地址从私网变更为公网。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'CaCertificateIds', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'ca 证书列表', - 'description' => 'CA证书列表。仅对TCPSSL监听生效。'."\n" - ."\n" - .'> 目前仅支持添加1个CA证书。', - 'type' => 'array', - 'items' => [ - 'description' => 'CA证书列表。仅对TCPSSL监听生效。'."\n" - ."\n" - .'> 目前仅支持添加1个CA证书。', - 'type' => 'string', - 'required' => false, - 'example' => '139a00******', - ], - 'required' => false, - 'maxItems' => 10, - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'CaEnabled', + 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => '是否启动双向认证。取值:'."\n" - ."\n" - .'- **true**:启动。'."\n" - ."\n" - .'- **false**(默认值):关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会创建监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会变更Pv6类型实例的网络类型。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ProxyProtocolEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否开启通过Proxy Protocol协议携带客户端源地址到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**(默认值):关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - [ - 'name' => 'SecSensorEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否开启秒级监控功能。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**(默认值):关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - [ - 'name' => 'AlpnEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否开启ALPN。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**(默认值):关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], - [ - 'name' => 'AlpnPolicy', - 'in' => 'formData', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'ALPN策略。取值:'."\n" - ."\n" - .'- **HTTP1Only**:只协商使用HTTP1.x协议,优先级为HTTP1.1>HTTP1.0。'."\n" - .'- **HTTP2Only**:只协商使用HTTP2.0协议。'."\n" - .'- **HTTP2Optional**:优先使用HTTP1.x协议,但也接受HTTP2.0协议,优先级为HTTP1.1>HTTP1.0>HTTP2.0。'."\n" - .'- **HTTP2Preferred**:优先使用HTTP2.0协议,但也接受HTTP1.x协议,优先级为HTTP2.0>HTTP1.1>HTTP1.0。'."\n" - ."\n" - .'> **AlpnEnabled**开启后需配置该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP1Only', - 'enum' => [ - 'HTTP1Only', - 'HTTP2Only', - 'HTTP2Preferred', - 'HTTP2Optional', + 'title' => 'response', + 'description' => '双栈NLB实例的IPv6地址从私网变更为公网。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], ], ], ], - [ - 'name' => 'StartPort', - 'in' => 'formData', - 'schema' => [ - 'description' => '全端口监听起始端口。取值范围:**1** ~ **65535**。'."\n" - ."\n" - .'> 当**ListenerPort**为**0**时,需要配置该参数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '244', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.NonDualStackInstance', 'errorMessage' => 'The operation is not allowed because of NonDualStackInstance.', 'description' => '由于不存在双栈实例,因此操作不被允许。'], + ['errorCode' => 'ResourceInCreating.%s', 'errorMessage' => 'The specified resource of %s is creating, please try again later.', 'description' => '指定的资源%s正在创建中,请稍后重试。'], + ['errorCode' => 'ResourceInCreating.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', 'description' => '正在创建指定的负载均衡器资源,请稍后重试。'], ], - [ - 'name' => 'EndPort', - 'in' => 'formData', - 'schema' => [ - 'description' => '全端口监听结束端口。取值范围:**1** ~ **65535**。'."\n" - .'终止端口的取值大于起始端口。'."\n" - ."\n" - .'> 当**ListenerPort**为**0**时,需要配置该参数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '566', - ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - 'name' => 'Cps', - 'in' => 'formData', - 'schema' => [ - 'description' => '该监听在每个可用区(VIP)处理的每秒新建连接限速值。取值范围:**0**~**1000000**。**0**表示不限速。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.Ipv6Gateway', 'errorMessage' => 'The specified resource of Ipv6Gateway is not found.', 'description' => '找不到指定的 IPv6 网关资源。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableLoadBalancerIpv6InternetResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</EnableLoadBalancerIpv6InternetResponse>","errorExample":""}]', + 'title' => '开启NLB实例IPv6公网', + 'changeSet' => [ + ['createdAt' => '2024-02-29T07:14:36.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-09-05T02:00:44.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-08-22T04:15:27.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-03-30T07:22:05.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2022-08-03T07:32:21.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-07-04T03:05:33.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-06-27T08:29:22.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableLoadBalancerIpv6Internet'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:EnableLoadBalancerIpv6Internet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], + ], + ], + 'GetJobStatus' => [ + 'summary' => '查询网络型负载均衡的异步任务执行结果信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Mss', - 'in' => 'formData', - 'schema' => [ - 'description' => 'TCP报文的最大段大小。单位:字节,取值范围:**0**~**1500**。'."\n" - .'**0**:表示不修改用户TCP报文的MSS值。'."\n" - ."\n" - .'> 仅TCP、TCPSSL类型的监听支持该字段值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '43', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'Tag', - 'in' => 'formData', - 'allowEmptyValue' => true, - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持64个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" - ."\n" - .'一次调用最多支持添加20个标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'KeyTest', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" - ."\n" - .'一次调用最多支持添加20个标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'name' => 'JobId', + 'in' => 'query', + 'schema' => ['title' => 'add 必选', 'description' => '异步任务ID。', 'type' => 'string', 'required' => true, 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], [ - 'name' => 'ProxyProtocolV2Config', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '通过Proxy Protocol协议携带VpcId、PrivateLinkEpId、PrivateLinkEpsId信息到后端服务器配置。', - 'type' => 'object', - 'properties' => [ - 'Ppv2VpcIdEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带VpcId到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**(默认值):关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - 'Ppv2PrivateLinkEpIdEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带Ppv2PrivateLinkEpId到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**(默认值):关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - 'Ppv2PrivateLinkEpsIdEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpsId到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**(默认值):关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - 'required' => false, - ], + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<CreateListenerResponse>', - 'description' => 'RpcResponse<CreateListenerResponse>', + 'title' => 'RpcResponse<GetJodResponse>', + 'description' => '查询异步任务结果。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'ListenerId' => [ - 'description' => '监听ID。', - 'type' => 'string', - 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'], + 'Status' => ['description' => '任务状态。取值:'."\n" + ."\n" + .'- **Succeeded**:成功。'."\n" + .'- **Processing**:执行中。', 'type' => 'string', 'example' => 'Succeeded'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Conflict.Port', - 'errorMessage' => 'The Port [%s] is conflict.', - ], - [ - 'errorCode' => 'IllegalParam.MssConflictWithUdpAndGeneve', - 'errorMessage' => 'The param of MssConflictWithUdpAndGeneve is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded.%s', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The VpcId is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'ResourceNotEnough.%s', - 'errorMessage' => 'The specified resource of %s is not enough.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'IllegalParam.AnyPortListenerConflictWithNonAnyPortServerGroup', - 'errorMessage' => 'The param of AnyPortListenerConflictWithNonAnyPortServerGroup is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.loadbalancer', - 'errorMessage' => 'The status of loadbalancer [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.Certificate', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'IllegalParam.ServerGroupId', - 'errorMessage' => 'The param of ServerGroupId is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.NonAnyPortListenerConflictWithAnyPortServerGroup', - 'errorMessage' => 'The param of NonAnyPortListenerConflictWithAnyPortServerGroup is illegal.', - ], - [ - 'errorCode' => 'MissingParam.Certificate', - 'errorMessage' => 'The param of certificate is missing.', - ], - [ - 'errorCode' => 'IllegalParam.Port', - 'errorMessage' => 'The param of Port is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded.QuotaInsufficient', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'Mismatch.Protocol', - 'errorMessage' => 'The Protocol is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'ResourceNotEnough.CaCertificateApiCount', - 'errorMessage' => 'The specified resource of CaCertificateApiCount is not enough.', - ], - [ - 'errorCode' => 'MissingParam.ServerGroupId', - 'errorMessage' => 'The param of ServerGroupId is missing.', - ], - [ - 'errorCode' => 'IllegalParam.ListenerDescription', - 'errorMessage' => 'The parameter ListenerDescription of listener is illegal.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IllegalParam.IdleTimeout', - 'errorMessage' => 'The param of IdleTimeout is illegal.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IllegalParamSize.certificateIds', - 'errorMessage' => 'The param size of certificateIds or caCertificateIds is illegal.', - ], - [ - 'errorCode' => 'DuplicatedParam.listener', - 'errorMessage' => 'The param of any port listener is duplicated.', - ], - [ - 'errorCode' => 'IllegalParam.PreserveClientIpSwitch', - 'errorMessage' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.', - ], - [ - 'errorCode' => 'OperationDenied.RegionNotSupportHDMonitor', - 'errorMessage' => 'The operation is not allowed because of RegionNotSupportHDMonitor.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource of vSwitch is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.CaCertificate', - 'errorMessage' => 'The specified resource of CaCertificate is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.HdMonitorConfigNotExist', - 'errorMessage' => 'The specified resource of HdMonitorConfigNotExist is not found.', + ['errorCode' => 'ResourceNotFound.JobId', 'errorMessage' => 'The specified resource of JobId is not found.', 'description' => '找不到指定的JobId资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"Status\\": \\"Succeeded\\"\\n}","errorExample":""},{"type":"xml","example":"<GetJobStatusResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <Status>Succeeded</Status>\\n</GetJobStatusResponse>","errorExample":""}]', + 'title' => '查询异步任务结果', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJobStatus'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetJobStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@80\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateListenerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <ListenerId>lsn-bp1bpn0kn908w4nbw****</ListenerId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</CreateListenerResponse>","errorExample":""}]', - 'title' => '创建监听', ], - 'DeleteListener' => [ - 'summary' => '删除网络型负载均衡监听。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetListenerAttribute' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslbC68LB1', 'FEATUREslb4PUXNB', 'FEATUREslbGDCN1S', 'FEATUREslbUZZGGD'], ], 'parameters' => [ [ 'name' => 'ListenerId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => '监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', - ], + 'in' => 'query', + 'schema' => ['title' => 'update or delete必选, add在custom中生成', 'description' => '监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn908w4nbw****@233'], ], [ 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会删除监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'in' => 'query', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会查询监听详情。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], ], [ 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'in' => 'query', + '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' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'in' => 'query', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<UpdateOrDeleteListenerResponse>', - 'description' => '删除监听。', + 'title' => 'RpcResponse<GetListenerAttributeResponse>', + 'description' => '查询监听属性。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'RegionId' => ['title' => '业务location', 'description' => '网络型负载均衡实例所在的地域ID。 ', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'LoadBalancerId' => ['title' => '列表id', 'description' => '网络型负载均衡实例ID。', 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****'], + 'ListenerId' => ['title' => '监听id', 'description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-bp1bpn0kn908w4nbw****@233'], + 'ListenerProtocol' => ['title' => '监听协议 (TCP, UDP, TCPSSL, GENEVE)', 'description' => '监听协议。取值:**TCP**、**UDP**或**TCPSSL**。', 'type' => 'string', 'example' => 'TCPSSL'], + 'ListenerPort' => ['title' => '监听端口', 'description' => '监听端口。取值范围:**0**~**65535**。**0**:表示使用全端口监听。当设置为**0**时,您需要配置**StartPort**和**EndPort**。', 'type' => 'integer', 'format' => 'int32', 'example' => '233'], + 'StartPort' => ['title' => 'anyPort监听起始端口', 'description' => '全端口监听起始端口。取值范围:**0** ~ **65535**。', 'type' => 'string', 'example' => '233'], + 'EndPort' => ['title' => 'anyPort监听结束端口', 'description' => '全端口监听结束端口。取值范围:**0**~ **65535**。结束端口的取值小于起始端口。', 'type' => 'string', 'example' => '455'], + 'ListenerDescription' => ['title' => '监听描述', 'description' => '自定义监听名称。'."\n" + ."\n" + .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', 'type' => 'string', 'example' => 'tcpssl_443'], + 'ServerGroupId' => ['title' => 'servergroupId', 'description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-ppdpc14gdm3x4o****'], + 'IdleTimeout' => ['title' => '空闲超时时间', 'description' => '连接空闲超时时间。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '900'], + 'SecurityPolicyId' => ['title' => 'Tclssl监听的安全策略', 'description' => '安全策略ID。支持系统安全策略和自定义安全策略。'."\n" + ."\n" + .'- 系统策略取值:**tls_cipher_policy_1_0**(默认值)、**tls_cipher_policy_1_1**、**tls_cipher_policy_1_2**、**tls_cipher_policy_1_2_strict**或**tls_cipher_policy_1_2_strict_with_1_3**。'."\n" + .'- 自定义安全策略:输入自定义安全策略ID。'."\n" + .' - 创建自定义策略,请参见[CreateSecurityPolicy](~~445901~~)。'."\n" + .' - 查询安全策略,请参见[ListSecurityPolicy](~~445900~~)。'."\n" + ."\n" + .'>仅对TCPSSL监听生效。', 'type' => 'string', 'example' => 'tls_cipher_policy_1_0'], + 'CertificateIds' => [ + 'title' => 'server证书列表', + 'description' => '服务器证书列表信息。目前仅支持添加1个服务器证书。'."\n" + ."\n" + .'> 该参数仅对TCPSSL监听生效。', + 'type' => 'array', + 'items' => ['description' => '服务器证书列表信息。目前仅支持添加1个服务器证书。'."\n" + ."\n" + .'> 该参数仅对TCPSSL监听生效。', 'type' => 'string', 'example' => '123157******'], ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'CaCertificateIds' => [ + 'title' => 'ca 证书列表', + 'description' => 'CA证书列表信息。目前仅支持添加1个CA证书。'."\n" + .'> 该参数仅对TCPSSL监听生效。'."\n", + 'type' => 'array', + 'items' => ['description' => 'CA证书列表信息。目前仅支持添加1个CA证书。'."\n" + .'> 该参数仅对TCPSSL监听生效。', 'type' => 'string', 'example' => '139a00******'], + ], + 'CaEnabled' => ['description' => '是否启动双向认证。取值:'."\n" + ."\n" + .'- **true**:启动。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'AlpnEnabled' => ['description' => '是否开启ALPN。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'AlpnPolicy' => ['description' => 'ALPN策略。取值:'."\n" + ."\n" + .'- **HTTP1Only**'."\n" + .'- **HTTP2Only**'."\n" + .'- **HTTP2Preferred**'."\n" + .'- **HTTP2Optional**', 'type' => 'string', 'example' => 'HTTP1Only'], + 'ProxyProtocolEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带客户端源地址到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'ProxyProtocolV2Config' => [ + 'description' => '通过Proxy Protocol协议携带VpcId、PrivateLinkEpId、PrivateLinkEpsId信息到后端服务器配置。', + 'type' => 'object', + 'properties' => [ + 'Ppv2VpcIdEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带VpcId到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'Ppv2PrivateLinkEpIdEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpId到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'Ppv2PrivateLinkEpsIdEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpsId到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + ], + ], + 'SecSensorEnabled' => ['description' => '是否开启秒级监控功能。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'ListenerStatus' => ['description' => '当前监听的状态,取值:'."\n" + ."\n" + .'- **Provisioning**:创建中。'."\n" + ."\n" + .'- **Running**:运行中。'."\n" + ."\n" + .'- **Configuring**:配置中。'."\n" + ."\n" + .'- **Stopping**:停止中。'."\n" + ."\n" + .'- **Stopped**:已停止。'."\n" + ."\n" + .'- **Starting**:启动中。'."\n" + ."\n" + .'- **Deleting**:删除中。'."\n" + ."\n" + .'- **Deleted**:已删除。', 'type' => 'string', 'example' => 'Running'], + 'Cps' => ['description' => '该监听在每个可用区(VIP)处理的每秒新建连接限速值。取值范围:**0**~**1000000**。**0**表示不限速。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'Mss' => ['description' => 'TCP报文的最大段大小。单位:字节,取值范围:**0**~**1500**。**0**表示不修改用户TCP报文的MSS值。'."\n" + ."\n" + .'> 仅TCP、TCPSSL类型的监听支持该字段值。', 'type' => 'integer', 'format' => 'int32', 'example' => '166'], + 'Tags' => [ + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'TagKey' => ['description' => '标签键。', 'type' => 'string', 'example' => 'ac-cus-tag-4'], + 'TagValue' => ['description' => '标签值。', 'type' => 'string', 'example' => 'ON'], + ], + ], ], ], ], @@ -4679,258 +3105,397 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IncorrectStatus.listener', - 'errorMessage' => 'The status of listener [%s] is incorrect.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IncorrectStatus.loadbalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => '查询监听的属性', + 'summary' => '查询网络型负载均衡实例的监听详情。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetListenerAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetListenerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteListenerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DeleteListenerResponse>","errorExample":""}]', - 'title' => '删除监听', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@233\\",\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ListenerPort\\": 233,\\n \\"StartPort\\": \\"233\\",\\n \\"EndPort\\": \\"455\\",\\n \\"ListenerDescription\\": \\"tcpssl_443\\",\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"IdleTimeout\\": 900,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_0\\",\\n \\"CertificateIds\\": [\\n \\"123157******\\"\\n ],\\n \\"CaCertificateIds\\": [\\n \\"139a00******\\"\\n ],\\n \\"CaEnabled\\": false,\\n \\"AlpnEnabled\\": false,\\n \\"AlpnPolicy\\": \\"HTTP1Only\\",\\n \\"ProxyProtocolEnabled\\": false,\\n \\"ProxyProtocolV2Config\\": {\\n \\"Ppv2VpcIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpsIdEnabled\\": false\\n },\\n \\"SecSensorEnabled\\": false,\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"Cps\\": 1000,\\n \\"Mss\\": 166,\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"ac-cus-tag-4\\",\\n \\"TagValue\\": \\"ON\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetListenerAttributeResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <RegionId>cn-hangzhou</RegionId>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n <ListenerId>lsn-ga6sjjcll6ou34l1et****</ListenerId>\\n <ListenerProtocol>TCPSSL</ListenerProtocol>\\n <ListenerPort>233</ListenerPort>\\n <StartPort>233</StartPort>\\n <EndPort>455</EndPort>\\n <ListenerDescription>tcpssl_443</ListenerDescription>\\n <ServerGroupId>sgp-ppdpc14gdm3x4o****</ServerGroupId>\\n <IdleTimeout>900</IdleTimeout>\\n <SecurityPolicyId>tls_cipher_policy_1_0</SecurityPolicyId>\\n <CertificateIds>12315790212_166f8204689_1714763408_70998****</CertificateIds>\\n <CaCertificateIds>139a00604ad-cn-east-hangzh****</CaCertificateIds>\\n <CaEnabled>false</CaEnabled>\\n <AlpnEnabled>false</AlpnEnabled>\\n <AlpnPolicy>HTTP1Only</AlpnPolicy>\\n <ProxyProtocolEnabled>false</ProxyProtocolEnabled>\\n <SecSensorEnabled>false</SecSensorEnabled>\\n <ListenerStatus>Running</ListenerStatus>\\n <Cps>1000</Cps>\\n <Mss>166</Mss>\\n</GetListenerAttributeResponse>","errorExample":""}]', ], - 'StartListener' => [ - 'summary' => '启动网络型负载均衡监听。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetListenerHealthStatus' => [ + 'summary' => '查询网络型负载均衡实例监听的健康检查状态。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '141893', - 'abilityTreeNodes' => [ - 'FEATUREslbC68LB1', - 'FEATUREslb4PUXNB', - 'FEATUREslbGDCN1S', - 'FEATUREslbUZZGGD', - ], + 'operationType' => 'get', + 'abilityTreeCode' => '142934', + 'abilityTreeNodes' => ['FEATUREslbL239O5', 'FEATUREslbVDXH6N'], ], 'parameters' => [ [ 'name' => 'ListenerId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => '监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会启动监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'in' => 'query', + 'schema' => ['description' => '网络型负载均衡实例的监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn908w4nbw****@80'], ], [ 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'in' => 'query', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<StopOrStartListenerResponse>', - 'description' => '启动监听。', + 'title' => 'RpcResponse<GetListenerHealthStatusResponse>', + 'description' => '查询监听健康检查状态。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'ListenerHealthStatus' => [ + 'description' => '监听的服务器组健康检查状态列表。', + 'type' => 'array', + 'items' => [ + 'description' => '监听的服务器组健康检查状态列表。', + 'type' => 'object', + 'properties' => [ + 'ListenerId' => ['description' => '网络型负载均衡实例的监听ID。', 'type' => 'string', 'example' => 'lsn-bp1bpn0kn908w4nbw****@80'], + 'ListenerPort' => ['description' => '监听的端口号。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'ListenerProtocol' => ['description' => '监听协议。取值:**TCP**、**UDP**或**TCPSSL**。', 'type' => 'string', 'example' => 'TCPSSL'], + 'ServerGroupInfos' => [ + 'description' => '服务器组信息。', + 'type' => 'array', + 'items' => [ + 'description' => '服务器组信息。', + 'type' => 'object', + 'properties' => [ + 'HeathCheckEnabled' => ['description' => '是否开启健康检查。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'true'], + 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-ppdpc14gdm3x4o****'], + 'NonNormalServers' => [ + 'description' => '非正常状态的后端服务器列表。', + 'type' => 'array', + 'items' => [ + 'description' => '非正常状态的后端服务器列表。', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '健康检查状态。取值:'."\n" + ."\n" + .'- **Initial**:初始化中,表示负载均衡实例配置了健康检查,但查不到数据。'."\n" + ."\n" + .'- **Unhealthy**:异常,表示连续上报不健康的状态。'."\n" + ."\n" + .'- **Unavailable**:未开启,表示未开启健康检查。', 'type' => 'string', 'example' => 'Initial'], + 'Port' => ['description' => '后端服务器端口。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'Reason' => [ + 'description' => '非正常状态的原因。', + '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' => ['description' => '后端服务器ID。', 'type' => 'string', 'example' => 'i-bp1bt75jaujl7tjl****'], + 'ServerIp' => ['description' => '后端服务器IP。', 'type' => 'string', 'example' => '192.168.8.10'], + ], + ], + ], + ], + ], + ], + ], + ], ], + 'TotalCount' => ['description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'MaxResults' => ['description' => '分批次查询时每次显示的条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.listener', - 'errorMessage' => 'The status of listener [%s] is incorrect.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ListenerHealthStatus\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@80\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HeathCheckEnabled\\": true,\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Status\\": \\"Initial\\",\\n \\"Port\\": 80,\\n \\"Reason\\": {\\n \\"ReasonCode\\": \\"CONNECT_TIMEOUT\\"\\n },\\n \\"ServerId\\": \\"i-bp1bt75jaujl7tjl****\\",\\n \\"ServerIp\\": \\"192.168.8.10\\"\\n }\\n ]\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<GetListenerHealthStatusResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ListenerHealthStatus>\\n <ListenerId>lsn-agkd9gmjx8nd85jjs0****</ListenerId>\\n <ListenerPort>80</ListenerPort>\\n <ListenerProtocol>TCPSSL</ListenerProtocol>\\n <ServerGroupInfos>\\n <HeathCheckEnabled>true</HeathCheckEnabled>\\n <ServerGroupId>sgp-ppdpc14gdm3x4o****</ServerGroupId>\\n <NonNormalServers>\\n <Status>Initial</Status>\\n <Port>80</Port>\\n <Reason>\\n <ReasonCode>CONNECT_TIMEOUT</ReasonCode>\\n </Reason>\\n <ServerId>i-bp1bt75jaujl7tjl****</ServerId>\\n <ServerIp>192.168.8.10</ServerIp>\\n </NonNormalServers>\\n </ServerGroupInfos>\\n </ListenerHealthStatus>\\n <TotalCount>10</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</GetListenerHealthStatusResponse>","errorExample":""}]', + 'title' => '查询监听健康检查状态', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetListenerHealthStatus'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetListenerHealthStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<StartListenerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</StartListenerResponse>","errorExample":""}]', - 'title' => '启动监听', ], - 'StopListener' => [ - 'summary' => '停止网络型负载均衡实例的监听。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetLoadBalancerAttribute' => [ + 'summary' => '查询指定网络型负载均衡实例的详细信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', + 'abilityTreeNodes' => ['FEATUREslbZQW9H1'], ], 'parameters' => [ [ - 'name' => 'ListenerId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => '监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', - ], + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], ], [ 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会停止监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'in' => 'query', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会查询实例的配置信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'in' => 'query', + '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' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'in' => 'query', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<StopOrStartListenerResponse>', - 'description' => '停止监听。', + 'title' => 'response', + 'description' => 'response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'RegionId' => ['description' => 'NLB实例所在的地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'LoadBalancerId' => ['description' => 'NLB实例ID。', 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****'], + 'LoadBalancerName' => ['description' => 'NLB实例名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'example' => 'NLB1'], + 'LoadBalancerType' => ['description' => '负载均衡类型。仅取值:**network**,表示网络型负载均衡。', 'type' => 'string', 'example' => 'network'], + 'AddressType' => ['description' => 'NLB实例的IPv4网络地址类型。取值:'."\n" + .'- **Internet**:公网。负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + .'- **Intranet**:私网。负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'example' => 'Internet'], + 'AddressIpVersion' => ['description' => '协议版本。取值:'."\n" + ."\n" + .'- **ipv4**:IPv4类型。'."\n" + .'- **DualStack**:双栈类型。', 'type' => 'string', 'example' => 'ipv4'], + 'Ipv6AddressType' => ['description' => 'NLB实例的IPv6地址类型。取值:'."\n" + .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'example' => 'Internet'], + 'LoadBalancerStatus' => ['description' => 'NLB实例状态。取值:'."\n" + .'- **Inactive**:已停止,表示实例监听不会再转发流量。'."\n" + .'- **Active**:运行中。'."\n" + .'- **Provisioning**:创建中。'."\n" + .'- **Configuring**:变配中。'."\n" + .'- **CreateFailed**:创建失败,此时不会产生费用,实例只能被删除。', 'type' => 'string', 'example' => 'Active'], + 'LoadBalancerBusinessStatus' => ['description' => 'NLB的业务状态。取值:'."\n" + .'- **Abnormal**:异常状态。'."\n" + .'- **Normal**:正常状态。', 'type' => 'string', 'example' => 'Normal'], + 'OperationLocks' => [ + 'title' => '实例处于锁定状态列表', + 'description' => 'NLB实例处于锁定状态列表。在`LoadBalancerBussinessStatus`为**Abnormal**(异常状态)时才返回当前参数。', + 'type' => 'array', + 'items' => [ + 'description' => '网络型负载均衡实例处于锁定状态列表。在`LoadBalancerBussinessStatus`为**Abnormal**(异常状态)时才返回当前参数。。', + 'type' => 'object', + 'properties' => [ + 'LockType' => ['description' => '锁定的类型。取值 :'."\n" + .'- **SecurityLocked**:安全锁定。'."\n" + .'- **RelatedResourceLocked**:关联锁定。'."\n" + .'- **FinancialLocked**:欠费锁定。'."\n" + .'- **ResidualLocked**:残留锁定。'."\n", 'type' => 'string', 'example' => 'SecurityLocked'], + 'LockReason' => ['description' => '锁定的原因。', 'type' => 'string', 'example' => '业务异常。'], + ], + ], ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'VpcId' => ['description' => 'NLB实例的专有网络ID。', 'type' => 'string', 'example' => 'vpc-bp1b49rqrybk45nio****'], + 'CreateTime' => ['description' => '资源创建时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', 'type' => 'string', 'example' => '2022-07-02T02:49:05Z'], + 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-atstuj3rtop****'], + 'DNSName' => ['description' => 'DNS域名。', 'type' => 'string', 'example' => 'nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com'], + 'ZoneMappings' => [ + 'description' => '可用区及交换机映射列表,最多返回10个可用区。若当前地域支持2个及以上可用区,至少返回2个及以上可用区。', + 'type' => 'array', + 'items' => [ + 'description' => '可用区及交换机映射列表,最多返回10个可用区。若当前地域支持2个及以上可用区,至少返回2个及以上可用区。', + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。', 'type' => 'string', 'example' => 'vsw-bp1rmcrwg3erh1fh8****'], + 'ZoneId' => ['description' => '可用区ID,您可以通过调用[DescribeZones](~~443890~~)接口获取。', 'type' => 'string', 'example' => 'cn-hangzhou-a'], + 'LoadBalancerAddresses' => [ + 'description' => '网络型负载均衡实例地址信息。', + 'type' => 'array', + 'items' => [ + 'description' => '网络型负载均衡实例地址信息。', + 'type' => 'object', + 'properties' => [ + 'EniId' => ['description' => 'ENI的ID。', 'type' => 'string', 'example' => 'eni-bp12f1xhs5yal61a****'], + 'PrivateIPv4Address' => ['title' => '私网ip', 'description' => 'IPv4 私网VIP地址。NLB对外提供服务的私网IPv4地址。', 'type' => 'string', 'example' => '192.168.3.32'], + 'AllocationId' => ['title' => '公网ipId', 'description' => '弹性公网IP实例ID。', 'type' => 'string', 'example' => 'eip-bp1aedxso6u80u0qf****'], + 'PublicIPv4Address' => ['title' => '公网ip地址:仅Get的时候有值', 'description' => 'NLB实例公网IPv4地址。', 'type' => 'string', 'example' => '120.XX.XX.69'], + 'Ipv6Address' => ['description' => 'IPv6 VIP地址。NLB对外提供服务的IPv6地址。', 'type' => 'string', 'example' => '2001:db8:1:1:1:1:1:1'], + 'PrivateIPv4HcStatus' => ['description' => 'NLB实例私网IPv4地址的探测状态。取值:'."\n" + ."\n" + .'- **Healthy**:健康。'."\n" + .'- **Unhealthy**:异常。'."\n" + ."\n" + .'> 只有可用区状态(**Status**)为运行中(**Active**)时才返回该参数。', 'type' => 'string', 'example' => 'Healthy'], + 'PrivateIPv6HcStatus' => ['description' => 'NLB实例IPv6地址的探测状态。取值:'."\n" + ."\n" + .'- **Healthy**:健康。'."\n" + .'- **Unhealthy**:异常。'."\n" + ."\n" + .'> 只有可用区状态(**Status**)为运行中(**Active**)时才返回该参数。', 'type' => 'string', 'example' => 'Healthy'], + 'Ipv4LocalAddresses' => [ + 'description' => 'IPv4 Local地址列表。NLB与后端服务交互的地址列表。', + 'type' => 'array', + 'items' => ['description' => 'IPv4 Local地址。', 'type' => 'string', 'example' => '192.168.36.16'], + ], + 'Ipv6LocalAddresses' => [ + 'description' => 'IPv6 Local地址列表。NLB与后端服务交互的地址列表。', + 'type' => 'array', + 'items' => ['description' => 'IPv6 Local地址。', 'type' => 'string', 'example' => '2408:4005:357:ba00:64a2:221f:5685:8854'], + ], + ], + ], + ], + 'Status' => ['description' => '可用区状态。取值:'."\n" + ."\n" + .'- **Active**:启动。'."\n" + .'- **Stopped**:停止。该状态仅支持通过CADT容灾管理服务调用实现。'."\n" + .'- **Shifted**:DNS摘除。'."\n" + .'- **Starting**:启动中。该状态仅支持通过CADT容灾管理服务调用实现。'."\n" + .'- **Stopping**:停止中。该状态仅支持通过CADT容灾管理服务调用实现。', 'type' => 'string', 'example' => 'Active'], + ], + ], + ], + 'BandwidthPackageId' => ['description' => '公网类型实例关联的共享带宽包ID。', 'type' => 'string', 'example' => 'cbwp-bp1vevu8h3ieh****'], + 'SecurityGroupIds' => [ + 'description' => 'NLB实例绑定的安全组ID。', + 'type' => 'array', + 'items' => ['description' => 'NLB实例绑定的安全组ID。', 'type' => 'string', 'example' => 'sg-bp10uag3q0jkxu72****'], + ], + 'CrossZoneEnabled' => ['description' => 'NLB实例是否开启跨可用区。取值:'."\n" + .'- **true**:开启。'."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'true'], + 'LoadBalancerBillingConfig' => [ + 'title' => '计费相关属性', + 'description' => '负载均衡实例计费配置。', + 'type' => 'object', + 'properties' => [ + 'PayType' => ['title' => '实例的计费类型', 'description' => 'NLB实例的计费类型。'."\n" + .'仅取值**PostPay**:表示按量计费。', 'type' => 'string', 'example' => 'PostPay', 'default' => 'PostPay'], + ], + ], + 'Cps' => ['description' => 'NLB实例在每个可用区(VIP)处理的每秒新建连接限速值。取值范围:**0**~**1000000**。'."\n" + ."\n" + .'**0**表示不限速。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'DeletionProtectionConfig' => [ + 'description' => '删除保护配置。', + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['description' => '删除保护状态,取值:'."\n" + ."\n" + .'- **true**:开启状态。'."\n" + .'- **false**:关闭状态。', 'type' => 'boolean', 'example' => 'true'], + 'Reason' => ['description' => '更改删除保护状态的原因。长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'example' => '实例运行中'], + 'EnabledTime' => ['description' => '删除保护开启时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', 'type' => 'string', 'example' => '2022-11-02T02:49:05Z'], + ], + ], + 'ModificationProtectionConfig' => [ + 'description' => '修改保护配置。', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '网络型负载均衡修改保护状态。取值:'."\n" + ."\n" + .'- **NonProtection**:不保护,表示不允许传入修改保护配置的**Reason**字段。如果配置了**Reason**,则清空其配置信息。'."\n" + .'- **ConsoleProtection**:控制台修改保护,此时允许传入修改保护配置的**Reason**字段。'."\n" + ."\n" + .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。'."\n", 'type' => 'string', 'example' => 'ConsoleProtection'], + 'Reason' => ['description' => '输入开启修改保护的原因。长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" + ."\n" + .'仅在修改保护配置的**Status**为**ConsoleProtection**有效且合法。', 'type' => 'string', 'example' => '业务保障期'], + 'EnabledTime' => ['description' => '修改保护时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', 'type' => 'string', 'example' => '2022-12-02T02:49:05Z'], + ], + ], + 'Tags' => [ + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签列表。', + 'type' => 'object', + 'properties' => [ + 'TagKey' => ['description' => '实例的标签键。', 'type' => 'string', 'example' => 'KeyTest'], + 'TagValue' => ['description' => '实例的标签值。', 'type' => 'string', 'example' => 'ValueTest'], + ], + ], ], ], ], @@ -4938,477 +3503,287 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IncorrectStatus.listener', - 'errorMessage' => 'The status of listener [%s] is incorrect.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], + ['errorCode' => 'DuplicatedParam.%s', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '参数%s重复了'], + ['errorCode' => 'OperationFailed.GetXipFailed', 'errorMessage' => 'Operation failed because GetXipFailed.', 'description' => '操作失败,因为实例还在创建中。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"LoadBalancerName\\": \\"NLB1\\",\\n \\"LoadBalancerType\\": \\"network\\",\\n \\"AddressType\\": \\"Internet\\",\\n \\"AddressIpVersion\\": \\"ipv4\\",\\n \\"Ipv6AddressType\\": \\"Internet\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"LoadBalancerBusinessStatus\\": \\"Normal\\",\\n \\"OperationLocks\\": [\\n {\\n \\"LockType\\": \\"SecurityLocked\\",\\n \\"LockReason\\": \\"业务异常。\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"DNSName\\": \\"nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"VSwitchId\\": \\"vsw-bp1rmcrwg3erh1fh8****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"EniId\\": \\"eni-bp12f1xhs5yal61a****\\",\\n \\"PrivateIPv4Address\\": \\"192.168.3.32\\",\\n \\"AllocationId\\": \\"eip-bp1aedxso6u80u0qf****\\",\\n \\"PublicIPv4Address\\": \\"120.XX.XX.69\\",\\n \\"Ipv6Address\\": \\"2001:db8:1:1:1:1:1:1\\",\\n \\"PrivateIPv4HcStatus\\": \\"Healthy\\",\\n \\"PrivateIPv6HcStatus\\": \\"Healthy\\",\\n \\"Ipv4LocalAddresses\\": [\\n \\"192.168.36.16\\"\\n ],\\n \\"Ipv6LocalAddresses\\": [\\n \\"2408:4005:357:ba00:64a2:221f:5685:8854\\"\\n ]\\n }\\n ],\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-bp10uag3q0jkxu72****\\"\\n ],\\n \\"CrossZoneEnabled\\": true,\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"Cps\\": 100,\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"Reason\\": \\"实例运行中\\",\\n \\"EnabledTime\\": \\"2022-11-02T02:49:05Z\\"\\n },\\n \\"ModificationProtectionConfig\\": {\\n \\"Status\\": \\"ConsoleProtection\\",\\n \\"Reason\\": \\"业务保障期\\",\\n \\"EnabledTime\\": \\"2022-12-02T02:49:05Z\\"\\n },\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"KeyTest\\",\\n \\"TagValue\\": \\"ValueTest\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetLoadBalancerAttributeResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <RegionId>cn-hangzhou</RegionId>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n <LoadBalancerName>NLB1</LoadBalancerName>\\n <LoadBalancerType>network</LoadBalancerType>\\n <AddressType>Internet</AddressType>\\n <AddressIpVersion>ipv4</AddressIpVersion>\\n <Ipv6AddressType>Internet</Ipv6AddressType>\\n <LoadBalancerStatus>Active</LoadBalancerStatus>\\n <LoadBalancerBusinessStatus>Normal</LoadBalancerBusinessStatus>\\n <OperationLocks>\\n <LockType>SecurityLocked</LockType>\\n <LockReason>业务异常。</LockReason>\\n </OperationLocks>\\n <VpcId>vpc-bp1b49rqrybk45nio****</VpcId>\\n <CreateTime>2022-07-02T02:49:05Z</CreateTime>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <DNSName>nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com</DNSName>\\n <ZoneMappings>\\n <VSwitchId>vsw-bp1rmcrwg3erh1fh8****</VSwitchId>\\n <ZoneId>cn-hangzhou-a</ZoneId>\\n <LoadBalancerAddresses>\\n <EniId>eni-bp12f1xhs5yal61a****</EniId>\\n <PrivateIPv4Address>192.168.3.32</PrivateIPv4Address>\\n <AllocationId>eip-bp1aedxso6u80u0qf****</AllocationId>\\n <PublicIPv4Address>120.XX.XX.69</PublicIPv4Address>\\n <Ipv6Address>2001:db8:1:1:1:1:1:1</Ipv6Address>\\n <PrivateIPv4HcStatus>Healthy</PrivateIPv4HcStatus>\\n <PrivateIPv6HcStatus>Healthy</PrivateIPv6HcStatus>\\n </LoadBalancerAddresses>\\n <Status>Active</Status>\\n </ZoneMappings>\\n <BandwidthPackageId>cbwp-bp1vevu8h3ieh****</BandwidthPackageId>\\n <SecurityGroupIds>sg-bp10uag3q0jkxu72****</SecurityGroupIds>\\n <CrossZoneEnabled>true</CrossZoneEnabled>\\n <LoadBalancerBillingConfig>\\n <PayType>PostPay</PayType>\\n </LoadBalancerBillingConfig>\\n <Cps>100</Cps>\\n <DeletionProtectionConfig>\\n <Enabled>true</Enabled>\\n <Reason>实例运行中</Reason>\\n <EnabledTime>2022-11-02T02:49:05Z</EnabledTime>\\n </DeletionProtectionConfig>\\n <ModificationProtectionConfig>\\n <Status>ConsoleProtection</Status>\\n <Reason>业务保障期</Reason>\\n <EnabledTime>2022-12-02T02:49:05Z</EnabledTime>\\n </ModificationProtectionConfig>\\n <Tags>\\n <TagKey>KeyTest</TagKey>\\n <TagValue>ValueTest</TagValue>\\n </Tags>\\n</GetLoadBalancerAttributeResponse>","errorExample":""}]', + 'title' => '查询负载均衡实例的详细信息', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetLoadBalancerAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetLoadBalancerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<StopListenerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</StopListenerResponse>","errorExample":""}]', - 'title' => '停止监听', ], - 'UpdateListenerAttribute' => [ - 'summary' => '更新网络型负载均衡监听的配置。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListAsynJobs' => [ + 'summary' => '批量查询异步任务结果。', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '141874', - 'abilityTreeNodes' => [ - 'FEATUREslbC68LB1', - 'FEATUREslb4PUXNB', - 'FEATUREslbGDCN1S', - 'FEATUREslbUZZGGD', - ], + 'abilityTreeCode' => '259936', + 'abilityTreeNodes' => ['FEATUREslbZQW9H1'], ], 'parameters' => [ [ - 'name' => 'ListenerId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => '监听实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@443', - ], - ], - [ - 'name' => 'ListenerDescription', - 'in' => 'formData', - 'schema' => [ - 'title' => '监听描述', - 'description' => '自定义监听名称。'."\n" - ."\n" - .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'tcpssl_443', - ], - ], - [ - 'name' => 'ServerGroupId', - 'in' => 'formData', - 'schema' => [ - 'title' => '实服务组', - 'description' => '服务器组ID。'."\n" - ."\n" - .'> - 当监听为**TCP**时,该监听支持选择后端协议为**TCP**或者**TCP_UDP**的服务器组,不支持选择后端协议为**UDP**的服务器组。'."\n" - .'> - 当监听为**UDP**时,该监听支持选择后端协议为**UDP**或者**TCP_UDP**的服务器组,不支持选择后端协议为**TCP**的服务器组。'."\n" - .'> - 当监听为**TCPSSL**时,该监听支持选择后端协议为**TCP**且**未开启客户端地址保持功能**的服务器组,不支持选择后端协议为**TCP**且**开启客户端地址保持功能**的服务器组、后端协议为**UDP**或者**TCP_UDP**的服务器组。', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-ppdpc14gdm3x4o****', - ], - ], - [ - 'name' => 'SecurityPolicyId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'https监听的安全策略', - 'description' => '安全策略ID。'."\n" - ."\n" - .'> 仅对TCPSSL监听生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'tls_cipher_policy_1_1', - ], - ], - [ - 'name' => 'CertificateIds', - 'in' => 'formData', - 'style' => 'repeatList', + 'name' => 'JobIds', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => 'server证书列表', - 'description' => '服务器证书列表信息。目前仅支持添加1个服务器证书。'."\n" - ."\n\n" - .'> 仅对TCPSSL监听生效。', + 'description' => '任务 ID 列表。', 'type' => 'array', - 'items' => [ - 'description' => '服务器证书列表信息。目前仅支持添加1个服务器证书。'."\n" - ."\n" - .'> 仅对TCPSSL监听生效。', - 'type' => 'string', - 'required' => false, - 'example' => '123157******', - ], + 'items' => ['description' => '异步任务 ID。', 'type' => 'string', 'required' => false, 'example' => 'bfb728bf-53a8-4886-84cb-829******'], 'required' => false, - 'maxItems' => 10, ], ], - [ - 'name' => 'CaCertificateIds', - 'in' => 'formData', - 'style' => 'repeatList', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => 'ca 证书列表', - 'description' => 'CA证书列表信息。目前仅支持添加1个CA证书。'."\n" - ."\n" - .'> 仅对TCPSSL监听生效。', - 'type' => 'array', - 'items' => [ - 'description' => 'CA证书列表信息。目前仅支持添加1个CA证书。'."\n" - ."\n" - .'> 仅对TCPSSL监听生效。', - 'type' => 'string', - 'required' => false, - 'example' => '139a00******', + 'title' => 'Schema of Response', + 'description' => '请求ID。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], + 'Jobs' => [ + 'description' => '任务列表。', + 'type' => 'array', + 'items' => [ + 'description' => '任务列表。', + 'type' => 'object', + 'properties' => [ + 'Id' => ['description' => '任务 ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B5****'], + 'Status' => ['description' => '任务状态,取值:'."\n" + ."\n" + .'- **Succeeded**:成功。'."\n" + .'- **Failed**:失败。'."\n" + .'- **Processing**:执行。', 'type' => 'string', 'example' => 'Succeeded'], + ], + ], + ], + 'TotalCount' => ['description' => '列表条目数。', 'type' => 'string', 'example' => '1000'], ], - 'required' => false, - 'maxItems' => 10, - ], - ], - [ - 'name' => 'CaEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否启动双向认证。取值:'."\n" - ."\n" - .'- **true**:启动。'."\n" - ."\n" - .'- **false**(默认值):关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', ], ], - [ - 'name' => 'IdleTimeout', - 'in' => 'formData', - 'schema' => [ - 'description' => '连接空闲超时时间。单位:秒。'."\n" - ."\n" - .'- 当监听为**TCP**或**TCPSSL**时,连接空闲超时时间取值范围为:**10**~**900**。默认值:**900**。'."\n" - ."\n" - .'- 当监听为**UDP**时,连接空闲超时时间取值范围为:**10**~**20**。默认值:**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '3600', - 'minimum' => '10', - 'example' => '900', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], ], - [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会更新监听信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + ['errorCode' => 'ResourceNotFound.JobId', 'errorMessage' => 'The specified resource of JobId is not found.', 'description' => '找不到指定的JobId资源,请检查输入参数。'], ], - [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"Jobs\\": [\\n {\\n \\"Id\\": \\"365F4154-92F6-4AE4-92F8-7FF34B5****\\",\\n \\"Status\\": \\"Succeeded\\"\\n }\\n ],\\n \\"TotalCount\\": \\"1000\\"\\n}","type":"json"}]', + 'title' => '批量查询异步任务结果', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListAsynJobs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'ListListenerCertificates' => [ + 'summary' => '查询TCPSSL监听的服务器证书。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ProxyProtocolEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否开启通过Proxy Protocol协议携带客户端源地址到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '141873', + 'abilityTreeNodes' => ['FEATUREslbEJQO6W'], + ], + 'parameters' => [ [ - 'name' => 'SecSensorEnabled', + 'name' => 'ListenerId', 'in' => 'formData', - 'schema' => [ - 'description' => '是否开启秒级监控功能。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '监听ID。仅TCPSSL监听有效。', 'type' => 'string', 'required' => true, 'example' => 'lsn-j49ht1jxxqyg45****@80'], ], [ - 'name' => 'AlpnEnabled', + 'name' => 'CertType', 'in' => 'formData', - 'schema' => [ - 'description' => '是否开启ALPN。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '证书类型。'."\n" + ."\n" + .'- **Ca**:CA证书。'."\n" + .'- **Server**:服务器证书。', 'type' => 'string', 'required' => false, 'example' => 'Ca'], ], [ - 'name' => 'AlpnPolicy', + 'name' => 'NextToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'ALPN策略。取值:'."\n" - ."\n" - .'- **HTTP1Only**:只协商使用HTTP1.x协议,优先级为HTTP1.1>HTTP1.0。'."\n" - .'- **HTTP2Only**:只协商使用HTTP2.0协议。'."\n" - .'- **HTTP2Optional**:优先使用HTTP1.x协议,但也接受HTTP2.0协议,优先级为HTTP1.1>HTTP1.0>HTTP2.0。'."\n" - .'- **HTTP2Preferred**:优先使用HTTP2.0协议,但也接受HTTP1.x协议,优先级为HTTP2.0>HTTP1.1>HTTP1.0。'."\n" - ."\n" - .'> AlpnEnabled开启后需配置该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP1Only', - 'enum' => [ - 'HTTP1Only', - 'HTTP2Only', - 'HTTP2Preferred', - 'HTTP2Optional', - ], - ], + 'schema' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'Cps', + 'name' => 'MaxResults', 'in' => 'formData', - 'schema' => [ - 'description' => '该监听在每个可用区(VIP)处理的每秒新建连接限速值。取值范围:**0**~**1000000**。**0**表示不限速。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10000', - ], + 'schema' => ['description' => '分批次查询时每次显示的条目数。取值范围:**1**~**50**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], [ - 'name' => 'Mss', + 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'TCP报文的最大段大小。单位:字节,取值范围:**0**~**1500**。**0**表示不修改用户TCP报文的MSS值。仅TCP、TCPSSL类型的监听支持该字段值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '344', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。'."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'ProxyProtocolV2Config', + 'name' => 'CertificateIds', 'in' => 'formData', - 'style' => 'json', + 'style' => 'repeatList', 'schema' => [ - 'description' => '通过Proxy Protocol协议携带VpcId、PrivateLinkEpId、PrivateLinkEpsId信息到后端服务器配置。', - 'type' => 'object', - 'properties' => [ - 'Ppv2VpcIdEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带VpcId到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'Ppv2PrivateLinkEpIdEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpId到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'Ppv2PrivateLinkEpsIdEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpsId到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], + 'description' => '服务器证书列表信息。目前仅支持添加 1 个服务器证书。'."\n" + ."\n" + .'> 仅对 TCPSSL 监听生效。', + 'type' => 'array', + 'items' => ['description' => '服务器证书列表信息。目前仅支持添加 1 个服务器证书。'."\n" + ."\n" + .'> 仅对 TCPSSL 监听生效。', 'type' => 'string', 'required' => false, 'example' => '123157******'], 'required' => false, + 'maxItems' => 100, ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<UpdateOrDeleteListenerResponse>', - 'description' => '更新监听配置。', + 'title' => 'RpcResponse<ListListenerCertificatesResponse>', + 'description' => '查询TCPSSL监听证书。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '2198BD6D-9EBB-5E1C-9C48-E0ABB79CF831'], + 'CertificateIds' => [ + 'description' => '服务器证书列表。', + 'type' => 'array', + 'items' => ['description' => '服务器证书列表。', 'type' => 'string', 'example' => '[ "931****-cn-hangzhou"]'], ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'Certificates' => [ + 'description' => '证书列表。', + 'type' => 'array', + 'items' => [ + 'description' => '证书列表。', + 'type' => 'object', + 'properties' => [ + 'CertificateId' => ['title' => '证书id', 'description' => '证书ID,当前仅支持服务器证书。', 'type' => 'string', 'example' => '12315790343_166f8204689_1714763408_70998****'], + 'IsDefault' => ['title' => '是否为监听默认证书', 'description' => '是否为监听默认证书。取值:'."\n" + ."\n" + .'- **true**:默认证书。'."\n" + ."\n" + .'- **false**:扩展证书。', 'type' => 'boolean', 'example' => 'true'], + 'Status' => ['title' => '证书与监听关联的状态', 'description' => '证书与监听关联的状态。取值:'."\n" + ."\n" + .'- **Associating**:关联中。'."\n" + ."\n" + .'- **Associated**:已关联。'."\n" + ."\n" + .'- **Diassociating**:解除关联中。', 'type' => 'string', 'example' => 'Associating'], + 'CertificateType' => ['title' => '证书类型', 'description' => '证书类型。', 'type' => 'string', 'example' => 'Server'], + ], + ], ], + 'TotalCount' => ['description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'MaxResults' => ['description' => '分批次查询时每次显示的条目数。取值范围:**1**~**50**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The VpcId is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'Conflict.Port', - 'errorMessage' => 'The Port [%s] is conflict.', - ], - [ - 'errorCode' => 'ResourceNotFound.Certificate', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.listener', - 'errorMessage' => 'The status of listener [%s] is incorrect.', - ], - [ - 'errorCode' => 'IdempotenceSignatureMismatch', - 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.Certificate', - 'errorMessage' => 'The specified resource %s is already associated.', - ], - [ - 'errorCode' => 'IllegalParamSize.certificateIds', - 'errorMessage' => 'The param size of certificateIds or caCertificateIds is illegal.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam.IdleTimeout', - 'errorMessage' => 'The param of IdleTimeout is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.RegionNotSupportHDMonitor', - 'errorMessage' => 'The operation is not allowed because of RegionNotSupportHDMonitor.', - ], - [ - 'errorCode' => 'ResourceNotEnough.CaCertificateApiCount', - 'errorMessage' => 'The specified resource of CaCertificateApiCount is not enough.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'OperationDenied.Protocol', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => '参数%s非法'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.loadbalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.HdMonitorConfigNotExist', - 'errorMessage' => 'The specified resource of HdMonitorConfigNotExist is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.CaCertificate', - 'errorMessage' => 'The specified resource of CaCertificate is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.securitypolicy', - 'errorMessage' => 'The specified resource of securitypolicy is not found.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2198BD6D-9EBB-5E1C-9C48-E0ABB79CF831\\",\\n \\"CertificateIds\\": [\\n \\"[ \\\\\\"931****-cn-hangzhou\\\\\\"]\\"\\n ],\\n \\"Certificates\\": [\\n {\\n \\"CertificateId\\": \\"12315790343_166f8204689_1714763408_70998****\\",\\n \\"IsDefault\\": true,\\n \\"Status\\": \\"Associating\\",\\n \\"CertificateType\\": \\"Server\\"\\n }\\n ],\\n \\"TotalCount\\": 1,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListListenerCertificatesResponse>\\n <RequestId>2198BD6D-9EBB-5E1C-9C48-E0ABB79CF831</RequestId>\\n <CertificateIds>[ \\"931****-cn-hangzhou\\"]</CertificateIds>\\n <Certificates>\\n <CertificateId>12315790343_166f8204689_1714763408_70998****</CertificateId>\\n <IsDefault>true</IsDefault>\\n <Status>Associating</Status>\\n <CertificateType>Server</CertificateType>\\n </Certificates>\\n <TotalCount>1</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListListenerCertificatesResponse>","errorExample":""}]', + 'title' => '查询TCPSSL监听证书', + 'changeSet' => [ + ['createdAt' => '2024-08-14T07:43:31.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2023-08-22T04:15:26.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-06-07T11:41:51.000Z', 'description' => '错误码发生变更、请求参数发生变更、响应参数发生变更'], + ['createdAt' => '2023-04-11T07:38:13.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-07-26T03:48:19.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2022-06-17T06:19:26.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListListenerCertificates'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListListenerCertificates', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateListenerAttributeResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateListenerAttributeResponse>","errorExample":""}]', - 'title' => '更新监听配置', ], 'ListListeners' => [ - 'summary' => '查询网络型负载均衡监听列表。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5421,11 +3796,7 @@ 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '141890', - 'abilityTreeNodes' => [ - 'FEATUREslbC68LB1', - 'FEATUREslb4PUXNB', - 'FEATUREslbGDCN1S', - ], + 'abilityTreeNodes' => ['FEATUREslbC68LB1', 'FEATUREslb4PUXNB', 'FEATUREslbGDCN1S'], ], 'parameters' => [ [ @@ -5436,12 +3807,7 @@ 'title' => '监听唯一标识', 'description' => '监听实例ID。最多支持20个监听ID。', 'type' => 'array', - 'items' => [ - 'description' => '监听实例ID。最多支持20个监听ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@443', - ], + 'items' => ['description' => '监听实例ID。最多支持20个监听ID。', 'type' => 'string', 'required' => false, 'example' => 'lsn-bp1bpn0kn908w4nbw****@443'], 'required' => false, 'maxItems' => 20, ], @@ -5454,12 +3820,7 @@ 'title' => '负载均衡实例标识', 'description' => '网络型负载均衡实例ID。最多支持20个实例ID。', 'type' => 'array', - 'items' => [ - 'description' => '网络型负载均衡实例ID。最多支持20个实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'items' => ['description' => '网络型负载均衡实例ID。最多支持20个实例ID。', 'type' => 'string', 'required' => false, 'example' => 'nlb-83ckzc8d4xlp8o****'], 'required' => false, 'maxItems' => 20, ], @@ -5467,13 +3828,7 @@ [ 'name' => 'ListenerProtocol', 'in' => 'query', - 'schema' => [ - 'title' => '监听协议', - 'description' => '监听协议。取值:**TCP**、**UDP**或**TCPSSL**。', - 'type' => 'string', - 'required' => false, - 'example' => 'TCPSSL', - ], + 'schema' => ['title' => '监听协议', 'description' => '监听协议。取值:**TCP**、**UDP**或**TCPSSL**。', 'type' => 'string', 'required' => false, 'example' => 'TCPSSL'], ], [ 'name' => 'Tag', @@ -5486,22 +3841,12 @@ 'description' => '标签。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '实例的标签键。最多支持输入20个标签键。一旦输入该值,则不允许为空字符串。'."\n" - ."\n" - .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => '实例的标签值。最多支持输入20个标签值。一旦输入该值,可以为空字符串。'."\n" - ."\n" - .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], + 'Key' => ['description' => '实例的标签键。最多支持输入20个标签键。一旦输入该值,则不允许为空字符串。'."\n" + ."\n" + .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'env'], + 'Value' => ['description' => '实例的标签值。最多支持输入20个标签值。一旦输入该值,可以为空字符串。'."\n" + ."\n" + .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'product'], ], 'required' => false, ], @@ -5513,50 +3858,29 @@ [ 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ 'name' => 'SecSensorEnabled', 'in' => 'query', - 'schema' => [ - 'description' => '是否开启秒级监控功能。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**:关闭。', - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '是否开启秒级监控功能。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**:关闭。', 'type' => 'string', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ @@ -5566,11 +3890,7 @@ 'description' => '查询监听列表。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], 'Listeners' => [ 'description' => '网络型负载均衡监听列表。', 'type' => 'array', @@ -5585,287 +3905,161 @@ 'description' => '标签。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'Created', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'TF', - ], + 'Key' => ['description' => '标签键。', 'type' => 'string', 'example' => 'Created'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'example' => 'TF'], ], ], ], - 'LoadBalancerId' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'ListenerId' => [ - 'title' => '自己生成后赋值', - 'description' => '监听ID。', - 'type' => 'string', - 'example' => 'lsn-ga6sjjcll6ou34l1et****', - ], - 'ListenerProtocol' => [ - 'title' => '监听协议 (TCP, UDP, TCPSSL, GENEVE)', - 'description' => '监听协议。取值:**TCP**、**UDP**或**TCPSSL**。', - 'type' => 'string', - 'example' => 'TCPSSL', - ], - 'ListenerPort' => [ - 'title' => '监听端口', - 'description' => '监听端口。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '443', - ], - 'StartPort' => [ - 'title' => 'anyPort监听起始端口', - 'description' => '全端口监听起始端口。', - 'type' => 'string', - 'example' => '233', - ], - 'EndPort' => [ - 'title' => 'anyPort监听结束端口', - 'description' => '全端口监听结束端口。', - 'type' => 'string', - 'example' => '455', - ], - 'ListenerDescription' => [ - 'title' => '监听描述', - 'description' => '自定义监听名称。'."\n" - ."\n" - .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'example' => 'tcpssl_443', - ], - 'ServerGroupId' => [ - 'title' => 'servergroupId', - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-ppdpc14gdm3x4o****', - ], - 'IdleTimeout' => [ - 'title' => '空闲超时时间', - 'description' => '连接空闲超时时间。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '900', - ], - 'SecurityPolicyId' => [ - 'title' => 'Tclssl监听的安全策略', - 'description' => '安全策略ID。'."\n" - ."\n" - .'> 仅对TCPSSL监听生效。', - 'type' => 'string', - 'example' => 'tls_cipher_policy_1_1', - ], + 'LoadBalancerId' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****'], + 'ListenerId' => ['title' => '自己生成后赋值', 'description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-ga6sjjcll6ou34l1et****'], + 'ListenerProtocol' => ['title' => '监听协议 (TCP, UDP, TCPSSL, GENEVE)', 'description' => '监听协议。取值:**TCP**、**UDP**或**TCPSSL**。', 'type' => 'string', 'example' => 'TCPSSL'], + 'ListenerPort' => ['title' => '监听端口', 'description' => '监听端口。', 'type' => 'integer', 'format' => 'int32', 'example' => '443'], + 'StartPort' => ['title' => 'anyPort监听起始端口', 'description' => '全端口监听起始端口。', 'type' => 'string', 'example' => '233'], + 'EndPort' => ['title' => 'anyPort监听结束端口', 'description' => '全端口监听结束端口。', 'type' => 'string', 'example' => '455'], + 'ListenerDescription' => ['title' => '监听描述', 'description' => '自定义监听名称。'."\n" + ."\n" + .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', 'type' => 'string', 'example' => 'tcpssl_443'], + 'ServerGroupId' => ['title' => 'servergroupId', 'description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-ppdpc14gdm3x4o****'], + 'IdleTimeout' => ['title' => '空闲超时时间', 'description' => '连接空闲超时时间。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '900'], + 'SecurityPolicyId' => ['title' => 'Tclssl监听的安全策略', 'description' => '安全策略ID。'."\n" + ."\n" + .'> 仅对TCPSSL监听生效。', 'type' => 'string', 'example' => 'tls_cipher_policy_1_1'], 'CertificateIds' => [ 'title' => 'server证书列表', 'description' => '服务器证书列表信息。'."\n" ."\n" .'> 仅对TCPSSL监听生效。', 'type' => 'array', - 'items' => [ - 'description' => '服务器证书列表信息。'."\n" - ."\n" - .'> 仅对TCPSSL监听生效。', - 'type' => 'string', - 'example' => '123157******', - ], + 'items' => ['description' => '服务器证书列表信息。'."\n" + ."\n" + .'> 仅对TCPSSL监听生效。', 'type' => 'string', 'example' => '123157******'], ], 'CaCertificateIds' => [ 'title' => 'ca 证书列表', 'description' => 'CA证书列表信息。'."\n" .'> 仅对TCPSSL监听生效。', 'type' => 'array', - 'items' => [ - 'description' => 'CA证书列表信息。'."\n" - .'> 仅对TCPSSL监听生效。', - 'type' => 'string', - 'example' => '139a00******', - ], - ], - 'CaEnabled' => [ - 'description' => '是否启动双向认证。取值:'."\n" - ."\n" - .'- **true**:启动。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ListenerStatus' => [ - 'description' => '当前监听的状态,取值:'."\n" - ."\n" - .'- **Provisioning**:创建中。'."\n" - ."\n" - .'- **Running**:运行中。'."\n" - ."\n" - .'- **Configuring**:配置中。'."\n" - ."\n" - .'- **Stopping**:停止中。'."\n" - ."\n" - .'- **Stopped**:已停止。'."\n" - ."\n" - .'- **Starting**:启动中。'."\n" - ."\n" - .'- **Deleting**:删除中。'."\n" - ."\n" - .'- **Deleted**:已删除。', - 'type' => 'string', - 'example' => 'Running', - ], - 'RegionId' => [ - 'title' => '业务location', - 'description' => '网络型负载均衡实例所在的地域ID。 ', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'AlpnEnabled' => [ - 'description' => '是否开启ALPN。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'AlpnPolicy' => [ - 'description' => 'ALPN策略。取值:'."\n" - ."\n" - .'- **HTTP1Only**'."\n" - .'- **HTTP2Only**'."\n" - .'- **HTTP2Preferred**'."\n" - .'- **HTTP2Optional**', - 'type' => 'string', - 'example' => 'HTTP1Only', - ], - 'SecSensorEnabled' => [ - 'description' => '是否开启秒级监控功能。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ProxyProtocolEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带客户端源地址到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', + 'items' => ['description' => 'CA证书列表信息。'."\n" + .'> 仅对TCPSSL监听生效。', 'type' => 'string', 'example' => '139a00******'], ], + 'CaEnabled' => ['description' => '是否启动双向认证。取值:'."\n" + ."\n" + .'- **true**:启动。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'ListenerStatus' => ['description' => '当前监听的状态,取值:'."\n" + ."\n" + .'- **Provisioning**:创建中。'."\n" + ."\n" + .'- **Running**:运行中。'."\n" + ."\n" + .'- **Configuring**:配置中。'."\n" + ."\n" + .'- **Stopping**:停止中。'."\n" + ."\n" + .'- **Stopped**:已停止。'."\n" + ."\n" + .'- **Starting**:启动中。'."\n" + ."\n" + .'- **Deleting**:删除中。'."\n" + ."\n" + .'- **Deleted**:已删除。', 'type' => 'string', 'example' => 'Running'], + 'RegionId' => ['title' => '业务location', 'description' => '网络型负载均衡实例所在的地域ID。 ', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'AlpnEnabled' => ['description' => '是否开启ALPN。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'AlpnPolicy' => ['description' => 'ALPN策略。取值:'."\n" + ."\n" + .'- **HTTP1Only**'."\n" + .'- **HTTP2Only**'."\n" + .'- **HTTP2Preferred**'."\n" + .'- **HTTP2Optional**', 'type' => 'string', 'example' => 'HTTP1Only'], + 'SecSensorEnabled' => ['description' => '是否开启秒级监控功能。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'ProxyProtocolEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带客户端源地址到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], 'ProxyProtocolV2Config' => [ 'description' => '通过Proxy Protocol协议携带VpcId、PrivateLinkEpId、PrivateLinkEpsId信息到后端服务器配置。', 'type' => 'object', 'properties' => [ - 'Ppv2VpcIdEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带VpcId到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Ppv2PrivateLinkEpIdEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpId到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Ppv2PrivateLinkEpsIdEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpsId到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], + 'Ppv2VpcIdEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带VpcId到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'Ppv2PrivateLinkEpIdEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpId到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'Ppv2PrivateLinkEpsIdEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpsId到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], ], ], - 'Cps' => [ - 'description' => '该监听在每个可用区(VIP)处理的每秒新建连接限速值。取值范围:**0**~**1000000**。**0**表示不限速。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'Mss' => [ - 'description' => 'TCP报文的最大段大小。单位:字节,取值范围:**0**~**1500**。**0**表示不修改用户TCP报文的MSS值。'."\n" - ."\n" - .'> 仅TCP、TCPSSL类型的监听支持该字段值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], + 'Cps' => ['description' => '该监听在每个可用区(VIP)处理的每秒新建连接限速值。取值范围:**0**~**1000000**。**0**表示不限速。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'Mss' => ['description' => 'TCP报文的最大段大小。单位:字节,取值范围:**0**~**1500**。**0**表示不修改用户TCP报文的MSS值。'."\n" + ."\n" + .'> 仅TCP、TCPSSL类型的监听支持该字段值。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], ], ], - 'TotalCount' => [ - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'NextToken' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => '分批次查询时每次显示的条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'TotalCount' => ['description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], + 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'MaxResults' => ['description' => '分批次查询时每次显示的条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], + ], + 'title' => '查询监听', + 'summary' => '查询网络型负载均衡监听列表。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListListeners'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListListeners', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'Listener', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:listener/*'], + ], ], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Listeners\\": [\\n {\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Created\\",\\n \\"Value\\": \\"TF\\"\\n }\\n ],\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"ListenerId\\": \\"lsn-ga6sjjcll6ou34l1et****\\",\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ListenerPort\\": 443,\\n \\"StartPort\\": \\"233\\",\\n \\"EndPort\\": \\"455\\",\\n \\"ListenerDescription\\": \\"tcpssl_443\\",\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"IdleTimeout\\": 900,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_1\\",\\n \\"CertificateIds\\": [\\n \\"123157******\\"\\n ],\\n \\"CaCertificateIds\\": [\\n \\"139a00******\\"\\n ],\\n \\"CaEnabled\\": false,\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"AlpnEnabled\\": false,\\n \\"AlpnPolicy\\": \\"HTTP1Only\\",\\n \\"SecSensorEnabled\\": false,\\n \\"ProxyProtocolEnabled\\": false,\\n \\"ProxyProtocolV2Config\\": {\\n \\"Ppv2VpcIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpsIdEnabled\\": false\\n },\\n \\"Cps\\": 1000,\\n \\"Mss\\": 200\\n }\\n ],\\n \\"TotalCount\\": 4,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListListenersResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <Listeners>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n <ListenerId>lsn-ga6sjjcll6ou34l1et****</ListenerId>\\n <ListenerProtocol>TCPSSL</ListenerProtocol>\\n <ListenerPort>443</ListenerPort>\\n <StartPort>233</StartPort>\\n <EndPort>455</EndPort>\\n <ListenerDescription>tcpssl_443</ListenerDescription>\\n <ServerGroupId>sgp-ppdpc14gdm3x4o****</ServerGroupId>\\n <IdleTimeout>900</IdleTimeout>\\n <SecurityPolicyId>tls_cipher_policy_1_1</SecurityPolicyId>\\n <CertificateIds>12315790212_166f8204689_1714763408_70998****</CertificateIds>\\n <CaCertificateIds>139a00604ad-cn-east-hangzh****</CaCertificateIds>\\n <CaEnabled>false</CaEnabled>\\n <ListenerStatus>Running</ListenerStatus>\\n <RegionId>cn-hangzhou</RegionId>\\n <AlpnEnabled>false</AlpnEnabled>\\n <AlpnPolicy>ALPN</AlpnPolicy>\\n <SecSensorEnabled>false</SecSensorEnabled>\\n <ProxyProtocolEnabled>false</ProxyProtocolEnabled>\\n <Cps>1000</Cps>\\n <Mss>200</Mss>\\n </Listeners>\\n <TotalCount>4</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListListenersResponse>","errorExample":""}]', - 'title' => '查询监听', ], - 'GetListenerAttribute' => [ - 'summary' => '查询网络型负载均衡实例的监听详情。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListLoadBalancers' => [ + 'summary' => '查询已创建的网络型负载均衡实例的基本信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5877,565 +4071,365 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREslbC68LB1', - 'FEATUREslb4PUXNB', - 'FEATUREslbGDCN1S', - 'FEATUREslbUZZGGD', - ], + 'abilityTreeCode' => '141871', + 'abilityTreeNodes' => ['FEATUREslb12YEWG'], ], 'parameters' => [ [ - 'name' => 'ListenerId', + 'name' => 'LoadBalancerType', 'in' => 'query', - 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => '监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@233', - ], + 'schema' => ['title' => '负载均衡类型', 'description' => '负载均衡类型。仅取值:**network**,表示网络型负载均衡。', 'type' => 'string', 'required' => false, 'example' => 'network'], ], [ - 'name' => 'DryRun', + 'name' => 'ZoneId', + 'in' => 'query', + 'schema' => ['title' => '负载均衡拥有的可用区', 'description' => '可用区名称。您可以通过调用[DescribeZones](~~443890~~)接口获取。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou-a'], + ], + [ + 'name' => 'VpcIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会查询监听详情。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', + 'title' => '专有网络唯一标识', + 'description' => '网络型负载均衡实例的专有网络ID。一次最多支持查询10个VPC ID。', + 'type' => 'array', + 'items' => ['description' => '网络型负载均衡实例的专有网络ID。一次最多支持查询10个VPC ID。', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp1b49rqrybk45nio****'], 'required' => false, - 'example' => 'false', - 'default' => 'false', + 'maxItems' => 10, ], ], [ - 'name' => 'ClientToken', + 'name' => 'AddressType', + 'in' => 'query', + 'schema' => ['title' => '地址类型:取值 internet,intranet', 'description' => '网络型负载均衡的IPv4地址类型。取值:'."\n" + .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'required' => false, 'example' => 'Internet'], + ], + [ + 'name' => 'AddressIpVersion', + 'in' => 'query', + 'schema' => ['title' => '协议类型', 'description' => '协议版本。取值:'."\n" + .'- **ipv4**:IPv4类型。'."\n" + .'- **DualStack**:双栈类型。', 'type' => 'string', 'required' => false, 'example' => 'ipv4'], + ], + [ + 'name' => 'Ipv6AddressType', + 'in' => 'query', + 'schema' => ['title' => '协议类型', 'description' => '网络型负载均衡的IPv6地址类型。取值:'."\n" + .'- **Internet**:公网类型。网络型负载均衡实例具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + .'- **Intranet**:私网类型。网络型负载均衡实例只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'required' => false, 'example' => 'Internet'], + ], + [ + 'name' => 'DNSName', + 'in' => 'query', + 'schema' => ['title' => 'dns 地址', 'description' => 'DNS域名。', 'type' => 'string', 'required' => false, 'example' => 'nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com'], + ], + [ + 'name' => 'LoadBalancerStatus', + 'in' => 'query', + 'schema' => ['title' => '实例状态', 'description' => '网络型负载均衡实例状态。取值:'."\n" + .'- **Inactive**:已停止,表示实例监听不会再转发流量。'."\n" + .'- **Active**:运行中。'."\n" + .'- **Provisioning**:创建中。'."\n" + .'- **Configuring**:变配中。'."\n" + .'- **Deleting**:删除中。'."\n" + .'- **Deleted**:已删除。', 'type' => 'string', 'required' => false, 'example' => 'Active'], + ], + [ + 'name' => 'LoadBalancerBusinessStatus', + 'in' => 'query', + 'schema' => ['title' => '实例业务状态', 'description' => '网络型负载均衡的业务状态。取值:'."\n" + .'- **Abnormal**:异常状态。'."\n" + .'- **Normal**:正常状态。', 'type' => 'string', 'required' => false, 'example' => 'Normal'], + ], + [ + 'name' => 'LoadBalancerNames', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', + 'title' => '负载均衡实例名称', + 'description' => '网络型负载均衡实例名称。一次最多支持查询20个实例名称。', + 'type' => 'array', + 'items' => ['description' => '网络型负载均衡实例名称。一次最多支持查询20个实例。', 'type' => 'string', 'required' => false, 'example' => 'NLB1'], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'maxItems' => 20, ], ], [ - 'name' => 'RegionId', + 'name' => 'ResourceGroupId', 'in' => 'query', + 'schema' => ['title' => '企业资源组标识', 'description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], + ], + [ + 'name' => 'LoadBalancerIds', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', + 'title' => '实例列表', + 'description' => '网络型负载均衡实例的ID。一次最多支持查询20个实例。', + 'type' => 'array', + 'items' => ['description' => '网络型负载均衡实例的ID。一次最多支持查询20个实例。', 'type' => 'string', 'required' => false, 'example' => 'nlb-83ckzc8d4xlp8o****'], 'required' => false, - 'example' => 'cn-hangzhou', + 'maxItems' => 20, ], ], - ], - 'responses' => [ - 200 => [ + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => 'RpcResponse<GetListenerAttributeResponse>', - 'description' => '查询监听属性。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'RegionId' => [ - 'title' => '业务location', - 'description' => '网络型负载均衡实例所在的地域ID。 ', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'LoadBalancerId' => [ - 'title' => '列表id', - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'ListenerId' => [ - 'title' => '监听id', - 'description' => '监听ID。', - 'type' => 'string', - 'example' => 'lsn-bp1bpn0kn908w4nbw****@233', - ], - 'ListenerProtocol' => [ - 'title' => '监听协议 (TCP, UDP, TCPSSL, GENEVE)', - 'description' => '监听协议。取值:**TCP**、**UDP**或**TCPSSL**。', - 'type' => 'string', - 'example' => 'TCPSSL', - ], - 'ListenerPort' => [ - 'title' => '监听端口', - 'description' => '监听端口。取值范围:**0**~**65535**。**0**:表示使用全端口监听。当设置为**0**时,您需要配置**StartPort**和**EndPort**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '233', - ], - 'StartPort' => [ - 'title' => 'anyPort监听起始端口', - 'description' => '全端口监听起始端口。取值范围:**0** ~ **65535**。', - 'type' => 'string', - 'example' => '233', - ], - 'EndPort' => [ - 'title' => 'anyPort监听结束端口', - 'description' => '全端口监听结束端口。取值范围:**0**~ **65535**。结束端口的取值小于起始端口。', - 'type' => 'string', - 'example' => '455', - ], - 'ListenerDescription' => [ - 'title' => '监听描述', - 'description' => '自定义监听名称。'."\n" - ."\n" - .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'example' => 'tcpssl_443', - ], - 'ServerGroupId' => [ - 'title' => 'servergroupId', - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-ppdpc14gdm3x4o****', - ], - 'IdleTimeout' => [ - 'title' => '空闲超时时间', - 'description' => '连接空闲超时时间。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '900', - ], - 'SecurityPolicyId' => [ - 'title' => 'Tclssl监听的安全策略', - 'description' => '安全策略ID。支持系统安全策略和自定义安全策略。'."\n" - ."\n" - .'- 系统策略取值:**tls_cipher_policy_1_0**(默认值)、**tls_cipher_policy_1_1**、**tls_cipher_policy_1_2**、**tls_cipher_policy_1_2_strict**或**tls_cipher_policy_1_2_strict_with_1_3**。'."\n" - .'- 自定义安全策略:输入自定义安全策略ID。'."\n" - .' - 创建自定义策略,请参见[CreateSecurityPolicy](~~445901~~)。'."\n" - .' - 查询安全策略,请参见[ListSecurityPolicy](~~445900~~)。'."\n" - ."\n" - .'>仅对TCPSSL监听生效。', - 'type' => 'string', - 'example' => 'tls_cipher_policy_1_0', - ], - 'CertificateIds' => [ - 'title' => 'server证书列表', - 'description' => '服务器证书列表信息。目前仅支持添加1个服务器证书。'."\n" - ."\n" - .'> 该参数仅对TCPSSL监听生效。', - 'type' => 'array', - 'items' => [ - 'description' => '服务器证书列表信息。目前仅支持添加1个服务器证书。'."\n" - ."\n" - .'> 该参数仅对TCPSSL监听生效。', - 'type' => 'string', - 'example' => '123157******', - ], - ], - 'CaCertificateIds' => [ - 'title' => 'ca 证书列表', - 'description' => 'CA证书列表信息。目前仅支持添加1个CA证书。'."\n" - .'> 该参数仅对TCPSSL监听生效。'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'CA证书列表信息。目前仅支持添加1个CA证书。'."\n" - .'> 该参数仅对TCPSSL监听生效。', - 'type' => 'string', - 'example' => '139a00******', - ], - ], - 'CaEnabled' => [ - 'description' => '是否启动双向认证。取值:'."\n" - ."\n" - .'- **true**:启动。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'AlpnEnabled' => [ - 'description' => '是否开启ALPN。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'AlpnPolicy' => [ - 'description' => 'ALPN策略。取值:'."\n" - ."\n" - .'- **HTTP1Only**'."\n" - .'- **HTTP2Only**'."\n" - .'- **HTTP2Preferred**'."\n" - .'- **HTTP2Optional**', - 'type' => 'string', - 'example' => 'HTTP1Only', - ], - 'ProxyProtocolEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带客户端源地址到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ProxyProtocolV2Config' => [ - 'description' => '通过Proxy Protocol协议携带VpcId、PrivateLinkEpId、PrivateLinkEpsId信息到后端服务器配置。', - 'type' => 'object', - 'properties' => [ - 'Ppv2VpcIdEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带VpcId到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Ppv2PrivateLinkEpIdEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpId到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Ppv2PrivateLinkEpsIdEnabled' => [ - 'description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpsId到后端服务器。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - ], - ], - 'SecSensorEnabled' => [ - 'description' => '是否开启秒级监控功能。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ListenerStatus' => [ - 'description' => '当前监听的状态,取值:'."\n" - ."\n" - .'- **Provisioning**:创建中。'."\n" - ."\n" - .'- **Running**:运行中。'."\n" - ."\n" - .'- **Configuring**:配置中。'."\n" - ."\n" - .'- **Stopping**:停止中。'."\n" - ."\n" - .'- **Stopped**:已停止。'."\n" - ."\n" - .'- **Starting**:启动中。'."\n" - ."\n" - .'- **Deleting**:删除中。'."\n" + 'description' => '网络型负载均衡实例标签。', + 'type' => 'array', + 'items' => [ + 'description' => '网络型负载均衡实例标签。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '实例的标签键。最多支持输入20个标签键。一旦输入该值,则不允许为空字符串。'."\n" ."\n" - .'- **Deleted**:已删除。', - 'type' => 'string', - 'example' => 'Running', - ], - 'Cps' => [ - 'description' => '该监听在每个可用区(VIP)处理的每秒新建连接限速值。取值范围:**0**~**1000000**。**0**表示不限速。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'Mss' => [ - 'description' => 'TCP报文的最大段大小。单位:字节,取值范围:**0**~**1500**。**0**表示不修改用户TCP报文的MSS值。'."\n" + .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'KeyTest'], + 'Value' => ['description' => '实例的标签值。最多支持输入20个标签值。一旦输入该值,可以为空字符串。'."\n" ."\n" - .'> 仅TCP、TCPSSL类型的监听支持该字段值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '166', - ], - 'Tags' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'TagKey' => [ - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'ac-cus-tag-4', - ], - 'TagValue' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'ON', - ], - ], - ], + .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'ValueTest'], ], + 'required' => false, ], + 'required' => false, + 'maxItems' => 20, + 'minItems' => 1, ], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@233\\",\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ListenerPort\\": 233,\\n \\"StartPort\\": \\"233\\",\\n \\"EndPort\\": \\"455\\",\\n \\"ListenerDescription\\": \\"tcpssl_443\\",\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"IdleTimeout\\": 900,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_0\\",\\n \\"CertificateIds\\": [\\n \\"123157******\\"\\n ],\\n \\"CaCertificateIds\\": [\\n \\"139a00******\\"\\n ],\\n \\"CaEnabled\\": false,\\n \\"AlpnEnabled\\": false,\\n \\"AlpnPolicy\\": \\"HTTP1Only\\",\\n \\"ProxyProtocolEnabled\\": false,\\n \\"ProxyProtocolV2Config\\": {\\n \\"Ppv2VpcIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpsIdEnabled\\": false\\n },\\n \\"SecSensorEnabled\\": false,\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"Cps\\": 1000,\\n \\"Mss\\": 166,\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"ac-cus-tag-4\\",\\n \\"TagValue\\": \\"ON\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetListenerAttributeResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <RegionId>cn-hangzhou</RegionId>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n <ListenerId>lsn-ga6sjjcll6ou34l1et****</ListenerId>\\n <ListenerProtocol>TCPSSL</ListenerProtocol>\\n <ListenerPort>233</ListenerPort>\\n <StartPort>233</StartPort>\\n <EndPort>455</EndPort>\\n <ListenerDescription>tcpssl_443</ListenerDescription>\\n <ServerGroupId>sgp-ppdpc14gdm3x4o****</ServerGroupId>\\n <IdleTimeout>900</IdleTimeout>\\n <SecurityPolicyId>tls_cipher_policy_1_0</SecurityPolicyId>\\n <CertificateIds>12315790212_166f8204689_1714763408_70998****</CertificateIds>\\n <CaCertificateIds>139a00604ad-cn-east-hangzh****</CaCertificateIds>\\n <CaEnabled>false</CaEnabled>\\n <AlpnEnabled>false</AlpnEnabled>\\n <AlpnPolicy>HTTP1Only</AlpnPolicy>\\n <ProxyProtocolEnabled>false</ProxyProtocolEnabled>\\n <SecSensorEnabled>false</SecSensorEnabled>\\n <ListenerStatus>Running</ListenerStatus>\\n <Cps>1000</Cps>\\n <Mss>166</Mss>\\n</GetListenerAttributeResponse>","errorExample":""}]', - 'title' => '查询监听的属性', - ], - 'GetListenerHealthStatus' => [ - 'summary' => '查询网络型负载均衡实例监听的健康检查状态。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '142934', - 'abilityTreeNodes' => [ - 'FEATUREslbL239O5', - 'FEATUREslbVDXH6N', + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], - ], - 'parameters' => [ [ - 'name' => 'ListenerId', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => '网络型负载均衡实例的监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', - ], + 'schema' => ['description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'default' => '20'], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<GetListenerHealthStatusResponse>', - 'description' => '查询监听健康检查状态。', + 'title' => 'response', + 'description' => 'response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ListenerHealthStatus' => [ - 'description' => '监听的服务器组健康检查状态列表。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'LoadBalancers' => [ + 'description' => '网络型负载均衡实例列表。', 'type' => 'array', 'items' => [ - 'description' => '监听的服务器组健康检查状态列表。', + 'description' => '网络型负载均衡实例列表。', 'type' => 'object', 'properties' => [ - 'ListenerId' => [ - 'description' => '网络型负载均衡实例的监听ID。', - 'type' => 'string', - 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', - ], - 'ListenerPort' => [ - 'description' => '监听的端口号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'ListenerProtocol' => [ - 'description' => '监听协议。取值:**TCP**、**UDP**或**TCPSSL**。', - 'type' => 'string', - 'example' => 'TCPSSL', + 'RegionId' => ['title' => '业务location', 'description' => '网络型负载均衡实例所在的地域ID。 ', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'LoadBalancerId' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****'], + 'LoadBalancerName' => ['description' => '网络型负载均衡实例名称。', 'type' => 'string', 'example' => 'NLB1'], + 'LoadBalancerType' => ['description' => '负载均衡实例类型。仅取值**Network**,表示网络型负载均衡。', 'type' => 'string', 'example' => 'Network'], + 'AddressType' => ['description' => '网络型负载均衡的IPv4地址类型。取值:'."\n" + .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'example' => 'Internet'], + 'AddressIpVersion' => ['description' => '协议版本。取值:'."\n" + .'- **ipv4**:IPv4类型。'."\n" + .'- **DualStack**:双栈类型。', 'type' => 'string', 'example' => 'ipv4'], + 'Ipv6AddressType' => ['description' => '网络型负载均衡的IPv6地址类型。取值:'."\n" + ."\n" + .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'example' => 'Internet'], + 'LoadBalancerStatus' => ['description' => '网络型负载均衡实例状态。取值:'."\n" + .'- **Inactive**:已停止,表示实例监听不会再转发流量。'."\n" + .'- **Active**:运行中。'."\n" + .'- **Provisioning**:创建中。'."\n" + .'- **Configuring**:变配中。'."\n" + .'- **Deleting**:删除中。'."\n" + .'- **Deleted**:已删除。', 'type' => 'string', 'example' => 'Active'], + 'LoadBalancerBusinessStatus' => ['description' => '网络型负载均衡的业务状态。取值:'."\n" + .'- **Abnormal**:异常状态。'."\n" + .'- **Normal**:正常状态。', 'type' => 'string', 'example' => 'Normal'], + 'OperationLocks' => [ + 'title' => '实例处于锁定状态列表', + 'description' => '网络型负载均衡操作锁配置。在`LoadBalancerBussinessStatus`为**Abnormal**(异常状态)时有效。', + 'type' => 'array', + 'items' => [ + 'description' => '网络型负载均衡操作锁配置。', + 'type' => 'object', + 'properties' => [ + 'LockType' => ['description' => '锁定的类型。取值 :'."\n" + ."\n" + .'- **SecurityLocked**:安全锁定。'."\n" + .'- **RelatedResourceLocked**:关联锁定。'."\n" + .'- **FinancialLocked**:欠费锁定。'."\n" + .'- **ResidualLocked**:残留锁定。', 'type' => 'string', 'example' => 'SecurityLocked'], + 'LockReason' => ['description' => '锁定的原因。', 'type' => 'string', 'example' => '业务异常'], + ], + ], ], - 'ServerGroupInfos' => [ - 'description' => '服务器组信息。', + 'VpcId' => ['description' => '网络型负载均衡实例的专有网络ID。', 'type' => 'string', 'example' => 'vpc-bp1b49rqrybk45nio****'], + 'CreateTime' => ['description' => '资源创建时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', 'type' => 'string', 'example' => '2022-07-18T17:22:45Z'], + 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-atstuj3rtop****'], + 'DNSName' => ['description' => 'DNS域名。', 'type' => 'string', 'example' => 'nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com'], + 'ZoneMappings' => [ + 'description' => '可用区及交换机映射列表。', 'type' => 'array', 'items' => [ - 'description' => '服务器组信息。', + 'description' => '可用区及交换机映射列表。', 'type' => 'object', 'properties' => [ - 'HeathCheckEnabled' => [ - 'description' => '是否开启健康检查。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ServerGroupId' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-ppdpc14gdm3x4o****', - ], - 'NonNormalServers' => [ - 'description' => '非正常状态的后端服务器列表。', + 'VSwitchId' => ['description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。', 'type' => 'string', 'example' => 'vsw-bp1rmcrwg3erh1fh8****'], + 'ZoneId' => ['description' => '可用区名称,您可以通过调用[DescribeZones](~~443890~~)接口获取。', 'type' => 'string', 'example' => 'cn-hangzhou-a'], + 'LoadBalancerAddresses' => [ + 'description' => '网络型负载均衡实例地址信息。', 'type' => 'array', 'items' => [ - 'description' => '非正常状态的后端服务器列表。', + 'description' => '网络型负载均衡实例地址信息。', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '健康检查状态。取值:'."\n" - ."\n" - .'- **Initial**:初始化中,表示负载均衡实例配置了健康检查,但查不到数据。'."\n" - ."\n" - .'- **Unhealthy**:异常,表示连续上报不健康的状态。'."\n" - ."\n" - .'- **Unavailable**:未开启,表示未开启健康检查。', - 'type' => 'string', - 'example' => 'Initial', - ], - 'Port' => [ - 'description' => '后端服务器端口。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Reason' => [ - 'description' => '非正常状态的原因。', - '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' => [ - 'description' => '后端服务器ID。', - 'type' => 'string', - 'example' => 'i-bp1bt75jaujl7tjl****', - ], - 'ServerIp' => [ - 'description' => '后端服务器IP。', - 'type' => 'string', - 'example' => '192.168.8.10', - ], + 'EniId' => ['description' => '网络型负载均衡实例挂载的ENI的ID。', 'type' => 'string', 'example' => 'eni-bp12f1xhs5yal61a****'], + 'PrivateIPv4Address' => ['title' => '私网ip', 'description' => '网络型负载均衡实例私网IPv4地址。', 'type' => 'string', 'example' => '192.168.3.32'], + 'AllocationId' => ['title' => '公网ipId', 'description' => '弹性公网IP实例ID。', 'type' => 'string', 'example' => 'eip-bp1aedxso6u80u0qf****'], + 'PublicIPv4Address' => ['title' => '公网ip地址:仅Get的时候有值', 'description' => '网络型负载均衡实例公网IPv4地址。', 'type' => 'string', 'example' => '120.XX.XX.69'], + 'Ipv6Address' => ['description' => '网络型负载均衡实例Ipv6地址。', 'type' => 'string', 'example' => '2001:db8:1:1:1:1:1:1'], + 'PrivateIPv4HcStatus' => ['description' => '网络型负载均衡实例私网IPv4地址探测状态。取值:'."\n" + .'- **Healthy**:健康。'."\n" + .'- **Unhealthy**:异常。'."\n" + ."\n" + .'> 只有可用区状态(**Status**)为运行中(**Active**)时才返回该参数。', 'type' => 'string', 'example' => 'Healthy'], + 'PrivateIPv6HcStatus' => ['description' => '网络型负载均衡实例IPv6地址探测状态。'."\n" + .'- **Healthy**:健康。'."\n" + .'- **Unhealthy**:异常。'."\n" + ."\n" + .'> 只有可用区状态(**Status**)为运行中(**Active**)时才返回该参数。', 'type' => 'string', 'example' => 'Healthy'], ], ], ], + 'Status' => ['description' => '可用区状态。取值:'."\n" + ."\n" + .'- **Active**:启动。'."\n" + .'- **Stopped**:停止。该状态仅支持通过CADT容灾管理服务调用实现。'."\n" + .'- **Shifted**:DNS摘除。'."\n" + .'- **Starting**:启动中。该状态仅支持通过CADT容灾管理服务调用实现。'."\n" + .'- **Stopping**:停止中。该状态仅支持通过CADT容灾管理服务调用实现。', 'type' => 'string', 'example' => 'Active'], + ], + ], + ], + 'BandwidthPackageId' => ['description' => '公网类型实例关联的共享带宽包ID。', 'type' => 'string', 'example' => 'cbwp-bp1vevu8h3ieh****'], + 'SecurityGroupIds' => [ + 'description' => '网络型负载均衡实例加入的安全组。', + 'type' => 'array', + 'items' => ['description' => '网络型负载均衡实例加入的安全组。', 'type' => 'string', 'example' => 'sg-bp10uag3q0jkxu72****'], + ], + 'CrossZoneEnabled' => ['description' => '网络型负载均衡实例是否开启跨可用区。取值:'."\n" + .'- **true**:开启。'."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'true'], + 'LoadBalancerBillingConfig' => [ + 'title' => '计费相关属性', + 'description' => '网络型负载均衡实例计费配置。', + 'type' => 'object', + 'properties' => [ + 'PayType' => ['title' => '实例的计费类型', 'description' => '网络型负载均衡实例的计费类型。仅取值**PostPay**:表示按量计费。', 'type' => 'string', 'example' => 'PostPay', 'default' => 'PostPay'], + ], + ], + 'DeletionProtectionConfig' => [ + 'description' => '删除保护配置。', + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['description' => '删除保护状态,取值:'."\n" + ."\n" + .'- **true**:开启状态。'."\n" + .'- **false**:关闭状态。', 'type' => 'boolean', 'example' => 'true'], + 'Reason' => ['description' => '更改删除保护状态的原因。长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n", 'type' => 'string', 'example' => '实例运行中'], + 'EnabledTime' => ['description' => '删除保护开启时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', 'type' => 'string', 'example' => '2022-12-01T17:22:45Z'], + ], + ], + 'ModificationProtectionConfig' => [ + 'description' => '修改保护配置。', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '网络型负载均衡修改保护状态。取值:'."\n" + ."\n" + .'- **NonProtection**:不保护,表示不允许传入**Reason**。如果配置了**Reason**,则清空其配置信息。'."\n" + .'- **ConsoleProtection**:控制台修改保护,此时允许传入**Reason**。'."\n" + ."\n" + .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', 'type' => 'string', 'example' => 'ConsoleProtection'], + 'Reason' => ['description' => '输入开启修改保护的原因。长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" + ."\n" + .'仅在**Status**为**ConsoleProtection**时有效。', 'type' => 'string', 'example' => '业务保障期'], + 'EnabledTime' => ['description' => '修改保护开启时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', 'type' => 'string', 'example' => '2022-12-01T17:22:45Z'], + ], + ], + 'Tags' => [ + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签列表。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '实例的标签键。', 'type' => 'string', 'example' => 'KeyTest'], + 'Value' => ['description' => '实例的标签值。', 'type' => 'string', 'example' => 'ValueTest'], ], ], ], ], ], ], - 'TotalCount' => [ - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'NextToken' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => '分批次查询时每次显示的条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'TotalCount' => ['description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'MaxResults' => ['description' => '分批次查询时每次显示的条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => '参数%s非法'], + ['errorCode' => 'IllegalParam.LoadBalancerType', 'errorMessage' => 'The LoadBalancerType value is invalid.', 'description' => '参数LoadBalancerType值非法,请检查输入参数。'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'IllegalParam.loadBalancerName', 'errorMessage' => 'Param loadBalancerName is illegal.', 'description' => '实例名称非法,请检查参数。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"LoadBalancers\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"LoadBalancerName\\": \\"NLB1\\",\\n \\"LoadBalancerType\\": \\"Network\\",\\n \\"AddressType\\": \\"Internet\\",\\n \\"AddressIpVersion\\": \\"ipv4\\",\\n \\"Ipv6AddressType\\": \\"Internet\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"LoadBalancerBusinessStatus\\": \\"Normal\\",\\n \\"OperationLocks\\": [\\n {\\n \\"LockType\\": \\"SecurityLocked\\",\\n \\"LockReason\\": \\"业务异常\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"CreateTime\\": \\"2022-07-18T17:22:45Z\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"DNSName\\": \\"nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"VSwitchId\\": \\"vsw-bp1rmcrwg3erh1fh8****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"EniId\\": \\"eni-bp12f1xhs5yal61a****\\",\\n \\"PrivateIPv4Address\\": \\"192.168.3.32\\",\\n \\"AllocationId\\": \\"eip-bp1aedxso6u80u0qf****\\",\\n \\"PublicIPv4Address\\": \\"120.XX.XX.69\\",\\n \\"Ipv6Address\\": \\"2001:db8:1:1:1:1:1:1\\",\\n \\"PrivateIPv4HcStatus\\": \\"Healthy\\",\\n \\"PrivateIPv6HcStatus\\": \\"Healthy\\"\\n }\\n ],\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-bp10uag3q0jkxu72****\\"\\n ],\\n \\"CrossZoneEnabled\\": true,\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"Reason\\": \\"实例运行中\\",\\n \\"EnabledTime\\": \\"2022-12-01T17:22:45Z\\"\\n },\\n \\"ModificationProtectionConfig\\": {\\n \\"Status\\": \\"ConsoleProtection\\",\\n \\"Reason\\": \\"业务保障期\\",\\n \\"EnabledTime\\": \\"2022-12-01T17:22:45Z\\"\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"ValueTest\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListLoadBalancersResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <LoadBalancers>\\n <RegionId>cn-hangzhou</RegionId>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n <LoadBalancerName>NLB1</LoadBalancerName>\\n <LoadBalancerType>Network</LoadBalancerType>\\n <AddressType>Internet</AddressType>\\n <AddressIpVersion>ipv4</AddressIpVersion>\\n <Ipv6AddressType>Internet</Ipv6AddressType>\\n <LoadBalancerStatus>Active</LoadBalancerStatus>\\n <LoadBalancerBusinessStatus>Normal</LoadBalancerBusinessStatus>\\n <OperationLocks>\\n <LockType>SecurityLocked</LockType>\\n <LockReason>业务异常</LockReason>\\n </OperationLocks>\\n <VpcId>vpc-bp1b49rqrybk45nio****</VpcId>\\n <CreateTime>2022-07-18T17:22Z</CreateTime>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <DNSName>nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com</DNSName>\\n <ZoneMappings>\\n <VSwitchId>vsw-bp1rmcrwg3erh1fh8****</VSwitchId>\\n <ZoneId>cn-hangzhou-a</ZoneId>\\n <LoadBalancerAddresses>\\n <EniId>eni-bp12f1xhs5yal61a****</EniId>\\n <PrivateIPv4Address>192.168.3.32</PrivateIPv4Address>\\n <AllocationId>eip-bp1aedxso6u80u0qf****</AllocationId>\\n <PublicIPv4Address>120.XX.XX.69</PublicIPv4Address>\\n <Ipv6Address>2001:db8:1:1:1:1:1:1</Ipv6Address>\\n <PrivateIPv4HcStatus>Healthy</PrivateIPv4HcStatus>\\n <PrivateIPv6HcStatus>Healthy</PrivateIPv6HcStatus>\\n </LoadBalancerAddresses>\\n <Status>Active</Status>\\n </ZoneMappings>\\n <BandwidthPackageId>cbwp-bp1vevu8h3ieh****</BandwidthPackageId>\\n <SecurityGroupIds>sg-bp10uag3q0jkxu72****</SecurityGroupIds>\\n <CrossZoneEnabled>true</CrossZoneEnabled>\\n <LoadBalancerBillingConfig>\\n <PayType>PostPay</PayType>\\n </LoadBalancerBillingConfig>\\n <DeletionProtectionConfig>\\n <Enabled>true</Enabled>\\n <Reason>实例运行中</Reason>\\n <EnabledTime>2022-12-01T17:22Z</EnabledTime>\\n </DeletionProtectionConfig>\\n <ModificationProtectionConfig>\\n <Status>ConsoleProtection</Status>\\n <Reason>业务保障期</Reason>\\n <EnabledTime>2022-12-01T17:22Z</EnabledTime>\\n </ModificationProtectionConfig>\\n <Tags>\\n <Key>KeyTest</Key>\\n <Value>ValueTest</Value>\\n </Tags>\\n </LoadBalancers>\\n <TotalCount>10</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListLoadBalancersResponse>","errorExample":""}]', + 'title' => '查询负载均衡实例信息', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLoadBalancers'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListLoadBalancers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ListenerHealthStatus\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@80\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HeathCheckEnabled\\": true,\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Status\\": \\"Initial\\",\\n \\"Port\\": 80,\\n \\"Reason\\": {\\n \\"ReasonCode\\": \\"CONNECT_TIMEOUT\\"\\n },\\n \\"ServerId\\": \\"i-bp1bt75jaujl7tjl****\\",\\n \\"ServerIp\\": \\"192.168.8.10\\"\\n }\\n ]\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<GetListenerHealthStatusResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ListenerHealthStatus>\\n <ListenerId>lsn-agkd9gmjx8nd85jjs0****</ListenerId>\\n <ListenerPort>80</ListenerPort>\\n <ListenerProtocol>TCPSSL</ListenerProtocol>\\n <ServerGroupInfos>\\n <HeathCheckEnabled>true</HeathCheckEnabled>\\n <ServerGroupId>sgp-ppdpc14gdm3x4o****</ServerGroupId>\\n <NonNormalServers>\\n <Status>Initial</Status>\\n <Port>80</Port>\\n <Reason>\\n <ReasonCode>CONNECT_TIMEOUT</ReasonCode>\\n </Reason>\\n <ServerId>i-bp1bt75jaujl7tjl****</ServerId>\\n <ServerIp>192.168.8.10</ServerIp>\\n </NonNormalServers>\\n </ServerGroupInfos>\\n </ListenerHealthStatus>\\n <TotalCount>10</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</GetListenerHealthStatusResponse>","errorExample":""}]', - 'title' => '查询监听健康检查状态', ], - 'ListListenerCertificates' => [ - 'summary' => '查询TCPSSL监听的服务器证书。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListSecurityPolicy' => [ + 'summary' => '查询网络型负载均衡的TLS自定义安全策略。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6445,1152 +4439,1011 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', - 'abilityTreeCode' => '141873', - 'abilityTreeNodes' => [ - 'FEATUREslbEJQO6W', - ], + 'abilityTreeCode' => '141862', + 'abilityTreeNodes' => ['FEATUREslbAZREFH'], ], 'parameters' => [ [ - 'name' => 'ListenerId', + 'name' => 'SecurityPolicyIds', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '监听ID。仅TCPSSL监听有效。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-j49ht1jxxqyg45****@80', + 'description' => '安全策略实例ID列表。最多支持添加20个安全策略实例。', + 'type' => 'array', + 'items' => ['description' => '安全策略实例ID列表。最多支持添加20个安全策略实例。', 'type' => 'string', 'required' => false, 'example' => 'sp-wuytp9pa******'."\n"], + 'required' => false, + 'maxItems' => 20, ], ], [ - 'name' => 'CertType', + 'name' => 'SecurityPolicyNames', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '证书类型。'."\n" - ."\n" - .'- **Ca**:CA证书。'."\n" - .'- **Server**:服务器证书。', - 'type' => 'string', + 'description' => '安全策略名称列表。最多支持添加20个安全策略实例。', + 'type' => 'array', + 'items' => ['description' => '安全策略名称列表。最多支持添加20个安全策略实例。', 'type' => 'string', 'required' => false, 'example' => 'TLSCipherPolicy'], 'required' => false, - 'example' => 'Ca', + 'maxItems' => 20, ], ], [ - 'name' => 'NextToken', - 'in' => 'formData', + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'type' => 'string', + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。最多支持10个标签键。'."\n" + ."\n" + .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'Test'], + 'Value' => ['description' => '标签值。最多支持10个标签值。'."\n" + ."\n" + .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'Test'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', ], ], [ - 'name' => 'MaxResults', + 'name' => 'ResourceGroupId', 'in' => 'formData', - 'schema' => [ - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**50**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], ], [ - 'name' => 'RegionId', + 'name' => 'NextToken', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。'."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'CertificateIds', + 'name' => 'MaxResults', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '服务器证书列表信息。目前仅支持添加 1 个服务器证书。'."\n" - ."\n" - .'> 仅对 TCPSSL 监听生效。', - 'type' => 'array', - 'items' => [ - 'description' => '服务器证书列表信息。目前仅支持添加 1 个服务器证书。'."\n" - ."\n" - .'> 仅对 TCPSSL 监听生效。', - 'type' => 'string', - 'required' => false, - 'example' => '123157******', - ], - 'required' => false, - 'maxItems' => 100, - ], + 'schema' => ['description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<ListListenerCertificatesResponse>', - 'description' => '查询TCPSSL监听证书。', + 'title' => 'RpcResponse<ListSecurityPolicyResponse>', + 'description' => '查询TLS安全策略。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '2198BD6D-9EBB-5E1C-9C48-E0ABB79CF831', - ], - 'CertificateIds' => [ - 'description' => '服务器证书列表。', - 'type' => 'array', - 'items' => [ - 'description' => '服务器证书列表。', - 'type' => 'string', - 'example' => '[ "931****-cn-hangzhou"]', - ], - ], - 'Certificates' => [ - 'description' => '证书列表。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF'], + 'SecurityPolicies' => [ + 'description' => 'TLS安全策略列表。', 'type' => 'array', 'items' => [ - 'description' => '证书列表。', + 'description' => 'TLS安全策略列表。', 'type' => 'object', 'properties' => [ - 'CertificateId' => [ - 'title' => '证书id', - 'description' => '证书ID,当前仅支持服务器证书。', - 'type' => 'string', - 'example' => '12315790343_166f8204689_1714763408_70998****', - ], - 'IsDefault' => [ - 'title' => '是否为监听默认证书', - 'description' => '是否为监听默认证书。取值:'."\n" - ."\n" - .'- **true**:默认证书。'."\n" - ."\n" - .'- **false**:扩展证书。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Status' => [ - 'title' => '证书与监听关联的状态', - 'description' => '证书与监听关联的状态。取值:'."\n" - ."\n" - .'- **Associating**:关联中。'."\n" - ."\n" - .'- **Associated**:已关联。'."\n" - ."\n" - .'- **Diassociating**:解除关联中。', - 'type' => 'string', - 'example' => 'Associating', + 'SecurityPolicyId' => ['title' => 'tls策略ID', 'description' => 'TLS安全策略ID。', 'type' => 'string', 'example' => 'sp-wuytp9pa******'."\n"], + 'SecurityPolicyName' => ['title' => '名称', 'description' => 'TLS安全策略名称。', 'type' => 'string', 'example' => 'TLSCipherPolicy'], + 'TlsVersion' => ['title' => 'tls版本', 'description' => 'TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。', 'type' => 'string', 'example' => 'TLSv1.0'], + 'Ciphers' => ['title' => '加密套件', 'description' => '支持的加密套件列表,具体依赖TLSVersion值。最多支持添加32个加密套件。'."\n" + ."\n" + .'TLSv1.0和TLSv1.1 支持:'."\n" + .'- **ECDHE-ECDSA-AES128-SHA**'."\n" + .'- **ECDHE-ECDSA-AES256-SHA**'."\n" + .'- **ECDHE-RSA-AES128-SHA**'."\n" + .'- **ECDHE-RSA-AES256-SHA**'."\n" + .'- **AES128-SHA**'."\n" + .'- **AES256-SHA**'."\n" + .'- **DES-CBC3-SHA**'."\n" + ."\n" + .'TLSv1.2支持:'."\n" + .'- **ECDHE-ECDSA-AES128-SHA**'."\n" + .'- **ECDHE-ECDSA-AES256-SHA**'."\n" + .'- **ECDHE-RSA-AES128-SHA**'."\n" + .'- **ECDHE-RSA-AES256-SHA**'."\n" + .'- **AES128-SHA**'."\n" + .'- **AES256-SHA**'."\n" + .'- **DES-CBC3-SHA**'."\n" + .'- **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" + .'- **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" + .'- **ECDHE-ECDSA-AES128-SHA256**'."\n" + .'- **ECDHE-ECDSA-AES256-SHA384**'."\n" + .'- **ECDHE-RSA-AES128-GCM-SHA256**'."\n" + .'- **ECDHE-RSA-AES256-GCM-SHA384**'."\n" + .'- **ECDHE-RSA-AES128-SHA256**'."\n" + .'- **ECDHE-RSA-AES256-SHA384**'."\n" + .'- **AES128-GCM-SHA256**'."\n" + .'- **AES256-GCM-SHA384**'."\n" + .'- **AES128-SHA256**'."\n" + .'- **AES256-SHA256**'."\n" + .'- **ECDHE-ECDSA-CHACHA20-POLY1305**'."\n" + .'- **ECDHE-RSA-CHACHA20-POLY1305**'."\n" + ."\n\n" + .'TLSv1.3支持:'."\n" + .'- **TLS_AES_128_GCM_SHA256**'."\n" + .'- **TLS_AES_256_GCM_SHA384**'."\n" + .'- **TLS_CHACHA20_POLY1305_SHA256**'."\n" + .'- **TLS_AES_128_CCM_SHA256**'."\n" + .'- **TLS_AES_128_CCM_8_SHA256**', 'type' => 'string', 'example' => 'ECDHE-ECDSA-AES128-SHA'], + 'RegionId' => ['title' => '业务location', 'description' => '网络型负载均衡实例所在的地域ID。 ', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'Tags' => [ + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。最多支持10个标签键。'."\n" + ."\n" + .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'example' => 'Test'], + 'Value' => ['description' => '标签值。最多支持10个标签值。'."\n" + ."\n" + .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'example' => 'Test'], + ], + ], ], - 'CertificateType' => [ - 'title' => '证书类型', - 'description' => '证书类型。', - 'type' => 'string', - 'example' => 'Server', + 'RelatedListeners' => [ + 'description' => '关联的监听列表。', + 'type' => 'array', + 'items' => [ + 'description' => '关联的监听列表。', + 'type' => 'object', + 'properties' => [ + 'ListenerId' => ['description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-bp1bpn0kn908w4nbw****@443'], + 'ListenerPort' => ['description' => '监听端口。', 'type' => 'integer', 'format' => 'int64', 'example' => '443'], + 'ListenerProtocol' => ['description' => '监听协议。仅取值**TCPSSL**。', 'type' => 'string', 'example' => 'TCPSSL'], + 'LoadBalancerId' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****'], + ], + ], ], + 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-atstuj3rtop****'], + 'SecurityPolicyStatus' => ['description' => 'TLS安全策略的状态,取值:'."\n" + ."\n" + .'- **Configuring** :配置中。'."\n" + .'- **Available**: 正常可用。', 'type' => 'string', 'example' => 'Available'], ], ], ], - 'TotalCount' => [ - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'NextToken' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**50**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'TotalCount' => ['description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'MaxResults' => ['description' => '分批次查询时每次显示的条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.Protocol', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.loadbalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"SecurityPolicyId\\": \\"sp-wuytp9pa******\\\\n\\",\\n \\"SecurityPolicyName\\": \\"TLSCipherPolicy\\",\\n \\"TlsVersion\\": \\"TLSv1.0\\",\\n \\"Ciphers\\": \\"ECDHE-ECDSA-AES128-SHA\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@443\\",\\n \\"ListenerPort\\": 443,\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"SecurityPolicyStatus\\": \\"Available\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListSecurityPolicyResponse>\\n <RequestId>D7A8875F-373A-5F48-8484-25B07A61F2AF</RequestId>\\n <SecurityPolicies>\\n <SecurityPolicyId>tls-bp14bb1e7dll4f****</SecurityPolicyId>\\n <SecurityPolicyName>TLSCipherPolicy</SecurityPolicyName>\\n <TlsVersion>TLSv1.0</TlsVersion>\\n <Ciphers>ECDHE-ECDSA-AES128-SHA</Ciphers>\\n <RegionId>cn-hangzhou</RegionId>\\n <Tags>\\n <Key>Test</Key>\\n <Value>Test</Value>\\n </Tags>\\n <RelatedListeners>\\n <ListenerId>lsn-bp1bpn0kn908w4nbw****</ListenerId>\\n <ListenerPort>443</ListenerPort>\\n <ListenerProtocol>TCPSSL</ListenerProtocol>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n </RelatedListeners>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <SecurityPolicyStatus>Available</SecurityPolicyStatus>\\n </SecurityPolicies>\\n <TotalCount>10</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListSecurityPolicyResponse>","errorExample":""}]', + 'title' => '查询自定义安全策略', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListSecurityPolicy'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2198BD6D-9EBB-5E1C-9C48-E0ABB79CF831\\",\\n \\"CertificateIds\\": [\\n \\"[ \\\\\\"931****-cn-hangzhou\\\\\\"]\\"\\n ],\\n \\"Certificates\\": [\\n {\\n \\"CertificateId\\": \\"12315790343_166f8204689_1714763408_70998****\\",\\n \\"IsDefault\\": true,\\n \\"Status\\": \\"Associating\\",\\n \\"CertificateType\\": \\"Server\\"\\n }\\n ],\\n \\"TotalCount\\": 1,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListListenerCertificatesResponse>\\n <RequestId>2198BD6D-9EBB-5E1C-9C48-E0ABB79CF831</RequestId>\\n <CertificateIds>[ \\"931****-cn-hangzhou\\"]</CertificateIds>\\n <Certificates>\\n <CertificateId>12315790343_166f8204689_1714763408_70998****</CertificateId>\\n <IsDefault>true</IsDefault>\\n <Status>Associating</Status>\\n <CertificateType>Server</CertificateType>\\n </Certificates>\\n <TotalCount>1</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListListenerCertificatesResponse>","errorExample":""}]', - 'title' => '查询TCPSSL监听证书', ], - 'AssociateAdditionalCertificatesWithListener' => [ - 'summary' => '为TCPSSL监听关联扩展证书。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListServerGroupServers' => [ + 'summary' => '查询网络型负载均衡服务器组中的服务器列表。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '177212', - 'abilityTreeNodes' => [ - 'FEATUREslbEI2GF0', - ], + 'operationType' => 'get', + 'abilityTreeCode' => '141867', + 'abilityTreeNodes' => ['FEATUREslb3GOGI0'], ], 'parameters' => [ [ - 'name' => 'AdditionalCertificateIds', + 'name' => 'ServerGroupId', + 'in' => 'formData', + 'schema' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => false, 'example' => 'sgp-atstuj3rtoptyui****'], + ], + [ + 'name' => 'ServerIds', 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'title' => 'server扩展证书列表', - 'description' => '扩展证书列表。一次调用最多支持为监听关联15个扩展证书。', + 'description' => '服务器ID列表。单次调用最多支持展示40个服务器。', 'type' => 'array', - 'items' => [ - 'description' => '扩展证书列表。一次调用最多支持为监听关联15个扩展证书。', - 'type' => 'string', - 'required' => false, - 'example' => '123157******', - ], - 'required' => true, - 'maxItems' => 15, - 'minItems' => 1, + 'items' => ['description' => '服务器ID列表。单次调用最多支持展示40个服务器。', 'type' => 'string', 'required' => false, 'example' => 'i-bp67acfmxazb4p****'], + 'required' => false, + 'maxItems' => 100, ], ], [ - 'name' => 'ListenerId', + 'name' => 'ServerIps', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => '监听ID。该接口仅支持输入TCPSSL监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bpn0kn908w4nbw****@80', + 'description' => '服务器IP列表。单次调用最多支持展示40个服务器。', + 'type' => 'array', + 'items' => ['description' => '服务器IP列表。单次调用最多支持展示40个服务器。', 'type' => 'string', 'required' => false, 'example' => '192.168.6.3'], + 'required' => false, + 'maxItems' => 100, ], ], [ - 'name' => 'DryRun', + 'name' => 'NextToken', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会为TCPSSL监听添加扩展证书。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'ClientToken', + 'name' => 'MaxResults', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。'."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<AdditionalCertificatesWithListenerResponse>', - 'description' => '为TCPSSL监听添加扩展证书。', + 'title' => 'RpcResponse<ListServerGroupServersResponse>', + 'description' => '查询服务器。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'Servers' => [ + 'description' => '服务器列表。', + 'type' => 'array', + 'items' => [ + 'description' => '服务器列表。', + 'type' => 'object', + 'properties' => [ + 'ServerId' => ['title' => '服务器id', 'description' => '后端服务器ID。', 'type' => 'string', 'example' => 'i-bp67acfmxazb4p****'], + 'ServerType' => ['title' => '服务器类型', 'description' => '后端服务器类型,取值:'."\n" + ."\n" + .'- **Ecs**:ECS实例。'."\n" + .'- **Eni**:ENI弹性网卡实例。'."\n" + .'- **Eci**:ECI弹性容器。'."\n" + .'- **Ip**:IP地址。', 'type' => 'string', 'example' => 'Ecs'], + 'ServerIp' => ['title' => '服务器ip', 'description' => '后端服务器IP地址。', 'type' => 'string', 'example' => '192.168.2.1'], + 'Port' => ['title' => '服务器端口', 'description' => '后端服务器使用的端口。取值范围:**1**~**65535**。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'Weight' => ['title' => '后端权重', 'description' => '后端服务器的权重。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****'], + 'Description' => ['title' => '服务器描述信息', 'description' => '后端服务器描述。', 'type' => 'string', 'example' => 'ECS'], + 'ZoneId' => ['title' => '服务器对应的zoneId', 'description' => '服务器对应的可用区ID。'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-a'], + 'Status' => ['title' => '服务器的状态', 'description' => '后端服务器的添加状态。取值:'."\n" + ."\n" + .'- **Adding**:添加中。'."\n" + .'- **Available**:正常可用状态。'."\n" + .'- **Configuring**:配置中。'."\n" + .'- **Removing**:移除中。', 'type' => 'string', 'example' => 'Available'], + ], + ], ], + 'TotalCount' => ['description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'MaxResults' => ['description' => '分批次查询时每次显示的条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'OperationDenied.%s', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationFailed.%s', - 'errorMessage' => 'The operation failed because of %s.', - ], - [ - 'errorCode' => 'IncorrectStatus.%s', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.%s', - 'errorMessage' => 'The specified resource of %s is already associated.', - ], - [ - 'errorCode' => 'IncorrectStatus.listener', - 'errorMessage' => 'The status of listener [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.Certificate', - 'errorMessage' => 'The specified resource %s is already associated.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'OperationDenied.Protocol', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceNotFound.Certificate', - 'errorMessage' => 'The specified resource %s is not found.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.%s', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => '找不到指定的服务器组资源,请检查输入参数。'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Nlb::2022-04-30::GetJobStatus', - 'callbackInterval' => 5000, - 'maxCallbackTimes' => 10, + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"Servers\\": [\\n {\\n \\"ServerId\\": \\"i-bp67acfmxazb4p****\\",\\n \\"ServerType\\": \\"Ecs\\",\\n \\"ServerIp\\": \\"192.168.2.1\\",\\n \\"Port\\": 80,\\n \\"Weight\\": 100,\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"Description\\": \\"ECS\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"Status\\": \\"Available\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListServerGroupServersResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <Servers>\\n <ServerId>ecs-bp67acfmxazb4p****</ServerId>\\n <ServerType>Ecs</ServerType>\\n <ServerIp>192.168.2.1</ServerIp>\\n <Port>80</Port>\\n <Weight>100</Weight>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <Description>ECS</Description>\\n <ZoneId>cn-hangzhou-a</ZoneId>\\n <Status>Available</Status>\\n </Servers>\\n <TotalCount>10</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListServerGroupServersResponse>","errorExample":""}]', + 'title' => '查询服务器', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListServerGroupServers'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListServerGroupServers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:serverGroup/{#ServerGroupId}'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<AssociateAdditionalCertificatesWithListenerResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</AssociateAdditionalCertificatesWithListenerResponse>","errorExample":""}]', - 'title' => '关联扩展证书和监听', - 'description' => '**AssociateAdditionalCertificatesWithListener**接口属于异步接口,即系统返回一个请求ID,但该扩展证书尚未添加成功,系统后台的添加任务仍在进行。您可以调用[ListListenerCertificates](~~615175~~)查询扩展证书的添加状态:'."\n" - ."\n" - .'- 当TCPSSL监听处于**Associating**状态时,表示扩展证书正在添加中。'."\n" - .'- 当TCPSSL监听处于**Associated**状态时,表示扩展证书添加成功。', ], - 'DisassociateAdditionalCertificatesWithListener' => [ - 'summary' => '解除TCPSSL监听关联的扩展证书。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListServerGroups' => [ + 'summary' => '查询网络型负载均衡实例的服务器组列表', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '177213', - 'abilityTreeNodes' => [ - 'FEATUREslbEI2GF0', - ], + 'abilityTreeCode' => '141872', + 'abilityTreeNodes' => ['FEATUREslbVDXH6N'], ], 'parameters' => [ [ - 'name' => 'AdditionalCertificateIds', + 'name' => 'ServerGroupIds', 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'title' => 'server扩展证书列表', - 'description' => '扩展证书列表。一次调用最多支持为监听解绑15个扩展证书。', + 'description' => '服务器组ID。一次最多支持查询20个服务器组ID。', 'type' => 'array', - 'items' => [ - 'description' => '扩展证书列表。仅支持服务器证书,一次调用最多支持为监听解绑15个扩展证书。', - 'type' => 'string', - 'required' => false, - 'example' => '123157******', - ], - 'required' => true, - 'maxItems' => 15, - 'minItems' => 1, + 'items' => ['description' => '服务器组ID。一次最多支持查询20个服务器组ID。', 'type' => 'string', 'required' => false, 'example' => 'sgp-atstuj3rtoptyui****'], + 'required' => false, + 'maxItems' => 20, ], ], [ - 'name' => 'ListenerId', + 'name' => 'ServerGroupNames', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => '监听ID。该接口仅支持输入TCPSSL监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bpn0kn908w4nbw****@80', + 'description' => '服务器组名称,一次最多支持查询20个服务器组名称。', + 'type' => 'array', + 'items' => ['description' => '服务器组名称,一次最多支持查询20个服务器组名称。', 'type' => 'string', 'required' => false, 'example' => 'NLB_ServerGroup'], + 'required' => false, + 'maxItems' => 20, ], ], [ - 'name' => 'DryRun', + 'name' => 'ResourceGroupId', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会为TCPSSL监听解绑扩展证书。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '服务器组所属的资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], ], [ - 'name' => 'ClientToken', + 'name' => 'ServerGroupType', 'in' => 'formData', + 'schema' => ['description' => '服务器组类型。取值:'."\n" + ."\n" + .'- **Instance**:服务器类型,该类型服务器组支持添加**Ecs**、**Ens**、**Eci**类型实例。'."\n" + .'- **Ip**:IP地址类型,该类型服务器组支持直接添加IP地址。', 'type' => 'string', 'required' => false, 'example' => 'Instance'], + ], + [ + 'name' => 'VpcId', + 'in' => 'formData', + 'schema' => ['title' => '服务器组所在vpc的id', 'description' => '服务器组所在VPC的ID。', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp15zckdt37pq72zv****'], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。最多支持10个标签键。'."\n" + ."\n" + .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或`者https://`。', 'type' => 'string', 'required' => false, 'example' => 'Test'], + 'Value' => ['description' => '标签值。最多支持10个标签值。'."\n" + ."\n" + .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'Test'], + ], + 'required' => false, + ], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'maxItems' => 20, + 'minItems' => 1, ], ], [ + 'name' => 'NextToken', + 'in' => 'formData', + 'schema' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'formData', + 'schema' => ['description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<AdditionalCertificatesWithListenerResponse>', - 'description' => 'RpcResponse<AdditionalCertificatesWithListenerResponse>', + 'title' => 'RpcResponse<ListServerGroupsResponse>', + 'description' => '查询服务器组。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B28E3D-DF70-471B-AA93-08E683A1B45'], + 'ServerGroups' => [ + 'description' => '后端服务器组列表。', + 'type' => 'array', + 'items' => [ + 'description' => '后端服务器组列表。', + 'type' => 'object', + 'properties' => [ + 'RegionId' => ['title' => '业务region', 'description' => '网络型负载均衡实例所在的地域ID。 ', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'ServerGroupId' => ['title' => '服务器组id', 'description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****'], + 'ServerGroupName' => ['title' => '服务器组名称', 'description' => '服务器组名称。', 'type' => 'string', 'example' => 'NLB_ServerGroup'], + 'ServerGroupType' => ['title' => '服务器组类型', 'description' => '服务器组类型。取值:'."\n" + ."\n" + .'- **Instance**:服务器类型,该类型服务器组支持添加**Ecs**、**Ens**、**Eci**类型实例。'."\n" + .'- **Ip**:IP地址类型,该类型服务器组支持直接添加IP地址。', 'type' => 'string', 'example' => 'Instance'], + 'AddressIPVersion' => ['title' => '服务器组地址类型', 'description' => '协议版本。取值:'."\n" + ."\n" + .'- **Ipv4**:ipv4类型。'."\n" + .'- **DualStack**:双栈类型。', 'type' => 'string', 'example' => 'ipv4'], + 'VpcId' => ['title' => '服务器组的vpcid', 'description' => '服务器组所在VPC的ID。', 'type' => 'string', 'example' => 'vpc-bp15zckdt37pq72zv****'], + 'Scheduler' => ['title' => '调度类型', 'description' => '调度算法。取值:'."\n" + ."\n" + .'- **Wrr**:加权轮询,权重值越高的后端服务器,被轮询到的概率也越高。'."\n" + .'- **Wlc**:加权最小连接数,除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的概率也越高。'."\n" + .'- **rr**:轮询,按照访问顺序依次将外部请求分发到后端服务器sch:源IP哈希:相同的源地址会调度到相同的后端服务器。'."\n" + .'- **sch**:源IP哈希,相同的源地址会调度到相同的后端服务器。'."\n" + .'- **tch**:四元组哈希,基于四元组(源IP、目的IP、源端口和目的端口)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n" + .'- **qch**:QUIC ID哈希,支持将同一个QUIC ID的请求哈希到同一台后端服务器上。', 'type' => 'string', 'example' => 'Wrr'], + 'Protocol' => ['title' => '后端协议', 'description' => '后端转发协议,取值:**TCP**、**UDP**。', 'type' => 'string', 'example' => 'TCP'], + 'HealthCheck' => [ + 'title' => '健康检查配置', + 'description' => '健康检查配置信息。', + 'type' => 'object', + 'properties' => [ + 'HealthCheckEnabled' => ['title' => '是否开启健康检查', 'description' => '是否开启健康检查,取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'HealthCheckType' => ['title' => '健康检查协议类型', 'description' => '健康检查协议。取值:'."\n" + ."\n" + .'- **TCP**'."\n" + .'- **HTTP**'."\n" + .'- **UDP**', 'type' => 'string', 'example' => 'TCP'], + 'HealthCheckConnectPort' => ['title' => '健康检查使用的端口', 'description' => '健康检查的后端服务器的端口。'."\n" + ."\n" + .'取值范围: **0**~**65535**。'."\n" + ."\n" + .'**0**表示使用后端服务器的端口进行健康检查。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + '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' => '3'], + 'HealthCheckConnectTimeout' => ['title' => '健康检查响应的最大超时时间', 'description' => '健康检查响应的最大超时时间。单位:秒,默认值:**5**。'."\n" + ."\n" + .'取值范围:**1**~**300**。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'HealthCheckInterval' => ['title' => '健康检查时间间隔', 'description' => '健康检查的时间间隔。单位:秒,默认值:**5**。'."\n" + ."\n" + .'- **HealthCheckType**为**TCP**或者**HTTP**时,取值范围为:**1~50**。'."\n" + .'- **HealthCheckType**为**UDP**时,取值范围为:**1~300**,您需要设置间隔时间>=响应超时时间,以确保UDP探测回包不会因为超时而被误判为未响应。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'HealthCheckDomain' => ['title' => '健康检查的域名', 'description' => '用于健康检查的域名。取值:'."\n" + ."\n" + .'- **$SERVER_IP**:使用后端服务器内网IP。'."\n" + ."\n" + .'- **domain**:指定特定域名。长度限制1~80个字符,只能使用小写字母、数字、短划线(-)、半角句号(.)。'."\n" + ."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', 'example' => '$SERVER_IP'], + 'HealthCheckUrl' => ['title' => '健康检查的url', 'description' => '健康检查路径。'."\n" + ."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', 'example' => '/test/index.html'], + 'HealthCheckHttpCode' => [ + 'title' => '状态码,多个状态码用逗号分隔', + 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n" + .'取值:**http\\_2xx**、**http\\_3xx**、**http\\_4xx**和**http\\_5xx**。'."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', + 'type' => 'array', + 'items' => ['description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n" + .'取值:**http\\_2xx**、**http\\_3xx**、**http\\_4xx**和**http\\_5xx**。'."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', 'example' => 'http_2xx'], + ], + 'HttpCheckMethod' => ['description' => '健康检查方法,取值:**GET**或**HEAD**。'."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', 'example' => 'GET'], + 'HealthCheckReq' => ['description' => 'UDP 监听健康检查的请求串。只允许包含字母、数字,最大长度限制为 512 个字符。', 'type' => 'string', 'example' => 'hello'], + 'HealthCheckExp' => ['description' => 'UDP 监听健康检查的响应串。只允许包含字母、数字,最大长度限制为 512 个字符。', 'type' => 'string', 'example' => 'ok'], + 'HealthCheckHttpVersion' => ['description' => '健康检查HTTP协议版本,取值:**HTTP1.0**或**HTTP1.1**。'."\n" + ."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', 'example' => 'HTTP1.0'], + ], + ], + 'ConnectionDrainEnabled' => ['title' => '连接优雅中断开关', 'description' => '是否开启连接优雅中断。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'ConnectionDrainTimeout' => ['title' => '连接优雅中断超时时间', 'description' => '设置连接优雅中断超时时间。单位:秒。'."\n" + .'取值范围:**10**~**900**。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'PreserveClientIpEnabled' => ['title' => '客户端地址保持开关', 'description' => '是否开启客户端地址保持功能。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**:关闭。'."\n" + ."\n" + .'> 特殊说明:**AddressIPVersion**为**ipv4**类型时默认为**true**。**AddressIPVersion**为**ipv6**值时只能是**false**,后续待底层支持后可以为**true**。', 'type' => 'boolean', 'example' => 'true'], + 'AnyPortEnabled' => ['description' => '是否开启全端口转发。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'ResourceGroupId' => ['title' => '资源组id', 'description' => '服务器组所属的资源组ID。', 'type' => 'string', 'example' => 'rg-atstuj3rtop****'], + 'ServerGroupStatus' => ['title' => '状态', 'description' => '服务器组状态。取值:'."\n" + ."\n" + .'- **Creating**:创建中。'."\n" + .'- **Available**:可用。'."\n" + .'- **Configuring**:变配中。', 'type' => 'string', 'example' => 'Available'], + 'AliUid' => ['description' => '用户UID。', 'type' => 'integer', 'format' => 'int64', 'example' => '165820696622****'], + 'Tags' => [ + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。最多支持10个标签键。'."\n" + ."\n" + .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或`者https://`。', 'type' => 'string', 'example' => 'Test'], + 'Value' => ['description' => '标签值。最多支持10个标签值。'."\n" + ."\n" + .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'example' => 'Test'], + ], + ], + ], + 'RelatedLoadBalancerIds' => [ + 'description' => '网络型负载均衡实例列表。', + 'type' => 'array', + 'items' => ['description' => '网络型负载均衡实例列表。', 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****'], + ], + 'ServerCount' => ['description' => '后端服务器数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'IpVersionAffinityMode' => ['description' => '双栈模式下的流量调度策略:'."\n" + ."\n" + .'- NonAffinity(默认):无亲和模式,转发时不区分来源的IP协议版本,按照调度算法向健康的后端转发。'."\n" + .'- Affinity:亲和模式,转发时根据请求来源的IP协议版本亲和转发,IPv4请求仅转发至IPv4后端,IPv6请求仅转发至IPv6后端。'."\n" + .'> 仅**AddressIPVersion**为**DualStack**时,该参数生效。', 'type' => 'string', 'example' => 'Affinity'], + ], + ], ], + 'TotalCount' => ['description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'MaxResults' => ['description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.certificate', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.loadbalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.Protocol', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.DefaultCertificateUsed', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceNotAssociated.Certificate', - 'errorMessage' => 'The specified resource %s is not associated.', - ], - [ - 'errorCode' => 'OperationDenied.CaCertificateUsed', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], + 403 => [ + ['errorCode' => 'Forbidden.%s', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '当前资源或者操作%s鉴权失败'], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Nlb::2022-04-30::GetJobStatus', - 'callbackInterval' => 5, - 'maxCallbackTimes' => 10, + 'title' => '查询服务器组', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListServerGroups'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListServerGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/*'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DisassociateAdditionalCertificatesWithListenerResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DisassociateAdditionalCertificatesWithListenerResponse>","errorExample":""}]', - 'title' => '解除关联监听和扩展证书', - 'description' => '**DisassociateAdditionalCertificatesWithListener**接口属于异步接口,即系统返回一个请求ID,但该扩展证书尚未解绑成功,系统后台的解绑任务仍在进行。您可以调用[ListListenerCertificates](~~615175~~)查询扩展证书的解绑状态:'."\n" - .' - 当扩展证书状态处于**Dissociating**状态时,表示扩展证书正在解绑中。'."\n" - .' - 当扩展证书状态处于**Dissociated**状态时,表示扩展证书解绑成功。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B28E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroups\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"ServerGroupName\\": \\"NLB_ServerGroup\\",\\n \\"ServerGroupType\\": \\"Instance\\",\\n \\"AddressIPVersion\\": \\"ipv4\\",\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"Scheduler\\": \\"Wrr\\",\\n \\"Protocol\\": \\"TCP\\",\\n \\"HealthCheck\\": {\\n \\"HealthCheckEnabled\\": false,\\n \\"HealthCheckType\\": \\"TCP\\",\\n \\"HealthCheckConnectPort\\": 200,\\n \\"HealthyThreshold\\": 2,\\n \\"UnhealthyThreshold\\": 3,\\n \\"HealthCheckConnectTimeout\\": 200,\\n \\"HealthCheckInterval\\": 10,\\n \\"HealthCheckDomain\\": \\"$SERVER_IP\\",\\n \\"HealthCheckUrl\\": \\"/test/index.html\\",\\n \\"HealthCheckHttpCode\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HttpCheckMethod\\": \\"GET\\",\\n \\"HealthCheckReq\\": \\"hello\\",\\n \\"HealthCheckExp\\": \\"ok\\",\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.0\\"\\n },\\n \\"ConnectionDrainEnabled\\": false,\\n \\"ConnectionDrainTimeout\\": 200,\\n \\"PreserveClientIpEnabled\\": true,\\n \\"AnyPortEnabled\\": false,\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"ServerGroupStatus\\": \\"Available\\",\\n \\"AliUid\\": 0,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"RelatedLoadBalancerIds\\": [\\n \\"nlb-83ckzc8d4xlp8o****\\"\\n ],\\n \\"ServerCount\\": 2,\\n \\"IpVersionAffinityMode\\": \\"Affinity\\"\\n }\\n ],\\n \\"TotalCount\\": 1,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListServerGroupsResponse>\\n <RequestId>54B28E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroups>\\n <RegionId>cn-hangzhou</RegionId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <ServerGroupName>NLB_ServerGroup</ServerGroupName>\\n <ServerGroupType>Instance</ServerGroupType>\\n <AddressIPVersion>ipv4</AddressIPVersion>\\n <VpcId>vpc-bp15zckdt37pq72zv****</VpcId>\\n <Scheduler>Wrr</Scheduler>\\n <Protocol>TCP</Protocol>\\n <HealthCheck>\\n <HealthCheckEnabled>false</HealthCheckEnabled>\\n <HealthCheckType>TCP</HealthCheckType>\\n <HealthCheckConnectPort>200</HealthCheckConnectPort>\\n <HealthyThreshold>2</HealthyThreshold>\\n <UnhealthyThreshold>3</UnhealthyThreshold>\\n <HealthCheckConnectTimeout>200</HealthCheckConnectTimeout>\\n <HealthCheckInterval>200</HealthCheckInterval>\\n <HealthCheckDomain>$SERVER_IP</HealthCheckDomain>\\n <HealthCheckUrl>/test/index.html</HealthCheckUrl>\\n <HealthCheckHttpCode>http2xx</HealthCheckHttpCode>\\n <HttpCheckMethod>GET</HttpCheckMethod>\\n </HealthCheck>\\n <ConnectionDrainEnabled>false</ConnectionDrainEnabled>\\n <ConnectionDrainTimeout>200</ConnectionDrainTimeout>\\n <PreserveClientIpEnabled>true</PreserveClientIpEnabled>\\n <AnyPortEnabled>false</AnyPortEnabled>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <ServerGroupStatus>Available</ServerGroupStatus>\\n <Tags>\\n <Key>Test</Key>\\n <Value>Test</Value>\\n </Tags>\\n <RelatedLoadBalancerIds>nlb-83ckzc8d4xlp8o****</RelatedLoadBalancerIds>\\n <ServerCount>2</ServerCount>\\n </ServerGroups>\\n <TotalCount>1</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListServerGroupsResponse>","errorExample":""}]', ], - 'CreateServerGroup' => [ - 'summary' => '在指定地域创建服务器组。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListSystemSecurityPolicy' => [ + 'summary' => '查询系统默认的TLS安全策略。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '141881', - 'abilityTreeNodes' => [ - 'FEATUREslbVDXH6N', - ], - ], + 'systemTags' => ['operationType' => 'get'], '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', - 'default' => 'Instance', - 'enum' => [], - ], - ], - [ - 'name' => 'ServerGroupName', + 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'title' => '服务器组名称', - 'description' => '服务器组名称。'."\n" - ."\n" - .'长度为2~128个字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => true, - 'example' => 'NLB_ServerGroup', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], - [ - 'name' => 'AddressIPVersion', - 'in' => 'formData', - 'schema' => [ - 'description' => '协议版本。取值:'."\n" - ."\n" - .'- **ipv4**(默认值):IPv4类型。'."\n" - ."\n" - .'- **DualStack**:双栈类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'ipv4', - 'default' => 'Ipv4', - 'enum' => [], - ], - ], - [ - 'name' => 'IpVersionAffinityMode', - 'in' => 'formData', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '', - 'description' => '双栈模式下的流量调度策略:'."\n" - ."\n" - .'- NonAffinity(默认):无亲和模式,转发时不区分来源的IP协议版本,按照调度算法向健康的后端转发。'."\n" - .'- Affinity:亲和模式,转发时根据请求来源的IP协议版本亲和转发,IPv4请求仅转发至IPv4后端,IPv6请求仅转发至IPv6后端。'."\n" - .'> 仅**AddressIPVersion**为**DualStack**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'Affinity', - 'enum' => [ - 'NonAffinity', - 'Affinity', + 'title' => 'RpcResponse<ListSystemSecurityPolicyResponse>', + 'description' => '查询系统默认的TLS安全策略。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5C057647-284B-5C67-A07E-4B8F3DABA9F9'], + 'SecurityPolicies' => [ + 'description' => 'TLS安全策略列表。', + 'type' => 'array', + 'items' => [ + 'description' => '安全策略。', + 'type' => 'object', + 'properties' => [ + 'SecurityPolicyId' => ['title' => 'tls策略ID', 'description' => 'TLS策略ID。', 'type' => 'string', 'example' => 'tls_cipher_policy_1_0'], + 'SecurityPolicyName' => ['title' => '名称', 'description' => 'TLS安全策略名称。', 'type' => 'string', 'example' => 'test'], + 'TlsVersion' => ['title' => 'tls版本', 'description' => 'TLS版本。', 'type' => 'string', 'example' => 'TLSv1.0,TLSv1.1,TLSv1.2'], + 'Ciphers' => ['title' => '加密套件', 'description' => '加密套件。', 'type' => 'string', 'example' => 'ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES128-SHA256,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES256-SHA384,AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA256,AES256-SHA256,ECDHE-ECDSA-AES128-SHA,ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES256-SHA,AES128-SHA,AES256-SHA,DES-CBC3-SHA'], + ], + ], + ], ], ], ], - [ - 'name' => 'Protocol', - 'in' => 'formData', - 'schema' => [ - 'title' => '后端服务器类型', - 'description' => '转发到后端服务器使用的通信协议。取值:'."\n" - ."\n" - .'- **TCP**(默认值)'."\n" - .'- **UDP**'."\n" - .'- **TCP_UDP**'."\n" - .'> '."\n" - .'> - 当该参数取值为**UDP**时,该服务器组只支持关联**UDP**监听。'."\n" - .'> - 当该参数取值为**TCP**且**PreserveClientIpEnabled**取值为**true**时,该服务器组只支持关联**TCP**监听。'."\n" - .'> - 当该参数取值为**TCP**且**PreserveClientIpEnabled**取值为**false**时,该服务器组支持关联**TCPSSL**监听和**TCP**监听。'."\n" - .'> - 当该参数取值为**TCP_UDP**时,该服务器组支持关联**TCP**监听和**UDP**监听。', - 'type' => 'string', - 'required' => false, - 'example' => 'TCP', - 'default' => 'Tcp', - 'enum' => [], - ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5C057647-284B-5C67-A07E-4B8F3DABA9F9\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_0\\",\\n \\"SecurityPolicyName\\": \\"test\\",\\n \\"TlsVersion\\": \\"TLSv1.0,TLSv1.1,TLSv1.2\\",\\n \\"Ciphers\\": \\"ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES128-SHA256,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES256-SHA384,AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA256,AES256-SHA256,ECDHE-ECDSA-AES128-SHA,ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES256-SHA,AES128-SHA,AES256-SHA,DES-CBC3-SHA\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => '查询系统安全策略', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListSystemSecurityPolicy'], ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [], + ], + 'ListTagResources' => [ + 'summary' => '查询指定资源标签。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'VpcId', - 'in' => 'formData', - 'schema' => [ - 'title' => '服务器组所在vpc的id', - 'description' => '服务器组所在VPC的ID。'."\n" - ."\n" - .'> 如果**ServerGroupType**取值为**Instance**时,只有该VPC下的服务器可以加入到该服务器组。', - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-bp15zckdt37pq72zv****', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '141863', + 'abilityTreeNodes' => ['FEATUREslbS3YPBZ', 'FEATUREslb01BKVK'], + ], + 'parameters' => [ [ - 'name' => 'AnyPortEnabled', + 'name' => 'ResourceType', 'in' => 'formData', - 'schema' => [ - 'description' => '是否开启全端口转发。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**(默认值):关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => '资源类型。取值:'."\n" + ."\n" + .'- **loadbalancer**:网络型负载均衡实例。'."\n" + .'- **securitypolicy**:安全策略。'."\n" + .'- **servergroup**:服务器组。'."\n" + .'- **listener**:监听。', 'type' => 'string', 'required' => true, 'example' => 'loadbalancer'], ], [ - 'name' => 'ConnectionDrainEnabled', + 'name' => 'ResourceId', 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'title' => '是否开启连接优雅中断', - 'description' => '是否开启连接优雅中断。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**(默认值):关闭。', - 'type' => 'boolean', + 'description' => '资源ID。', + 'type' => 'array', + 'items' => ['description' => '资源ID。', 'type' => 'string', 'required' => false, 'example' => 'nlb-nrnrxwd15en27r****'], 'required' => false, - 'example' => 'false', - 'default' => 'false', + 'maxItems' => 50, + 'minItems' => 1, ], ], [ - 'name' => 'ConnectionDrainTimeout', + 'name' => 'Tag', 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'title' => '连接优雅中断超时时间', - 'description' => '设置连接优雅中断超时时间。单位:秒。'."\n" - .'取值范围:**0**~**900**。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'env'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'product'], + ], + 'required' => false, + ], 'required' => false, - 'maximum' => '3600', - 'minimum' => '0', - 'example' => '10', - 'default' => '10', + 'maxItems' => 20, + 'minItems' => 1, ], ], [ - 'name' => 'Scheduler', + 'name' => 'NextToken', 'in' => 'formData', - 'schema' => [ - 'title' => '调度类型', - 'description' => '调度算法。取值:'."\n" - ."\n" - .'- **Wrr**(默认值):加权轮询,权重值越高的后端服务器,被轮询到的概率也越高。'."\n" - ."\n" - .'- **Wlc**:加权最小连接数,除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的概率也越高。'."\n" - ."\n" - .'- **rr**:轮询,按照访问顺序依次将外部请求分发到后端服务器。'."\n" - ."\n" - .'- **sch**:源IP哈希:相同的源地址会调度到相同的后端服务器。'."\n" - ."\n" - .'- **tch**:四元组哈希,基于四元组(源IP、目的IP、源端口和目的端口)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n" - ."\n" - .'- **qch**:QUIC ID哈希,支持将同一个QUIC ID的请求哈希到同一台后端服务器上。'."\n" - ."\n" - .'> 仅后端协议为UDP时,支持选择QUIC ID哈希。', - 'type' => 'string', - 'required' => false, - 'example' => 'Wrr', - 'default' => 'wrr', - ], + 'schema' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'PreserveClientIpEnabled', + 'name' => 'MaxResults', 'in' => 'formData', - 'schema' => [ - 'description' => '是否开启客户端地址保持功能。取值:'."\n" - ."\n" - .'- **true**(默认值):开启。'."\n" - .'- **false**:关闭。'."\n" - ."\n\n" - .'> '."\n" - .'> 当**Protocol**取值为**TCP**且该参数取值为**true**时,该服务器组不支持关联**TCPSSL**监听。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '分批次查询时每次显示的条目数。取值范围:**1**~**50**,默认值为**50**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], [ - 'name' => 'HealthCheckConfig', + 'name' => 'RegionId', 'in' => 'formData', - 'style' => 'flat', + 'schema' => ['description' => '您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '健康检查配置', - 'description' => '健康检查相关配置。', + 'title' => 'RpcResponse<ListTagResourcesResponse>', + 'description' => '查询资源标签。', 'type' => 'object', 'properties' => [ - 'HealthCheckEnabled' => [ - 'title' => '是否开启健康检查', - 'description' => '是否开启健康检查,取值:'."\n" - ."\n" - .'- **true**(默认值):开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'HealthCheckType' => [ - 'title' => '健康检查协议类型', - 'description' => '健康检查协议。取值:'."\n" - ."\n" - .'- **TCP**'."\n" - .'- **HTTP**'."\n" - .'- **UDP**', - 'type' => 'string', - 'required' => false, - 'example' => 'TCP', - ], - 'HealthCheckConnectPort' => [ - 'title' => '健康检查使用的端口', - 'description' => '健康检查的后端服务器的端口。'."\n" - ."\n" - .'取值范围: **0**~**65535**。'."\n" - ."\n" - .'默认值:**0**,表示使用后端服务器的端口进行健康检查。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], - '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', - ], - 'HealthCheckConnectTimeout' => [ - 'title' => '健康检查响应的最大超时时间', - 'description' => '健康检查响应的最大超时时间。单位:秒。'."\n" - .'取值范围:**1**~**300**。'."\n" - .'默认值:**5**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], - 'HealthCheckInterval' => [ - 'title' => '健康检查时间间隔', - 'description' => '健康检查的时间间隔。单位:秒。默认值:**5**'."\n" - ."\n" - .'- **HealthCheckType**为**TCP**或者**HTTP**时,取值范围为:**1**~**50**。'."\n" - .'- **HealthCheckType**为**UDP**时,取值范围为:**1**~**300**,您需要设置间隔时间>=响应超时时间,以确保UDP探测回包不会因为超时而被误判为未响应。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], - 'HealthCheckDomain' => [ - 'title' => '健康检查的域名', - 'description' => '用于健康检查的域名。取值:'."\n" - ."\n" - .'- **$SERVER_IP**:使用后端服务器内网IP。'."\n" - ."\n" - .'- **domain**:指定特定域名。长度限制1~80个字符,只能使用大小写字母、数字、短划线(-)、半角句号(.)。'."\n" - ."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => '$SERVER_IP', - ], - 'HealthCheckUrl' => [ - 'title' => '健康检查的url', - 'description' => '健康检查路径。'."\n" - ."\n" - .'长度为1~80个字符,只能使用大小写英文字母、数字、字符`-/.%?#&`。 必须以正斜线(/)开头。'."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => '/test/index.html', - ], - 'HealthCheckHttpCode' => [ - 'title' => '状态码,多个状态码用逗号分隔', - 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n" - .'取值:**http\\_2xx**(默认值)、**http\\_3xx**、**http\\_4xx**和**http\\_5xx**。'."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'TagResources' => [ + 'description' => '由资源及其标签组成的集合,包含了资源ID、资源类型和标签键值等信息。', 'type' => 'array', 'items' => [ - 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n" - .'取值:**http\\_2xx**(默认值)、**http\\_3xx**、**http\\_4xx**和**http\\_5xx**。'."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'http_2xx', - ], - 'required' => false, - ], - 'HttpCheckMethod' => [ - 'description' => '健康检查方法,取值:**GET**(默认值)或**HEAD**。'."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'GET', - 'enum' => [], - ], - 'HealthCheckReq' => [ - 'description' => 'UDP 监听健康检查的请求字符串,只允许包含字母、数字,最大长度限制为 512 个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'hello', - ], - 'HealthCheckExp' => [ - 'description' => 'UDP 监听健康检查的请求字符串,只允许包含字母、数字,最大长度限制为 512 个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'ok', - ], - 'HealthCheckHttpVersion' => [ - 'description' => '健康检查HTTP协议版本,取值:**HTTP1.0**(默认值)或**HTTP1.1**。'."\n" - ."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP1.0', - 'enum' => [ - 'HTTP1.0', - 'HTTP1.1', + 'description' => '由资源及其标签组成的集合,包含了资源ID、资源类型和标签键值等信息。', + 'type' => 'object', + 'properties' => [ + 'ResourceId' => ['description' => '资源ID。', 'type' => 'string', 'example' => 'nlb-nrnrxwd15en27r****'], + 'ResourceType' => ['description' => '资源类型,取值:'."\n" + ."\n" + .'- **loadbalancer**:网络型负载均衡实例。'."\n" + .'- **securitypolicy**:安全策略。'."\n" + .'- **servergroup**:服务器组。', 'type' => 'string', 'example' => 'loadbalancer'], + 'RegionNo' => ['description' => '地域信息。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'AliUid' => ['description' => '用户UID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1429****39299349'], + 'TagKey' => ['description' => '标签键。', 'type' => 'string', 'example' => 'env'], + 'TagValue' => ['description' => '标签值。', 'type' => 'string', 'example' => 'product'], + 'Scope' => ['description' => '标签可见范围。', 'type' => 'string', 'example' => 'public'], + 'Category' => ['description' => '标签类型。取值:'."\n" + ."\n" + .'- **Custom**:自定义标签。'."\n" + .'- **System**:系统标签。'."\n" + .'- **All**:全部标签。'."\n", 'type' => 'string', 'example' => 'All'], + ], ], ], + 'TotalCount' => ['description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'NextToken' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'MaxResults' => ['description' => '分批次查询时每次显示的条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], ], - 'required' => false, ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'IllegalParam.resourceType', 'errorMessage' => 'The param of resourceType is illegal.', 'description' => '参数resourceType非法。请检查参数resourceType的输入值。'], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => '参数%s缺失,请检查输入参数。'], + ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], [ - 'name' => 'ResourceGroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '服务器组所属的资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', + ['errorCode' => 'ResourceNotFound.securitypolicy', 'errorMessage' => 'The specified resource of securitypolicy is not found.', 'description' => '找不到指定的安全策略资源。请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => '找不到指定的服务器组资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"nlb-nrnrxwd15en27r****\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"RegionNo\\": \\"cn-hangzhou\\",\\n \\"AliUid\\": 0,\\n \\"TagKey\\": \\"env\\",\\n \\"TagValue\\": \\"product\\",\\n \\"Scope\\": \\"public\\",\\n \\"Category\\": \\"All\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","type":"json"}]', + 'title' => '查询资源标签', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTagResources'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServergroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], ], ], + ], + ], + 'LoadBalancerJoinSecurityGroup' => [ + 'summary' => '为网络型负载均衡实例绑定已创建的安全组。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DryRun', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'SecurityGroupIds', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会创建服务器组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', + 'description' => '安全组ID。', + 'type' => 'array', + 'items' => ['description' => '安全组ID。', 'type' => 'string', 'required' => false, 'example' => 'sg-bp1fg655nh68xyz9****'], + 'required' => true, + 'maxItems' => 10, ], ], [ - 'name' => 'ClientToken', + 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => '待绑定安全组的网络型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], ], [ - 'name' => 'RegionId', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会为实例绑定安全组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'Tag', + 'name' => 'ClientToken', 'in' => 'formData', - 'allowEmptyValue' => true, - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持64个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" - ."\n" - .'一次调用最多支持添加20个标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" - ."\n" - .'一次调用最多支持添加20个标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + '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' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。'."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<CreateServerGroupResponse>', - 'description' => '创建服务器组。', + 'title' => 'response', + 'description' => '为NLB实例绑定已创建的安全组。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ServerGroupId' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.AnyPortServerGroupConflictWithHealthCheckConfig', - 'errorMessage' => 'The param of AnyPortServerGroupConflictWithHealthCheckConfig is illegal.', - ], - [ - 'errorCode' => 'IllegalParamFormat.ParseCreateRsPoolRequestFailed', - 'errorMessage' => 'The param format of CreateRsPoolRequest is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.PreserveClientIpSwitch', - 'errorMessage' => 'The param of PreserveClientIpSwitch is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.VpcNotSupportIpv6', - 'errorMessage' => 'The operation is not allowed because of VpcNotSupportIpv6.', - ], - [ - 'errorCode' => 'IllegalParam.healthCheckDomain', - 'errorMessage' => 'The parameter of healthCheckConfig.healthCheckDomain is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.UidNotAllowQuic29', - 'errorMessage' => 'The operation is not allowed because of uid not allow quic29 version.', - ], - [ - 'errorCode' => 'IlleagalParam.healthCheckUrl', - 'errorMessage' => 'The parameter of healthCheckUrl in healthCheckConfig is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.ServerGroupName', - 'errorMessage' => 'The param of ServerGroupName is illegal.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', - ], - [ - 'errorCode' => 'IllegalParam.ConnectionDrainTimeout', - 'errorMessage' => 'The param of ConnectionDrainTimeout is illegal.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'QuotaExceeded.QuotaInsufficient', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'QuotaExceeded.QuotaInsufficient', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额不足,已使用%s/%s。请在配额中心中修改配额大小。'], + ['errorCode' => 'Conflict.SecurityGroup', 'errorMessage' => 'The SecurityGroup [%s] is conflict.', 'description' => '指定的资源当前存在锁冲突。'], + ['errorCode' => 'Mismatch.%s', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '对于资源对象%s和%s,参数%s缺失'], + ['errorCode' => 'OperationDenied.%s', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '因为%s,当前操作是不允许的'], + ['errorCode' => 'TagInvokeError', 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', 'description' => '在资源标签中找不到资源定义,请检查RAM是否给NLB添加授权。'], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => '指定的资源当前存在锁冲突。'], + ['errorCode' => 'Mismatch.vpc', 'errorMessage' => 'The Vpc is mismatched for %s and %s.', 'description' => '资源%s和资源%s的VPC不匹配。请检查两种资源是否在同一个VPC下。'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], + ['errorCode' => 'ResourceInCreating.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', 'description' => '正在创建指定的负载均衡器资源,请稍后重试。'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => '正在配置指定的负载均衡资源,请稍后重试。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ['errorCode' => 'Forbidden.SecurityGroup', 'errorMessage' => 'Authentication is failed for SecurityGroup.', 'description' => '因为安全组没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.Vpc', - 'errorMessage' => 'The specified resource of Vpc is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ResourceGroup', - 'errorMessage' => 'The param of resourceGroup not existed.', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.SecurityGroup', 'errorMessage' => 'The specified resource of SecurityGroup is not found.', 'description' => '找不到指定的安全组资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<LoadBalancerJoinSecurityGroupResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</LoadBalancerJoinSecurityGroupResponse>","errorExample":""}]', + 'title' => '绑定安全组', + 'description' => '- 请确保您已创建安全组。创建安全组,请参见[CreateSecurityGroup](~~25553~~)。'."\n" + .'- 一个网络型负载均衡实例最多支持加入4个安全组。'."\n" + .'- 您可以通过[GetLoadBalancerAttribute](~~214362~~)接口查询实例绑定的安全组。'."\n" + .'- LoadBalancerJoinSecurityGroup属于异步接口,即系统返回一个请求ID,但该网络型负载均衡实例绑定安全组尚未成功,系统后台的绑定任务仍在进行。您可以调用[GetJobStatus](~~445904~~)查询安全组的绑定状态:'."\n" + .' - 当任务状态处于**Succeeded**时,表示安全组绑定成功。'."\n" + .' - 当任务状态处于**Processing**时,表示安全组正在绑定中,在该状态下,您只能执行查询操作,不能执行其他操作。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'LoadBalancerJoinSecurityGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:LoadBalancerJoinSecurityGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityGroup', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:securitygroup/{#SecurityGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateServerGroupResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</CreateServerGroupResponse>","errorExample":""}]', - 'title' => '创建服务器组', - 'description' => '**CreateServerGroup**接口属于异步接口,即系统返回一个请求ID,但该网络型负载均衡的服务器组尚未创建成功,系统后台的创建任务仍在进行。您可以调用[GetJobStatus](~~445904~~)查询服务器组的创建状态:'."\n" - .' - 当任务状态处于**Succeeded**时,表示服务器组创建成功。'."\n" - .' - 当任务状态处于**Processing**时,表示服务器组正在创建中,在该状态下,您只能执行查询操作,不能执行其他操作。', ], - 'AddServersToServerGroup' => [ - 'summary' => '向网络型负载均衡服务器组中添加后端服务器。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'LoadBalancerLeaveSecurityGroup' => [ + 'summary' => '为网络型负载均衡实例解绑安全组。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7598,285 +5451,107 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeNodes' => [ - 'FEATUREslbWFW5HS', - ], - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'ServerGroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-atstuj3rtoptyui****', - ], - ], - [ - 'name' => 'Servers', + 'name' => 'SecurityGroupIds', 'in' => 'formData', - 'style' => 'flat', + 'style' => 'repeatList', 'schema' => [ - 'description' => '后端服务器列表。'."\n" - ."\n" - .'> 单次调用最多支持传入200个服务器。', + 'description' => '待解绑的安全组ID。', 'type' => 'array', - 'items' => [ - 'description' => '后端服务器列表。'."\n" - ."\n" - .'> 单次调用最多支持传入200个服务器。', - 'type' => 'object', - 'properties' => [ - 'ServerId' => [ - 'title' => '服务器id', - 'description' => '后端服务器ID。'."\n" - ."\n" - .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源ID。'."\n" - ."\n" - .'- 当服务器组为**Ip**类型时,该参数为IP地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'i-bp67acfmxazb4p****', - ], - 'ServerType' => [ - 'title' => '服务器类型', - 'description' => '后端服务器类型,取值:'."\n" - ."\n" - .'- **Ecs**:ECS实例。'."\n" - .'- **Eni**:ENI弹性网卡实例。'."\n" - .'- **Eci**:ECI弹性容器。'."\n" - .'- **Ip**:Ip地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'Ecs', - 'enum' => [], - ], - 'ServerIp' => [ - 'title' => '服务器ip', - 'description' => '服务器IP地址。当服务器组为**Ip**类型时,必须指定IP地址。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.6.6', - ], - 'Port' => [ - 'title' => '服务器端口', - 'description' => '后端服务器使用的端口。端口范围**0~65535**,不填则默认传入端口值**0**。'."\n" - ."\n" - .'当服务器组开启全端口转发后,添加后端服务器时无需指定端口(默认传入0),NLB将按照前端请求端口转发流量至后端服务器。您可以通过[ListServerGroups](~~445895~~)接口返回的**AnyPortEnabled**字段查询是否开启了全端口转发。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '443', - ], - 'Weight' => [ - 'title' => '后端权重', - 'description' => '后端服务器的权重,取值范围:**0**~**100**。默认值为**100**。如果设置权重为**0**,则不会将请求转发给该后端服务器。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - 'default' => '100', - ], - 'Description' => [ - 'title' => '服务器描述信息', - 'description' => '服务器描述信息。'."\n" - ."\n" - .'长度限制为2-256个字符,可包含英文字母、数字、中文、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'ECS', - ], - ], - 'required' => false, - ], + 'items' => ['description' => '待解绑的安全组ID。', 'type' => 'string', 'required' => false, 'example' => 'sg-bp1fg655nh68xyz9****'], 'required' => true, - 'maxItems' => 200, + 'maxItems' => 10, ], ], [ - 'name' => 'RegionId', + 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会添加服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会为实例解绑安全组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。'."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<AddServersToServerGroupResponse>', - 'description' => '添加后端服务器。', + 'title' => 'response', + 'description' => 'response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ServerGroupId' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'IllegalParam.IP', - 'errorMessage' => 'The param of IP is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded.QuotaInsufficient', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'DuplicatedParam.Server', - 'errorMessage' => 'The param of Server is duplicated.', - ], - [ - 'errorCode' => 'IncorrectStatus.serverGroup', - 'errorMessage' => 'The status of servergroup [%s] is incorrect.', - ], - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The VpcId is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'Mismatch.ServerType', - 'errorMessage' => 'The ServerType is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'IllegalParam.RSPortConflictWithServerGroup', - 'errorMessage' => 'The param of RSPortConflictWithServerGroup is illegal.', - ], - [ - 'errorCode' => 'TagInvokeError', - 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', - ], - [ - 'errorCode' => 'ResourceInUse.IP', - 'errorMessage' => 'The specified resource of IP is in use.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', - ], - [ - 'errorCode' => 'IllegalParam.description', - 'errorMessage' => 'The parameter description of server is illegal.', - ], - [ - 'errorCode' => 'MissingParam.IP', - 'errorMessage' => 'The param of IP is missing.', - ], - [ - 'errorCode' => 'OperationDenied.ServerGroupNotSupportIpv6', - 'errorMessage' => 'The operation is not allowed because of ServerGroupNotSupportIpv6.', - ], - [ - 'errorCode' => 'IncorrectStatus.Eni', - 'errorMessage' => 'Eni status is invalid.', - ], - [ - 'errorCode' => 'IdempotenceSignatureMismatch', - 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', - ], - [ - 'errorCode' => 'Throttling.User', - 'errorMessage' => 'Request was denied due to api flow control.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => '正在配置指定的负载均衡资源,请稍后重试。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.SecurityGroup', 'errorMessage' => 'Authentication is failed for SecurityGroup.', 'description' => '因为安全组没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Eci', - 'errorMessage' => 'The specified resource of Eci is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ecs', - 'errorMessage' => 'The specified resource of Ecs is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Eni', - 'errorMessage' => 'The specified resource Eni is not found.', + ['errorCode' => 'ResourceNotFound.%s', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '无法找到所需要使用的资源%s'], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<LoadBalancerLeaveSecurityGroupResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</LoadBalancerLeaveSecurityGroupResponse>","errorExample":""}]', + 'title' => '解绑安全组', + 'description' => 'LoadBalancerLeaveSecurityGroup接口属于异步接口,即系统返回一个请求ID,但该网络型负载均衡实例的安全组尚未解绑成功,系统后台的解绑任务仍在进行。您可以调用[GetJobStatus](~~445904~~)查询安全组的解绑状态:'."\n" + ."\n" + .'- 当任务状态处于**Succeeded**时,表示安全组解绑成功。'."\n" + .'- 当任务状态处于**Processing**时,表示安全组正在解绑中,在该状态下,您只能执行查询操作,不能执行其他操作。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'LoadBalancerLeaveSecurityGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:LoadBalancerLeaveSecurityGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityGroup', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:securitygroup/{#SecurityGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<AddServersToServerGroupResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</AddServersToServerGroupResponse>","errorExample":""}]', - 'title' => '添加后端服务器', ], - 'DeleteServerGroup' => [ - 'summary' => '删除网络型负载均衡的服务器组。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'MoveResourceGroup' => [ + 'summary' => '修改云资源所属的资源组。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7885,76 +5560,57 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '179098', + 'abilityTreeNodes' => ['FEATUREslbZQW9H1'], ], 'parameters' => [ [ - 'name' => 'ServerGroupId', + 'name' => 'NewResourceGroupId', 'in' => 'formData', - 'schema' => [ - 'title' => '服务器组ID', - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-atstuj3rtoptyui****', - ], + 'schema' => ['description' => '新资源组ID。', 'type' => 'string', 'required' => true, 'example' => 'rg-aekzjcnrv3v****'], ], [ - 'name' => 'DryRun', + 'name' => 'ResourceType', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会删除服务器组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => '资源类型,取值:'."\n" + ."\n" + .'- **loadbalancer**:网络型负载均衡实例。'."\n" + .'- **securitypolicy**:安全策略。'."\n" + .'- **servergroup**:服务器组。', 'type' => 'string', 'required' => true, 'example' => 'loadbalancer'], ], [ - 'name' => 'ClientToken', + 'name' => 'ResourceId', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => '资源ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-nrnrxwd15en27r****'], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '资源所在的地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<DeleteServerGroupResponse>', - 'description' => '删除服务器组。', + 'title' => 'RpcResponse<MoveResourceGroupResponse>', + 'description' => 'RpcResponse<MoveResourceGroupResponse>', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'Success' => ['description' => '接口请求结果,取值:'."\n" + ."\n" + .'- **true**:请求成功。'."\n" + .'- **false**:请求失败。', 'type' => 'boolean', 'example' => 'true'], + 'HttpStatusCode' => ['description' => 'HTTP状态码', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Data' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'ResourceId' => ['description' => '资源ID。', 'type' => 'string', 'example' => 'nlb-nrnrxwd15en27r****'], + ], ], ], ], @@ -7962,53 +5618,47 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceInUse.ServerGroup', - 'errorMessage' => 'The specified resource of ServerGroup is in use.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IncorrectStatus.serverGroup', - 'errorMessage' => 'The status of servergroup [%s] is incorrect.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], + ['errorCode' => 'IllegalParam.resourceType', 'errorMessage' => 'The param of resourceType is illegal.', 'description' => '参数resourceType非法。请检查参数resourceType的输入值。'], + ['errorCode' => 'OperationFailed.StatusCheckFail.ResourceGroup', 'errorMessage' => 'The operation failed because of StatusCheckFail.ResourceGroup.', 'description' => '因为资源组状态检查失败,所以操作失败。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.ResourceGroup', 'errorMessage' => 'The param of resourceGroup not existed.', 'description' => '资源组不存在。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Success\\": true,\\n \\"HttpStatusCode\\": 200,\\n \\"Data\\": {\\n \\"ResourceId\\": \\"nlb-nrnrxwd15en27r****\\"\\n }\\n}","type":"json"}]', + 'title' => '变更资源所属的资源组', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'MoveResourceGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:MoveResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:serverGroup/{#serverGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteServerGroupResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DeleteServerGroupResponse>","errorExample":""}]', - 'title' => '删除服务器组', - 'description' => '服务器组未被任何监听使用时支持删除。', ], 'RemoveServersFromServerGroup' => [ 'summary' => '从网络型负载均衡服务器组中移除后端服务器。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8016,19 +5666,12 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'ServerGroupId', 'in' => 'formData', - 'schema' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-atstuj3rtoptyui****', - ], + 'schema' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****'], ], [ 'name' => 'Servers', @@ -8041,17 +5684,11 @@ 'description' => '后端服务器列表,单次调用最多支持传入200个服务器。', 'type' => 'object', 'properties' => [ - 'ServerId' => [ - 'title' => '服务器id', - 'description' => '后端服务器ID。'."\n" - ."\n" - .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源ID。'."\n" - ."\n" - .'- 当服务器组为**Ip**类型时,该参数为IP地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'i-bp67acfmxazb4p****', - ], + 'ServerId' => ['title' => '服务器id', 'description' => '后端服务器ID。'."\n" + ."\n" + .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源ID。'."\n" + ."\n" + .'- 当服务器组为**Ip**类型时,该参数为IP地址。', 'type' => 'string', 'required' => true, 'example' => 'i-bp67acfmxazb4p****'], 'ServerType' => [ 'title' => '服务器类型', 'description' => '后端服务器类型,取值:'."\n" @@ -8065,21 +5702,8 @@ 'example' => 'Ecs', 'enum' => [], ], - 'ServerIp' => [ - 'title' => '服务器ip', - 'description' => '服务器IP地址。当服务器组为**Ip**类型时,必须指定IP地址。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.6.6', - ], - 'Port' => [ - 'title' => '服务器端口', - 'description' => '后端服务器使用的端口。端口范围**0**~**65535**,不填则默认传入端口值**0**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '443', - ], + 'ServerIp' => ['title' => '服务器ip', 'description' => '服务器IP地址。当服务器组为**Ip**类型时,必须指定IP地址。', 'type' => 'string', 'required' => false, 'example' => '192.168.6.6'], + 'Port' => ['title' => '服务器端口', 'description' => '后端服务器使用的端口。端口范围**0**~**65535**,不填则默认传入端口值**0**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '443'], ], 'required' => false, ], @@ -8090,40 +5714,25 @@ [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会移除服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会移除服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -8133,77 +5742,142 @@ 'description' => '移除后端服务器。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ServerGroupId' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'IncorrectStatus.serverGroup', - 'errorMessage' => 'The status of servergroup [%s] is incorrect.', - ], - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IdempotenceSignatureMismatch', - 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', - ], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => '指定的资源当前存在锁冲突。'], + ['errorCode' => 'IncorrectStatus.serverGroup', 'errorMessage' => 'The status of servergroup [%s] is incorrect.', 'description' => '服务器组的状态无法进行当前操作,请检查服务器组当前是否处于其他操作下。'], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => '参数%s非法'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'IdempotenceSignatureMismatch', 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', 'description' => '请求的幂等令牌与上一个相同,但签名不同。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.BackendServer', - 'errorMessage' => 'The specified resource of BackendServer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', - ], + ['errorCode' => 'ResourceNotFound.BackendServer', 'errorMessage' => 'The specified resource of BackendServer is not found.', 'description' => '找不到指定的后端服务器资源,请检查输入的参数。'], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => '找不到指定的服务器组资源,请检查输入参数。'], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<RemoveServersFromServerGroupResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</RemoveServersFromServerGroupResponse>","errorExample":""}]', 'title' => '移除后端服务器', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveServersFromServerGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:RemoveServersFromServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], + ], + ], + ], ], - 'UpdateServerGroupAttribute' => [ - 'summary' => '更新 NLB 服务器组的配置信息', - 'methods' => [ - 'post', + 'SetHdMonitorRegionConfig' => [ + 'summary' => '配置秒级监控存储。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '207971', + 'abilityTreeNodes' => ['FEATUREslbNC4CZR'], + 'tenantRelevance' => 'publicInformation', ], - 'schemes' => [ - 'http', - 'https', + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['title' => 'add 必选', 'description' => '资源所在的地域ID。'."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~2399192~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'LogProject', + 'in' => 'query', + 'schema' => ['title' => 'add 必选', 'description' => '日志服务LogProject的名称。', 'type' => 'string', 'required' => true, 'example' => 'hdmonitor-cn-hangzhou-223794579283657556'], + ], + [ + 'name' => 'MetricStore', + 'in' => 'query', + 'schema' => ['title' => 'add 必选', 'description' => '日志服务MetricStore的名称。', 'type' => 'string', 'required' => true, 'example' => 'hdmonitor-cn-hangzhou-metricStore-1'], + ], ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'RpcResponse<GetJodResponse>', + 'description' => 'RpcResponse<GetJodResponse>', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'RegionId' => ['description' => '资源所在地域ID。'."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~2399192~~)接口获取地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'LogProject' => ['description' => '日志服务LogProject的名称。', 'type' => 'string', 'example' => 'hdmonitor-cn-hangzhou-223794579283657556'], + 'MetricStore' => ['description' => '日志服务MetricStore的名称。', 'type' => 'string', 'example' => 'hdmonitor-cn-hangzhou-metricStore-1'], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], + [ + ['errorCode' => 'EnableHDMonitor.Fail', 'errorMessage' => 'EnableHDMonitor Fail.', 'description' => '设置秒级监控错误'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LogProject\\": \\"hdmonitor-cn-hangzhou-223794579283657556\\",\\n \\"MetricStore\\": \\"hdmonitor-cn-hangzhou-metricStore-1\\"\\n}","type":"json"}]', + 'title' => '配置秒级监控', + 'description' => '设置秒级监控数仓信息,如果当前地域存在已开启秒级监控的监听,需要先关闭才可以调整秒级监控数仓。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SetHdMonitorRegionConfig'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:SetHdMonitorRegionConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + ], + 'StartListener' => [ + 'summary' => '启动网络型负载均衡监听。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8213,401 +5887,311 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '141878', - 'abilityTreeNodes' => [ - 'FEATUREslbVDXH6N', - ], + 'abilityTreeCode' => '141893', + 'abilityTreeNodes' => ['FEATUREslbC68LB1', 'FEATUREslb4PUXNB', 'FEATUREslbGDCN1S', 'FEATUREslbUZZGGD'], ], 'parameters' => [ [ - 'name' => 'ServerGroupId', + 'name' => 'ListenerId', 'in' => 'formData', - 'schema' => [ - 'title' => '服务器组ID', - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-atstuj3rtoptyui****', - ], + 'schema' => ['title' => 'update or delete必选, add在custom中生成', 'description' => '监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn908w4nbw****@80'], ], [ - 'name' => 'ServerGroupName', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '修改后的服务器组名称。'."\n" - ."\n" - .'长度为2~128个字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'NLB_ServerGroup1', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会启动监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'ConnectionDrainEnabled', + 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'title' => '是否开启连接优雅中断', - 'description' => '是否开启连接优雅中断。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:不开启。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + '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' => 'ConnectionDrainTimeout', + 'name' => 'RegionId', 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '连接优雅中断超时时间', - 'description' => '设置连接优雅中断超时时间。单位:秒。取值范围:**0**~**900**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', + 'title' => 'RpcResponse<StopOrStartListenerResponse>', + 'description' => '启动监听。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.listener', 'errorMessage' => 'The status of listener [%s] is incorrect.', 'description' => '监听的状态无法进行当前操作,请检查监听当前是否处于其他操作下。'], + ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], [ - 'name' => 'Scheduler', - 'in' => 'formData', - 'schema' => [ - 'title' => '调度类型', - 'description' => '调度算法。取值:'."\n" - ."\n" - .'- **Wrr**:加权轮询,权重值越高的后端服务器,被轮询到的概率也越高。'."\n" - ."\n" - .'- **Wlc**:加权最小连接数,除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的概率也越高。'."\n" - ."\n" - .'- **rr**:轮询,按照访问顺序依次将外部请求分发到后端服务器。'."\n" - ."\n" - .'- **sch**:源IP哈希:相同的源地址会调度到相同的后端服务器。'."\n" - ."\n" - .'- **tch**:四元组哈希,基于四元组(源IP、目的IP、源端口和目的端口)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n" - ."\n" - .'- **qch**:QUIC ID哈希,支持将同一个QUIC ID的请求哈希到同一台后端服务器上。'."\n" - ."\n" - .'> 仅后端协议为UDP时,支持选择QUIC ID哈希。', - 'type' => 'string', - 'required' => false, - 'example' => 'Wrr', + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<StartListenerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</StartListenerResponse>","errorExample":""}]', + 'title' => '启动监听', + 'changeSet' => [ + ['createdAt' => '2024-10-16T03:28:50.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-02-29T07:14:36.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-10-09T11:30:11.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2022-08-02T06:52:05.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-06-17T06:19:00.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartListener'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:StartListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], + ], + ], + 'StartShiftLoadBalancerZones' => [ + 'summary' => '将可用区对应的EIP/VIP从域名解析中摘除。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'IpVersionAffinityMode', + 'name' => 'ZoneMappings', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '双栈模式下的流量调度策略:'."\n" + 'description' => '可用区及交换机映射列表。'."\n" ."\n" - .'- NonAffinity(默认):无亲和模式,转发时不区分来源的IP协议版本,按照调度算法向健康的后端转发。'."\n" - .'- Affinity:亲和模式,转发时根据请求来源的IP协议版本亲和转发,IPv4请求仅转发至IPv4后端,IPv6请求仅转发至IPv6后端。'."\n" - .'> 仅**AddressIPVersion**为**DualStack**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'Affinity', - 'enum' => [ - 'NonAffinity', - 'Affinity', + .'> 一次调用最多支持移除一个可用区。', + 'type' => 'array', + 'items' => [ + 'description' => '可用区及交换机映射列表。'."\n" + ."\n" + .'> 一次调用最多支持移除一个可用区。', + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。'."\n", 'type' => 'string', 'required' => true, 'example' => 'vsw-bp1rmcrwg3erh1fh8****'], + 'ZoneId' => ['description' => 'NLB实例的可用区ID。'."\n" + .'> 一次调用最多支持移除一个可用区。'."\n" + ."\n" + .'您可以通过调用[DescribeZones](~~443890~~)接口获取可用区ID。'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a'], + ], + 'required' => false, ], + 'required' => true, + 'maxItems' => 1, + 'minItems' => 1, ], ], [ - 'name' => 'PreserveClientIpEnabled', + 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => '是否开启客户端地址保持功能。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。'."\n" - ."\n" - .'> 当**PreserveClientIpEnabled**参数取值为**false**且服务器组已关联**TCPSSL**监听时,不支持将该参数的值修改为**true**。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'NLB实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], ], [ - 'name' => 'HealthCheckConfig', + 'name' => 'DryRun', 'in' => 'formData', - 'style' => 'flat', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会移除可用区。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + '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' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'NLB实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '健康检查配置', - 'description' => '健康检查相关配置。', + 'title' => 'RpcResponse<LoadBalancerZonesResponse>', + 'description' => 'RpcResponse<LoadBalancerZonesResponse>', 'type' => 'object', 'properties' => [ - 'HealthCheckEnabled' => [ - 'title' => '是否开启健康检查', - 'description' => '是否开启健康检查,取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'HealthCheckType' => [ - 'title' => '健康检查协议类型', - 'description' => '健康检查协议。取值:'."\n" - ."\n" - .'- **TCP**'."\n" - .'- **HTTP**'."\n" - .'- **UDP**', - 'type' => 'string', - 'required' => false, - 'example' => 'TCP', - ], - 'HealthCheckConnectPort' => [ - 'title' => '健康检查使用的端口', - 'description' => '健康检查的后端服务器的端口。取值范围:**0**~**65535**。**0**表示使用后端服务器的端口进行健康检查。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], - 'HealthyThreshold' => [ - 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success', - 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。取值范围:**2**~**10**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', - ], - 'UnhealthyThreshold' => [ - 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail', - 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。取值范围:**2**~**10**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', - ], - 'HealthCheckConnectTimeout' => [ - 'title' => '健康检查响应的最大超时时间', - 'description' => '健康检查响应的最大超时时间。单位:秒。 取值范围:**1~300**。 默认值:**5**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - 'HealthCheckInterval' => [ - 'title' => '健康检查时间间隔', - 'description' => '健康检查的时间间隔。单位:秒,默认值:**5**。'."\n" - ."\n" - .'- **HealthCheckType**为**TCP**或者**HTTP**时,取值范围为:**1~50**。'."\n" - ."\n" - .'- **HealthCheckType**为**UDP**时,取值范围为:**1~300**,您需要设置间隔时间>=响应超时时间,以确保UDP探测回包不会因为超时而被误判为未响应。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], - 'HealthCheckDomain' => [ - 'title' => '健康检查的域名', - 'description' => '用于健康检查的域名。取值:'."\n" - .'- **$SERVER_IP**:使用后端服务器内网IP。'."\n" - .'- **domain**:指定特定域名。长度限制1~80个字符,只能使用小写字母、数字、短划线(-)、半角句号(.)。'."\n" - ."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => '$SERVER_IP', - ], - 'HealthCheckUrl' => [ - 'title' => '健康检查的url', - 'description' => '健康检查路径。'."\n" - ."\n" - .'长度为1~80个字符,只能使用字母、数字、字符`-/.%?#&=`以及扩展字符`_;~!()*[]@$^:\',+`。 必须以正斜线(/)开头。'."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => '/test/index.html', - ], - 'HealthCheckHttpCode' => [ - 'title' => '状态码,多个状态码用逗号分隔', - 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n" - .'取值:**http\\_2xx**(默认值)、**http\\_3xx**、**http\\_4xx**和**http\\_5xx**。'."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'array', - 'items' => [ - 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n" - .'取值:**http\\_2xx**(默认值)、**http\\_3xx**、**http\\_4xx**和**http\\_5xx**。'."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'http_2xx', - ], - 'required' => false, - ], - 'HttpCheckMethod' => [ - 'description' => '健康检查方法,取值:**GET**或**HEAD**。'."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'GET', - 'enum' => [], - ], - 'HealthCheckReq' => [ - 'description' => 'UDP监听健康检查的请求串。只允许包含字母、数字,最大长度限制为512个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'hello', - ], - 'HealthCheckExp' => [ - 'description' => 'UDP监听健康检查的响应串。只允许包含字母、数字,最大长度限制为512个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'ok', - ], - 'HealthCheckHttpVersion' => [ - 'description' => '健康检查HTTP协议版本,取值:**HTTP1.0**或**HTTP1.1**。'."\n" - ."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP1.0', - 'enum' => [ - 'HTTP1.0', - 'HTTP1.1', - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], ], - 'required' => false, ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => '正在配置指定的负载均衡资源,请稍后重试。'], + ], + 403 => [ + ['errorCode' => 'Forbidden.%s', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '当前资源或者操作%s鉴权失败'], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"<StartShiftLoadBalancerZonesResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n</StartShiftLoadBalancerZonesResponse>","errorExample":""}]', + 'title' => '把可用区的EIP/VIP从域名解析中摘除', + 'description' => '> 当前NLB实例可用区数量为1时,不支持将该可用区的EIP/VIP从域名解析中摘除。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartShiftLoadBalancerZones'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:StartShiftLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], + ], + ], + 'StopListener' => [ + 'summary' => '停止网络型负载均衡实例的监听。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'ListenerId', + 'in' => 'formData', + 'schema' => ['title' => 'update or delete必选, add在custom中生成', 'description' => '监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn908w4nbw****@80'], + ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会更新服务器组信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => ' false', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会停止监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<UpdateServerGroupAttributeResponse>', - 'description' => '更新服务器组配置。', + 'title' => 'RpcResponse<StopOrStartListenerResponse>', + 'description' => '停止监听。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ServerGroupId' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam.healthCheckDomain', - 'errorMessage' => 'The parameter of healthCheckConfig.healthCheckDomain is illegal.', - ], - [ - 'errorCode' => 'IlleagalParam.healthCheckUrl', - 'errorMessage' => 'The parameter of healthCheckUrl in healthCheckConfig is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.UidNotAllowQuic29', - 'errorMessage' => 'The operation is not allowed because of uid not allow quic29 version.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IllegalParam.ServerGroupName', - 'errorMessage' => 'The param of ServerGroupName is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.PreserveClientIpSwitch', - 'errorMessage' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'IncorrectStatus.listener', 'errorMessage' => 'The status of listener [%s] is incorrect.', 'description' => '监听的状态无法进行当前操作,请检查监听当前是否处于其他操作下。'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<StopListenerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</StopListenerResponse>","errorExample":""}]', + 'title' => '停止监听', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StopListener'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:StopListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateServerGroupAttributeResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateServerGroupAttributeResponse>","errorExample":""}]', - 'title' => '更新服务器组配置', ], - 'UpdateServerGroupServersAttribute' => [ - 'summary' => '更新网络型负载均衡服务器组中后端服务器的权重和描述信息。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'TagResources' => [ + 'summary' => '为指定的资源列表统一创建并绑定标签。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8616,1000 +6200,539 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeNodes' => [ - 'FEATUREslb3GOGI0', - 'FEATUREslbBEALOE', - 'FEATUREslb3DZO9R', - 'FEATUREslbWFW5HS', - 'FEATUREslbBYQ1MP', - 'FEATUREslbYU1H2O', - ], + 'operationType' => 'create', + 'abilityTreeCode' => '141891', + 'abilityTreeNodes' => ['FEATUREslbTUH0QC'], ], 'parameters' => [ [ - 'name' => 'ServerGroupId', + 'name' => 'ResourceId', 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'description' => '服务器组ID。', - 'type' => 'string', + 'description' => '资源ID。一次调用最多支持添加50个资源ID。', + 'type' => 'array', + 'items' => ['description' => '资源ID。一次调用最多支持添加50个资源ID。', 'type' => 'string', 'required' => false, 'example' => 'nlb-nrnrxwd15en27r****'], 'required' => true, - 'example' => 'sgp-atstuj3rtoptyui****', + 'maxItems' => 50, + 'minItems' => 1, ], ], [ - 'name' => 'Servers', + 'name' => 'Tag', 'in' => 'formData', - 'style' => 'repeatList', + 'style' => 'flat', 'schema' => [ - 'description' => '后端服务器列表,单次调用最多支持传入200个后端服务器。', + 'description' => '标签。', 'type' => 'array', 'items' => [ - 'description' => '后端服务器列表,单次调用最多支持传入200个后端服务器。', + 'description' => '标签。', 'type' => 'object', 'properties' => [ - 'ServerId' => [ - 'title' => '服务器id', - 'description' => '后端服务器ID。'."\n" - ."\n" - .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源ID。'."\n" - ."\n" - .'- 当服务器组为**Ip**类型时,该参数为IP地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'i-bp67acfmxazb4p****', - ], - 'ServerType' => [ - 'title' => '服务器类型', - 'description' => '后端服务器类型,取值:'."\n" - ."\n" - .'- **Ecs**:ECS实例。'."\n" - .'- **Eni**:ENI弹性网卡实例。'."\n" - .'- **Eci**:ECI弹性容器。'."\n" - .'- **Ip**:IP地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'Ecs', - 'enum' => [], - ], - 'ServerIp' => [ - 'title' => '服务器ip', - 'description' => '服务器IP地址。当服务器组为**Ip**类型时,必须指定IP地址。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.6.6', - ], - 'Port' => [ - 'title' => '服务器端口', - 'description' => '后端服务器使用的端口。取值范围:**1**~**65535**。'."\n" - ."\n" - .'> 该参数暂不支持修改。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '443', - ], - 'Weight' => [ - 'title' => '后端权重', - 'description' => '后端服务器的权重,取值范围:**0**~**100**。默认值为**100**。如果设置权重为**0**,则不会将请求转发给该后端服务器。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - 'Description' => [ - 'title' => '服务器描述信息', - 'description' => '服务器描述信息。'."\n" - ."\n" - .'长度限制为2-256个字符,可包含英文字母、数字、中文、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => '后端服务器描述', - ], + 'Key' => ['description' => '标签键。最多支持64个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" + ."\n" + .'一次调用最多支持添加20个标签。', 'type' => 'string', 'required' => false, 'example' => 'env'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" + ."\n" + .'一次调用最多支持添加20个标签。', 'type' => 'string', 'required' => false, 'example' => 'product'], ], 'required' => false, ], 'required' => true, - 'maxItems' => 200, + 'maxItems' => 20, + 'minItems' => 1, ], ], [ - 'name' => 'RegionId', + 'name' => 'ResourceType', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '资源类型,取值:'."\n" + ."\n" + .'- **loadbalancer**:网络型负载均衡实例。'."\n" + .'- **securitypolicy**:安全策略。'."\n" + .'- **servergroup**:服务器组。', 'type' => 'string', 'required' => true, 'example' => 'loadbalancer'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会更新服务器配置信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会为资源创建并绑定标签。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => '资源所在的地域ID。'."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<UpdateServerGroupServersAttributeResponse>', - 'description' => '更新后端服务器配置。', + 'title' => 'RpcResponse<BaseResult>', + 'description' => '绑定标签。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ServerGroupId' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.serverGroup', - 'errorMessage' => 'The status of servergroup [%s] is incorrect.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', - ], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => '参数%s缺失,请检查输入参数。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.%s', - 'errorMessage' => 'Authentication is failed for %s.', - ], - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.BackendServer', - 'errorMessage' => 'The specified resource of BackendServer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', + ['errorCode' => 'ResourceNotFound.securitypolicy', 'errorMessage' => 'The specified resource of securitypolicy is not found.', 'description' => '找不到指定的安全策略资源。请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"<TagResourcesResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</TagResourcesResponse>","errorExample":""}]', + 'title' => '给资源添加标签', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TagResources'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:TagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateServerGroupServersAttributeResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateServerGroupServersAttributeResponse>","errorExample":""}]', - 'title' => '更新后端服务器配置', - 'description' => '**UpdateServerGroupServersAttribute**接口属于异步接口,即系统返回一个请求ID,但该后端服务器配置信息尚未添加成功,系统后台的添加任务仍在进行。'."\n" - .'1. 您可以调用[ListServerGroups](~~445895~~)查询服务器组状态:'."\n" - .' - 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n" - .' - 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n" - ."\n" - .'2. 您可以调用[ListServerGroupServers](~~445896~~)查询后端服务器状态:'."\n" - .' - 当后端服务器处于**Configuring**状态时,表示后端服务器正在变配中。'."\n" - .' - 当后端服务器处于**Available**状态时,表示后端服务器运行中。', ], - 'ListServerGroups' => [ - 'summary' => '查询网络型负载均衡实例的服务器组列表', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UntagResources' => [ + 'summary' => '为指定的资源列表统一解绑标签。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '141872', - 'abilityTreeNodes' => [ - 'FEATUREslbVDXH6N', - ], + 'operationType' => 'delete', + 'abilityTreeCode' => '141866', + 'abilityTreeNodes' => ['FEATUREslbTUH0QC'], ], 'parameters' => [ [ - 'name' => 'ServerGroupIds', + 'name' => 'ResourceId', 'in' => 'formData', - 'style' => 'repeatList', + 'style' => 'flat', 'schema' => [ - 'description' => '服务器组ID。一次最多支持查询20个服务器组ID。', + 'description' => '资源ID。一次调用最多支持添加50个资源ID。', 'type' => 'array', - 'items' => [ - 'description' => '服务器组ID。一次最多支持查询20个服务器组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'required' => false, - 'maxItems' => 20, + 'items' => ['description' => '资源ID。一次调用最多支持添加50个资源ID。', 'type' => 'string', 'required' => false, 'example' => 'nlb-nrnrxwd15en27r****'], + 'required' => true, + 'maxItems' => 50, + 'minItems' => 1, ], ], [ - 'name' => 'ServerGroupNames', + 'name' => 'TagKey', 'in' => 'formData', - 'style' => 'repeatList', + 'style' => 'flat', 'schema' => [ - 'description' => '服务器组名称,一次最多支持查询20个服务器组名称。', + 'description' => '要删除标签的标签键。一次调用最多支持删除20个标签。', 'type' => 'array', - 'items' => [ - 'description' => '服务器组名称,一次最多支持查询20个服务器组名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'NLB_ServerGroup', - ], + 'items' => ['description' => '要删除标签的标签键。一次调用最多支持删除20个标签。'."\n" + ."\n" + .'> 如果不指定**TagKey**,会删除掉这个实例上所有的标签。', 'type' => 'string', 'required' => false, 'example' => 'env'], 'required' => false, 'maxItems' => 20, + 'minItems' => 1, ], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'All', 'in' => 'formData', - 'schema' => [ - 'description' => '服务器组所属的资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', - ], + 'schema' => ['description' => '是否解绑资源的所有标签。取值:'."\n" + ."\n" + .'- **true**:解绑资源的所有标签。'."\n" + .'- **false**(默认值):不解绑资源的所有标签。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'ServerGroupType', + 'name' => 'ResourceType', 'in' => 'formData', - 'schema' => [ - 'description' => '服务器组类型。取值:'."\n" - ."\n" - .'- **Instance**:服务器类型,该类型服务器组支持添加**Ecs**、**Ens**、**Eci**类型实例。'."\n" - .'- **Ip**:IP地址类型,该类型服务器组支持直接添加IP地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'Instance', - ], + 'schema' => ['description' => '资源类型。取值:'."\n" + ."\n" + .'- **loadbalancer**:网络型负载均衡实例。'."\n" + .'- **securitypolicy**:安全策略。'."\n" + .'- **servergroup**:服务器组。', 'type' => 'string', 'required' => true, 'example' => 'loadbalancer'], ], [ - 'name' => 'VpcId', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'title' => '服务器组所在vpc的id', - 'description' => '服务器组所在VPC的ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp15zckdt37pq72zv****', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会为资源解绑标签。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持10个标签键。'."\n" - ."\n" - .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或`者https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - 'Value' => [ - 'description' => '标签值。最多支持10个标签值。'."\n" - ."\n" - .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - 'minItems' => 1, - ], - ], - [ - 'name' => 'NextToken', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - ], - [ - 'name' => 'MaxResults', + 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '资源所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<ListServerGroupsResponse>', - 'description' => '查询服务器组。', + 'title' => 'RpcResponse<BaseResult>', + 'description' => '解绑标签。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B28E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ServerGroups' => [ - 'description' => '后端服务器组列表。', - 'type' => 'array', - 'items' => [ - 'description' => '后端服务器组列表。', - 'type' => 'object', - 'properties' => [ - 'RegionId' => [ - 'title' => '业务region', - 'description' => '网络型负载均衡实例所在的地域ID。 ', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'ServerGroupId' => [ - 'title' => '服务器组id', - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'ServerGroupName' => [ - 'title' => '服务器组名称', - 'description' => '服务器组名称。', - 'type' => 'string', - 'example' => 'NLB_ServerGroup', - ], - 'ServerGroupType' => [ - 'title' => '服务器组类型', - 'description' => '服务器组类型。取值:'."\n" - ."\n" - .'- **Instance**:服务器类型,该类型服务器组支持添加**Ecs**、**Ens**、**Eci**类型实例。'."\n" - .'- **Ip**:IP地址类型,该类型服务器组支持直接添加IP地址。', - 'type' => 'string', - 'example' => 'Instance', - ], - 'AddressIPVersion' => [ - 'title' => '服务器组地址类型', - 'description' => '协议版本。取值:'."\n" - ."\n" - .'- **Ipv4**:ipv4类型。'."\n" - .'- **DualStack**:双栈类型。', - 'type' => 'string', - 'example' => 'ipv4', - ], - 'VpcId' => [ - 'title' => '服务器组的vpcid', - 'description' => '服务器组所在VPC的ID。', - 'type' => 'string', - 'example' => 'vpc-bp15zckdt37pq72zv****', - ], - 'Scheduler' => [ - 'title' => '调度类型', - 'description' => '调度算法。取值:'."\n" - ."\n" - .'- **Wrr**:加权轮询,权重值越高的后端服务器,被轮询到的概率也越高。'."\n" - .'- **Wlc**:加权最小连接数,除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的概率也越高。'."\n" - .'- **rr**:轮询,按照访问顺序依次将外部请求分发到后端服务器sch:源IP哈希:相同的源地址会调度到相同的后端服务器。'."\n" - .'- **sch**:源IP哈希,相同的源地址会调度到相同的后端服务器。'."\n" - .'- **tch**:四元组哈希,基于四元组(源IP、目的IP、源端口和目的端口)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n" - .'- **qch**:QUIC ID哈希,支持将同一个QUIC ID的请求哈希到同一台后端服务器上。', - 'type' => 'string', - 'example' => 'Wrr', - ], - 'Protocol' => [ - 'title' => '后端协议', - 'description' => '后端转发协议,取值:**TCP**、**UDP**。', - 'type' => 'string', - 'example' => 'TCP', - ], - 'HealthCheck' => [ - 'title' => '健康检查配置', - 'description' => '健康检查配置信息。', - 'type' => 'object', - 'properties' => [ - 'HealthCheckEnabled' => [ - 'title' => '是否开启健康检查', - 'description' => '是否开启健康检查,取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'HealthCheckType' => [ - 'title' => '健康检查协议类型', - 'description' => '健康检查协议。取值:'."\n" - ."\n" - .'- **TCP**'."\n" - .'- **HTTP**'."\n" - .'- **UDP**', - 'type' => 'string', - 'example' => 'TCP', - ], - 'HealthCheckConnectPort' => [ - 'title' => '健康检查使用的端口', - 'description' => '健康检查的后端服务器的端口。'."\n" - ."\n" - .'取值范围: **0**~**65535**。'."\n" - ."\n" - .'**0**表示使用后端服务器的端口进行健康检查。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - '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' => '3', - ], - 'HealthCheckConnectTimeout' => [ - 'title' => '健康检查响应的最大超时时间', - 'description' => '健康检查响应的最大超时时间。单位:秒,默认值:**5**。'."\n" - ."\n" - .'取值范围:**1**~**300**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'HealthCheckInterval' => [ - 'title' => '健康检查时间间隔', - 'description' => '健康检查的时间间隔。单位:秒,默认值:**5**。'."\n" - ."\n" - .'- **HealthCheckType**为**TCP**或者**HTTP**时,取值范围为:**1~50**。'."\n" - .'- **HealthCheckType**为**UDP**时,取值范围为:**1~300**,您需要设置间隔时间>=响应超时时间,以确保UDP探测回包不会因为超时而被误判为未响应。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'HealthCheckDomain' => [ - 'title' => '健康检查的域名', - 'description' => '用于健康检查的域名。取值:'."\n" - ."\n" - .'- **$SERVER_IP**:使用后端服务器内网IP。'."\n" - ."\n" - .'- **domain**:指定特定域名。长度限制1~80个字符,只能使用小写字母、数字、短划线(-)、半角句号(.)。'."\n" - ."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'example' => '$SERVER_IP', - ], - 'HealthCheckUrl' => [ - 'title' => '健康检查的url', - 'description' => '健康检查路径。'."\n" - ."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'example' => '/test/index.html', - ], - 'HealthCheckHttpCode' => [ - 'title' => '状态码,多个状态码用逗号分隔', - 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n" - .'取值:**http\\_2xx**、**http\\_3xx**、**http\\_4xx**和**http\\_5xx**。'."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'array', - 'items' => [ - 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n" - .'取值:**http\\_2xx**、**http\\_3xx**、**http\\_4xx**和**http\\_5xx**。'."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'example' => 'http_2xx', - ], - ], - 'HttpCheckMethod' => [ - 'description' => '健康检查方法,取值:**GET**或**HEAD**。'."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'example' => 'GET', - ], - 'HealthCheckReq' => [ - 'description' => 'UDP 监听健康检查的请求串。只允许包含字母、数字,最大长度限制为 512 个字符。', - 'type' => 'string', - 'example' => 'hello', - ], - 'HealthCheckExp' => [ - 'description' => 'UDP 监听健康检查的响应串。只允许包含字母、数字,最大长度限制为 512 个字符。', - 'type' => 'string', - 'example' => 'ok', - ], - 'HealthCheckHttpVersion' => [ - 'description' => '健康检查HTTP协议版本,取值:**HTTP1.0**或**HTTP1.1**。'."\n" - ."\n" - .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', - 'type' => 'string', - 'example' => 'HTTP1.0', - ], - ], - ], - 'ConnectionDrainEnabled' => [ - 'title' => '连接优雅中断开关', - 'description' => '是否开启连接优雅中断。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ConnectionDrainTimeout' => [ - 'title' => '连接优雅中断超时时间', - 'description' => '设置连接优雅中断超时时间。单位:秒。'."\n" - .'取值范围:**10**~**900**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'PreserveClientIpEnabled' => [ - 'title' => '客户端地址保持开关', - 'description' => '是否开启客户端地址保持功能。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**:关闭。'."\n" - ."\n" - .'> 特殊说明:**AddressIPVersion**为**ipv4**类型时默认为**true**。**AddressIPVersion**为**ipv6**值时只能是**false**,后续待底层支持后可以为**true**。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'AnyPortEnabled' => [ - 'description' => '是否开启全端口转发。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ResourceGroupId' => [ - 'title' => '资源组id', - 'description' => '服务器组所属的资源组ID。', - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - 'ServerGroupStatus' => [ - 'title' => '状态', - 'description' => '服务器组状态。取值:'."\n" - ."\n" - .'- **Creating**:创建中。'."\n" - .'- **Available**:可用。'."\n" - .'- **Configuring**:变配中。', - 'type' => 'string', - 'example' => 'Available', - ], - 'AliUid' => [ - 'description' => '用户UID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '165820696622****', - ], - 'Tags' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持10个标签键。'."\n" - ."\n" - .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或`者https://`。', - 'type' => 'string', - 'example' => 'Test', - ], - 'Value' => [ - 'description' => '标签值。最多支持10个标签值。'."\n" - ."\n" - .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'example' => 'Test', - ], - ], - ], - ], - 'RelatedLoadBalancerIds' => [ - 'description' => '网络型负载均衡实例列表。', - 'type' => 'array', - 'items' => [ - 'description' => '网络型负载均衡实例列表。', - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - ], - 'ServerCount' => [ - 'description' => '后端服务器数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'IpVersionAffinityMode' => [ - 'description' => '双栈模式下的流量调度策略:'."\n" - ."\n" - .'- NonAffinity(默认):无亲和模式,转发时不区分来源的IP协议版本,按照调度算法向健康的后端转发。'."\n" - .'- Affinity:亲和模式,转发时根据请求来源的IP协议版本亲和转发,IPv4请求仅转发至IPv4后端,IPv6请求仅转发至IPv6后端。'."\n" - .'> 仅**AddressIPVersion**为**DualStack**时,该参数生效。', - 'type' => 'string', - 'example' => 'Affinity', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'NextToken' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.%s', - 'errorMessage' => 'Authentication is failed for %s.', - ], - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"<UntagResourcesResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UntagResourcesResponse>","errorExample":""}]', + 'title' => '删除资源的标签', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UntagResources'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:UntagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B28E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroups\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"ServerGroupName\\": \\"NLB_ServerGroup\\",\\n \\"ServerGroupType\\": \\"Instance\\",\\n \\"AddressIPVersion\\": \\"ipv4\\",\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"Scheduler\\": \\"Wrr\\",\\n \\"Protocol\\": \\"TCP\\",\\n \\"HealthCheck\\": {\\n \\"HealthCheckEnabled\\": false,\\n \\"HealthCheckType\\": \\"TCP\\",\\n \\"HealthCheckConnectPort\\": 200,\\n \\"HealthyThreshold\\": 2,\\n \\"UnhealthyThreshold\\": 3,\\n \\"HealthCheckConnectTimeout\\": 200,\\n \\"HealthCheckInterval\\": 10,\\n \\"HealthCheckDomain\\": \\"$SERVER_IP\\",\\n \\"HealthCheckUrl\\": \\"/test/index.html\\",\\n \\"HealthCheckHttpCode\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HttpCheckMethod\\": \\"GET\\",\\n \\"HealthCheckReq\\": \\"hello\\",\\n \\"HealthCheckExp\\": \\"ok\\",\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.0\\"\\n },\\n \\"ConnectionDrainEnabled\\": false,\\n \\"ConnectionDrainTimeout\\": 200,\\n \\"PreserveClientIpEnabled\\": true,\\n \\"AnyPortEnabled\\": false,\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"ServerGroupStatus\\": \\"Available\\",\\n \\"AliUid\\": 0,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"RelatedLoadBalancerIds\\": [\\n \\"nlb-83ckzc8d4xlp8o****\\"\\n ],\\n \\"ServerCount\\": 2,\\n \\"IpVersionAffinityMode\\": \\"Affinity\\"\\n }\\n ],\\n \\"TotalCount\\": 1,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListServerGroupsResponse>\\n <RequestId>54B28E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroups>\\n <RegionId>cn-hangzhou</RegionId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <ServerGroupName>NLB_ServerGroup</ServerGroupName>\\n <ServerGroupType>Instance</ServerGroupType>\\n <AddressIPVersion>ipv4</AddressIPVersion>\\n <VpcId>vpc-bp15zckdt37pq72zv****</VpcId>\\n <Scheduler>Wrr</Scheduler>\\n <Protocol>TCP</Protocol>\\n <HealthCheck>\\n <HealthCheckEnabled>false</HealthCheckEnabled>\\n <HealthCheckType>TCP</HealthCheckType>\\n <HealthCheckConnectPort>200</HealthCheckConnectPort>\\n <HealthyThreshold>2</HealthyThreshold>\\n <UnhealthyThreshold>3</UnhealthyThreshold>\\n <HealthCheckConnectTimeout>200</HealthCheckConnectTimeout>\\n <HealthCheckInterval>200</HealthCheckInterval>\\n <HealthCheckDomain>$SERVER_IP</HealthCheckDomain>\\n <HealthCheckUrl>/test/index.html</HealthCheckUrl>\\n <HealthCheckHttpCode>http2xx</HealthCheckHttpCode>\\n <HttpCheckMethod>GET</HttpCheckMethod>\\n </HealthCheck>\\n <ConnectionDrainEnabled>false</ConnectionDrainEnabled>\\n <ConnectionDrainTimeout>200</ConnectionDrainTimeout>\\n <PreserveClientIpEnabled>true</PreserveClientIpEnabled>\\n <AnyPortEnabled>false</AnyPortEnabled>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <ServerGroupStatus>Available</ServerGroupStatus>\\n <Tags>\\n <Key>Test</Key>\\n <Value>Test</Value>\\n </Tags>\\n <RelatedLoadBalancerIds>nlb-83ckzc8d4xlp8o****</RelatedLoadBalancerIds>\\n <ServerCount>2</ServerCount>\\n </ServerGroups>\\n <TotalCount>1</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListServerGroupsResponse>","errorExample":""}]', - 'title' => '查询服务器组', ], - 'ListServerGroupServers' => [ - 'summary' => '查询网络型负载均衡服务器组中的服务器列表。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateListenerAttribute' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '141867', - 'abilityTreeNodes' => [ - 'FEATUREslb3GOGI0', - ], + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '141874', + 'abilityTreeNodes' => ['FEATUREslbC68LB1', 'FEATUREslb4PUXNB', 'FEATUREslbGDCN1S', 'FEATUREslbUZZGGD'], ], 'parameters' => [ [ + 'name' => 'ListenerId', + 'in' => 'formData', + 'schema' => ['title' => 'update or delete必选, add在custom中生成', 'description' => '监听实例ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn908w4nbw****@443'], + ], + [ + 'name' => 'ListenerDescription', + 'in' => 'formData', + 'schema' => ['title' => '监听描述', 'description' => '自定义监听名称。'."\n" + ."\n" + .'长度限制为2~256个字符,支持中文和英文字母,可包含数字、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'tcpssl_443'], + ], + [ 'name' => 'ServerGroupId', 'in' => 'formData', - 'schema' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-atstuj3rtoptyui****', - ], + 'schema' => ['title' => '实服务组', 'description' => '服务器组ID。'."\n" + ."\n" + .'> - 当监听为**TCP**时,该监听支持选择后端协议为**TCP**或者**TCP_UDP**的服务器组,不支持选择后端协议为**UDP**的服务器组。'."\n" + .'> - 当监听为**UDP**时,该监听支持选择后端协议为**UDP**或者**TCP_UDP**的服务器组,不支持选择后端协议为**TCP**的服务器组。'."\n" + .'> - 当监听为**TCPSSL**时,该监听支持选择后端协议为**TCP**且**未开启客户端地址保持功能**的服务器组,不支持选择后端协议为**TCP**且**开启客户端地址保持功能**的服务器组、后端协议为**UDP**或者**TCP_UDP**的服务器组。', 'type' => 'string', 'required' => false, 'example' => 'sgp-ppdpc14gdm3x4o****'], ], [ - 'name' => 'ServerIds', + 'name' => 'SecurityPolicyId', + 'in' => 'formData', + 'schema' => ['title' => 'https监听的安全策略', 'description' => '安全策略ID。'."\n" + ."\n" + .'> 仅对TCPSSL监听生效。', 'type' => 'string', 'required' => false, 'example' => 'tls_cipher_policy_1_1'], + ], + [ + 'name' => 'CertificateIds', 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'description' => '服务器ID列表。单次调用最多支持展示40个服务器。', + 'title' => 'server证书列表', + 'description' => '服务器证书列表信息。目前仅支持添加1个服务器证书。'."\n" + ."\n\n" + .'> 仅对TCPSSL监听生效。', 'type' => 'array', - 'items' => [ - 'description' => '服务器ID列表。单次调用最多支持展示40个服务器。', - 'type' => 'string', - 'required' => false, - 'example' => 'i-bp67acfmxazb4p****', - ], + 'items' => ['description' => '服务器证书列表信息。目前仅支持添加1个服务器证书。'."\n" + ."\n" + .'> 仅对TCPSSL监听生效。', 'type' => 'string', 'required' => false, 'example' => '123157******'], 'required' => false, - 'maxItems' => 100, + 'maxItems' => 10, ], ], [ - 'name' => 'ServerIps', + 'name' => 'CaCertificateIds', 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'description' => '服务器IP列表。单次调用最多支持展示40个服务器。', + 'title' => 'ca 证书列表', + 'description' => 'CA证书列表信息。目前仅支持添加1个CA证书。'."\n" + ."\n" + .'> 仅对TCPSSL监听生效。', 'type' => 'array', - 'items' => [ - 'description' => '服务器IP列表。单次调用最多支持展示40个服务器。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.6.3', - ], + 'items' => ['description' => 'CA证书列表信息。目前仅支持添加1个CA证书。'."\n" + ."\n" + .'> 仅对TCPSSL监听生效。', 'type' => 'string', 'required' => false, 'example' => '139a00******'], 'required' => false, - 'maxItems' => 100, + 'maxItems' => 10, ], ], [ - 'name' => 'NextToken', + 'name' => 'CaEnabled', + 'in' => 'formData', + 'schema' => ['description' => '是否启动双向认证。取值:'."\n" + ."\n" + .'- **true**:启动。'."\n" + ."\n" + .'- **false**(默认值):关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'IdleTimeout', + 'in' => 'formData', + 'schema' => ['description' => '连接空闲超时时间。单位:秒。'."\n" + ."\n" + .'- 当监听为**TCP**或**TCPSSL**时,连接空闲超时时间取值范围为:**10**~**900**。默认值:**900**。'."\n" + ."\n" + .'- 当监听为**UDP**时,连接空闲超时时间取值范围为:**10**~**20**。默认值:**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3600', 'minimum' => '10', 'example' => '900'], + ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会更新监听信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + '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' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'ProxyProtocolEnabled', + 'in' => 'formData', + 'schema' => ['description' => '是否开启通过Proxy Protocol协议携带客户端源地址到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'SecSensorEnabled', + 'in' => 'formData', + 'schema' => ['description' => '是否开启秒级监控功能。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'AlpnEnabled', + 'in' => 'formData', + 'schema' => ['description' => '是否开启ALPN。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'AlpnPolicy', 'in' => 'formData', 'schema' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', + 'description' => 'ALPN策略。取值:'."\n" + ."\n" + .'- **HTTP1Only**:只协商使用HTTP1.x协议,优先级为HTTP1.1>HTTP1.0。'."\n" + .'- **HTTP2Only**:只协商使用HTTP2.0协议。'."\n" + .'- **HTTP2Optional**:优先使用HTTP1.x协议,但也接受HTTP2.0协议,优先级为HTTP1.1>HTTP1.0>HTTP2.0。'."\n" + .'- **HTTP2Preferred**:优先使用HTTP2.0协议,但也接受HTTP1.x协议,优先级为HTTP2.0>HTTP1.1>HTTP1.0。'."\n" + ."\n" + .'> AlpnEnabled开启后需配置该参数。', 'type' => 'string', 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', + 'example' => 'HTTP1Only', + 'enum' => ['HTTP1Only', 'HTTP2Only', 'HTTP2Preferred', 'HTTP2Optional'], ], ], [ - 'name' => 'MaxResults', + 'name' => 'Cps', 'in' => 'formData', - 'schema' => [ - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => '该监听在每个可用区(VIP)处理的每秒新建连接限速值。取值范围:**0**~**1000000**。**0**表示不限速。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10000'], ], [ - 'name' => 'RegionId', + 'name' => 'Mss', 'in' => 'formData', + 'schema' => ['description' => 'TCP报文的最大段大小。单位:字节,取值范围:**0**~**1500**。**0**表示不修改用户TCP报文的MSS值。仅TCP、TCPSSL类型的监听支持该字段值。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '344'], + ], + [ + 'name' => 'ProxyProtocolV2Config', + 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。'."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', + 'description' => '通过Proxy Protocol协议携带VpcId、PrivateLinkEpId、PrivateLinkEpsId信息到后端服务器配置。', + 'type' => 'object', + 'properties' => [ + 'Ppv2VpcIdEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带VpcId到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'Ppv2PrivateLinkEpIdEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpId到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'Ppv2PrivateLinkEpsIdEnabled' => ['description' => '是否开启通过Proxy Protocol协议携带PrivateLinkEpsId到后端服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], 'required' => false, - 'example' => 'cn-hangzhou', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<ListServerGroupServersResponse>', - 'description' => '查询服务器。', + 'title' => 'RpcResponse<UpdateOrDeleteListenerResponse>', + 'description' => '更新监听配置。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'Servers' => [ - 'description' => '服务器列表。', - 'type' => 'array', - 'items' => [ - 'description' => '服务器列表。', - 'type' => 'object', - 'properties' => [ - 'ServerId' => [ - 'title' => '服务器id', - 'description' => '后端服务器ID。', - 'type' => 'string', - 'example' => 'i-bp67acfmxazb4p****', - ], - 'ServerType' => [ - 'title' => '服务器类型', - 'description' => '后端服务器类型,取值:'."\n" - ."\n" - .'- **Ecs**:ECS实例。'."\n" - .'- **Eni**:ENI弹性网卡实例。'."\n" - .'- **Eci**:ECI弹性容器。'."\n" - .'- **Ip**:IP地址。', - 'type' => 'string', - 'example' => 'Ecs', - ], - 'ServerIp' => [ - 'title' => '服务器ip', - 'description' => '后端服务器IP地址。', - 'type' => 'string', - 'example' => '192.168.2.1', - ], - 'Port' => [ - 'title' => '服务器端口', - 'description' => '后端服务器使用的端口。取值范围:**1**~**65535**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Weight' => [ - 'title' => '后端权重', - 'description' => '后端服务器的权重。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'ServerGroupId' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'Description' => [ - 'title' => '服务器描述信息', - 'description' => '后端服务器描述。', - 'type' => 'string', - 'example' => 'ECS', - ], - 'ZoneId' => [ - 'title' => '服务器对应的zoneId', - 'description' => '服务器对应的可用区ID。'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-a', - ], - 'Status' => [ - 'title' => '服务器的状态', - 'description' => '后端服务器的添加状态。取值:'."\n" - ."\n" - .'- **Adding**:添加中。'."\n" - .'- **Available**:正常可用状态。'."\n" - .'- **Configuring**:配置中。'."\n" - .'- **Removing**:移除中。', - 'type' => 'string', - 'example' => 'Available', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'NextToken' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => '分批次查询时每次显示的条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The VpcId is mismatched for %s and %s.', 'description' => '资源%s和资源%s的VpcId不匹配。请检查两种资源是否在同一个VPC下。'], + ['errorCode' => 'Conflict.Port', 'errorMessage' => 'The Port [%s] is conflict.', 'description' => '指定端口与已有端口存在冲突'], + ['errorCode' => 'ResourceNotFound.Certificate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'IncorrectStatus.listener', 'errorMessage' => 'The status of listener [%s] is incorrect.', 'description' => '监听的状态无法进行当前操作,请检查监听当前是否处于其他操作下。'], + ['errorCode' => 'IdempotenceSignatureMismatch', 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', 'description' => '请求的幂等令牌与上一个相同,但签名不同。'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], + ['errorCode' => 'ResourceAlreadyAssociated.Certificate', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => '资源%s已被关联。'], + ['errorCode' => 'IllegalParamSize.certificateIds', 'errorMessage' => 'The param size of certificateIds or caCertificateIds is illegal.', 'description' => '证书的id只能有一个,请检查是否重复输入。'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'IllegalParam.IdleTimeout', 'errorMessage' => 'The param of IdleTimeout is illegal.', 'description' => '参数连接空闲超时时间配置非法。'], + ['errorCode' => 'OperationDenied.RegionNotSupportHDMonitor', 'errorMessage' => 'The operation is not allowed because of RegionNotSupportHDMonitor.', 'description' => '当前区域不支持秒级监控。'], + ['errorCode' => 'ResourceNotEnough.CaCertificateApiCount', 'errorMessage' => 'The specified resource of CaCertificateApiCount is not enough.', 'description' => ''], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', - ], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.HdMonitorConfigNotExist', 'errorMessage' => 'The specified resource of HdMonitorConfigNotExist is not found.', 'description' => 'HdMonitorConfig 不存在,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.CaCertificate', 'errorMessage' => 'The specified resource of CaCertificate is not found.', 'description' => 'Ca证书不存在,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.securitypolicy', 'errorMessage' => 'The specified resource of securitypolicy is not found.', 'description' => '找不到指定的安全策略资源。请检查输入参数。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"Servers\\": [\\n {\\n \\"ServerId\\": \\"i-bp67acfmxazb4p****\\",\\n \\"ServerType\\": \\"Ecs\\",\\n \\"ServerIp\\": \\"192.168.2.1\\",\\n \\"Port\\": 80,\\n \\"Weight\\": 100,\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"Description\\": \\"ECS\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"Status\\": \\"Available\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListServerGroupServersResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <Servers>\\n <ServerId>ecs-bp67acfmxazb4p****</ServerId>\\n <ServerType>Ecs</ServerType>\\n <ServerIp>192.168.2.1</ServerIp>\\n <Port>80</Port>\\n <Weight>100</Weight>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <Description>ECS</Description>\\n <ZoneId>cn-hangzhou-a</ZoneId>\\n <Status>Available</Status>\\n </Servers>\\n <TotalCount>10</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListServerGroupServersResponse>","errorExample":""}]', - 'title' => '查询服务器', - ], - 'DetachCommonBandwidthPackageFromLoadBalancer' => [ - 'summary' => '解绑网络型负载均衡实例中的共享带宽包。', - 'methods' => [ - 'post', + 'title' => '更新监听配置', + 'summary' => '更新网络型负载均衡监听的配置。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateListenerAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateListenerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nlb:SecurityPolicyId', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateListenerAttributeResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateListenerAttributeResponse>","errorExample":""}]', + ], + 'UpdateLoadBalancerAddressTypeConfig' => [ + 'summary' => '变更网络型负载均衡NLB实例的IPv4地址的网络类型。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9619,118 +6742,154 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '141880', + 'abilityTreeNodes' => ['FEATUREslb12YEWG', 'FEATUREslb4N3NIV'], ], 'parameters' => [ [ 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], ], [ - 'name' => 'BandwidthPackageId', + 'name' => 'AddressType', 'in' => 'formData', 'schema' => [ - 'description' => '需要移除的共享带宽包ID。', + 'description' => '目标网络类型。取值:'."\n" + ."\n" + .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'required' => true, - 'example' => 'cbwp-bp1pzf0ym72pu3y76****', + 'example' => 'Internet', + 'enum' => [], ], ], [ - 'name' => 'DryRun', + 'name' => 'ZoneMappings', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会解绑带宽包。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', + 'description' => '可用区及交换机映射列表,最多支持10个可用区。', + 'type' => 'array', + 'items' => [ + 'description' => '可用区及交换机映射列表。', + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。', 'type' => 'string', 'required' => false, 'example' => 'vsw-bp10ttov87felojcn****'], + 'ZoneId' => ['description' => '网络型负载均衡实例的可用区ID。'."\n" + ."\n" + .'您可以通过调用[DescribeZones](~~443890~~)接口获取可用区ID对应的可用区信息。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou-a'], + 'AllocationId' => ['title' => '公网ipId', 'description' => '弹性公网IP实例ID。', 'type' => 'string', 'required' => false, 'example' => 'eip-bp1aedxso6u80u0qf****'], + 'EipType' => ['description' => '公网EIP的类型。取值:'."\n" + ."\n" + .'- **Common**:弹性公网IP,简称EIP。'."\n" + .'- **Anycast**:任播弹性公网IP,简称Anycast EIP。'."\n" + ."\n" + .'> **AddressType**配置为**Internet**时,需要配置该参数。', 'type' => 'string', 'required' => false, 'example' => 'Common'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'false', + 'maxItems' => 10, ], ], [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会更新实例的网络类型。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], + ], + [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'title' => 'response', - 'description' => '解绑共享带宽包。', + 'description' => '变更NLB实例的IPv4地址的网络类型。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.%s', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceNotAssociated.loadbalancer', - 'errorMessage' => 'Thre resource is not associated with loadbalancer.', - ], + ['errorCode' => 'DuplicatedParam.AllocationId', 'errorMessage' => 'The param of AllocationId is duplicated.', 'description' => 'AllocationId参数重复,请检查参数。'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => '正在配置指定的负载均衡资源,请稍后重试。'], + ['errorCode' => 'OperationDenied.EipAlreadyInBandwidthPackage', 'errorMessage' => 'The operation is not allowed because of EipAlreadyInBandwidthPackage.', 'description' => '由于 EIP已经加入共享带宽包的原因,操作不被允许。'], + ['errorCode' => 'ResourceInConfiguring.%s', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => '指定的资源%s正在配置,请稍后重试'], + ['errorCode' => 'OperationDenied.AddressTypeNotChanged', 'errorMessage' => 'The operation is not allowed because of AddressTypeNotChanged.', 'description' => '该操作不被允许,因为地址类型未更改。'], + ['errorCode' => 'Mismatch.ZoneIdAndVswitchId', 'errorMessage' => 'The ZoneIdAndVswitchId is mismatched for %s and %s.', 'description' => 'ZoneId和VswitchId缺失,请检查输入参数。'], + ['errorCode' => 'TagInvokeError', 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', 'description' => '在资源标签中找不到资源定义,请检查RAM是否给NLB添加授权。'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], + ['errorCode' => 'Throttling.User', 'errorMessage' => 'Request was denied due to api flow control.', 'description' => '由于触发流控,请求被拒绝。'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.AnycastInstance', 'errorMessage' => 'The specified resource of AnycastInstance is not found.', 'description' => '找不到指定的 Anycast 实例资源。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DetachCommonBandwidthPackageFromLoadBalancerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DetachCommonBandwidthPackageFromLoadBalancerResponse>","errorExample":""}]', - 'title' => '实例解绑共享带宽包', - ], - 'AttachCommonBandwidthPackageToLoadBalancer' => [ - 'summary' => '为网络型负载均衡实例绑定共享带宽包。', - 'methods' => [ - 'post', + 'title' => '变更网络类型配置', + 'description' => '- 您已创建NLB实例,请参见[CreateLoadBalancer](~~445868~~)。'."\n" + .'- 您可以通过[GetLoadBalancerAttribute](~~445873~~)接口查询变更后NLB实例的**AddressType**取值。'."\n" + .'- **UpdateLoadBalancerAddressTypeConfig**属于异步接口,即系统返回一个请求ID,但该NLB实例IPv4地址的网络类型尚未变更成功,系统后台的变更任务仍在进行。您可以调用[GetJobStatus](~~445904~~)查询IPv4地址网络类型变更状态:'."\n" + .' - 当任务状态处于**Succeeded**时,表示实例IPv4地址的网络类型变更成功。'."\n" + .' - 当任务状态处于**Processing**时,表示实例IPv4地址的网络类型变更中,在该状态下,您只能执行查询操作,不能执行其他操作。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerAddressTypeConfig'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerAddressTypeConfig', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nlb:AddressType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerAddressTypeConfigResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateLoadBalancerAddressTypeConfigResponse>","errorExample":""}]', + ], + 'UpdateLoadBalancerAttribute' => [ + 'summary' => '更新网络型负载均衡实例名称等属性。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9740,135 +6899,113 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'abilityTreeCode' => '141865', - 'abilityTreeNodes' => [ - 'FEATUREslb12YEWG', - ], + 'abilityTreeCode' => '141877', + 'abilityTreeNodes' => ['FEATUREslb12YEWG', 'FEATUREslb4N3NIV'], ], 'parameters' => [ [ 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['description' => '网络型负载均衡实例的ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-wb7r6dlwetvt5j****'], ], [ - 'name' => 'BandwidthPackageId', + 'name' => 'LoadBalancerName', 'in' => 'formData', - 'schema' => [ - 'description' => '绑定的共享带宽包ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cbwp-bp1pzf0ym72pu3y76****', - ], + 'schema' => ['description' => '网络型负载均衡实例名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'NLB1'], + ], + [ + 'name' => 'CrossZoneEnabled', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例是否开启跨可用区。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会绑定带宽包。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会更新实例信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing'], + ], + [ + 'name' => 'Cps', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例在每个可用区(VIP)处理的每秒新建连接限速值。取值范围:**1**~**1000000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'response', - 'description' => '实例绑定共享带宽包。', + 'description' => '更新网络型负载均衡实例名称等属性。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7294679F-08DE-16D4-8E5D-1625685DC10B'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => 'aab74cfa-3bc4-48fc-80fc-0101da5a****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.IntranetLoadBalancer', - 'errorMessage' => 'The operation is not allowed because of IntranetLoadBalancer.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is already associated.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => '正在配置指定的负载均衡资源,请稍后重试。'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], + ['errorCode' => 'IllegalParam.loadBalancerName', 'errorMessage' => 'Param loadBalancerName is illegal.', 'description' => '实例名称非法,请检查参数。'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.BandwidthPackageId', - 'errorMessage' => 'The specified resource of BandwidthPackageId is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.CommonBandwidthPackage', - 'errorMessage' => 'The specified resource of CommonBandwidthPackage is not found.', + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7294679F-08DE-16D4-8E5D-1625685DC10B\\",\\n \\"JobId\\": \\"aab74cfa-3bc4-48fc-80fc-0101da5a****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerAttributeResponse>\\n <RequestId>7294679F-08DE-16D4-8E5D-1625685DC10B</RequestId>\\n <JobId>aab74cfa-3bc4-48fc-80fc-0101da5a****</JobId>\\n</UpdateLoadBalancerAttributeResponse>","errorExample":""}]', + 'title' => '更新负载均衡实例属性', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<AttachCommonBandwidthPackageToLoadBalancerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</AttachCommonBandwidthPackageToLoadBalancerResponse>","errorExample":""}]', - 'title' => '实例绑定共享带宽包', ], - 'CreateSecurityPolicy' => [ - 'summary' => '在指定地域创建TCPSSL监听的自定义安全策略。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateLoadBalancerProtection' => [ + 'summary' => '开启或关闭删除保护功能,及更新修改保护功能。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9876,277 +7013,127 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeCode' => '141883', - 'abilityTreeNodes' => [ - 'FEATUREslbAZREFH', - ], - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'TlsVersions', + 'name' => 'DeletionProtectionEnabled', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。', - 'type' => 'array', - 'items' => [ - 'description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。最多支持添加4个TLS协议版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'TLSv1.0', - ], - 'required' => true, - 'maxItems' => 4, - 'minItems' => 1, - ], + 'schema' => ['description' => '是否开启删除保护。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'SecurityPolicyName', + 'name' => 'DeletionProtectionReason', 'in' => 'formData', - 'schema' => [ - 'description' => '安全策略名称。'."\n" - ."\n" - .'长度为1~200个字符,支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'TLSCipherPolicy', - ], + 'schema' => ['description' => '输入开启删除保护的原因。长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" + ."\n" + .'> 仅在**DeletionProtectionEnabled**为**true**时该参数有效且合法。', 'type' => 'string', 'required' => false, 'example' => '实例使用中'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'ModificationProtectionStatus', 'in' => 'formData', - 'schema' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', - ], + 'schema' => ['description' => '网络型负载均衡修改保护状态。取值:'."\n" + ."\n" + .'- **NonProtection**:不保护,表示不允许传入**ModificationProtectionReason**。如果配置了保护配置的**ModificationProtectionReason**,则清空其配置信息。'."\n" + .'- **ConsoleProtection**:控制台修改保护,此时允许传入**ModificationProtectionReason**。'."\n" + ."\n" + .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', 'type' => 'string', 'required' => false, 'example' => 'ConsoleProtection'], ], [ - 'name' => 'Ciphers', + 'name' => 'ModificationProtectionReason', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '支持的加密套件列表,具体依赖TLSVersion值。最多支持添加32个加密套件。'."\n" - ."\n" - .'TLSv1.0和TLSv1.1 支持:'."\n" - .'- **ECDHE-ECDSA-AES128-SHA**'."\n" - .'- **ECDHE-ECDSA-AES256-SHA**'."\n" - .'- **ECDHE-RSA-AES128-SHA**'."\n" - .'- **ECDHE-RSA-AES256-SHA**'."\n" - .'- **AES128-SHA**'."\n" - .'- **AES256-SHA**'."\n" - .'- **DES-CBC3-SHA**'."\n" - ."\n" - .'TLSv1.2支持:'."\n" - .'- **ECDHE-ECDSA-AES128-SHA**'."\n" - .'- **ECDHE-ECDSA-AES256-SHA**'."\n" - .'- **ECDHE-RSA-AES128-SHA**'."\n" - .'- **ECDHE-RSA-AES256-SHA**'."\n" - .'- **AES128-SHA**'."\n" - .'- **AES256-SHA**'."\n" - .'- **DES-CBC3-SHA**'."\n" - .'- **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" - .'- **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" - .'- **ECDHE-ECDSA-AES128-SHA256**'."\n" - .'- **ECDHE-ECDSA-AES256-SHA384**'."\n" - .'- **ECDHE-RSA-AES128-GCM-SHA256**'."\n" - .'- **ECDHE-RSA-AES256-GCM-SHA384**'."\n" - .'- **ECDHE-RSA-AES128-SHA256**'."\n" - .'- **ECDHE-RSA-AES256-SHA384**'."\n" - .'- **AES128-GCM-SHA256**'."\n" - .'- **AES256-GCM-SHA384**'."\n" - .'- **AES128-SHA256**'."\n" - .'- **AES256-SHA256**'."\n" - .'- **ECDHE-ECDSA-CHACHA20-POLY1305**'."\n" - .'- **ECDHE-RSA-CHACHA20-POLY1305**'."\n" - ."\n" - .'TLSv1.3支持:'."\n" - .'- **TLS_AES_128_GCM_SHA256**'."\n" - .'- **TLS_AES_256_GCM_SHA384**'."\n" - .'- **TLS_CHACHA20_POLY1305_SHA256**'."\n" - .'- **TLS_AES_128_CCM_SHA256**'."\n" - .'- **TLS_AES_128_CCM_8_SHA256**', - 'type' => 'array', - 'items' => [ - 'description' => '支持的加密套件列表,具体依赖TLSVersion值。最多支持添加32个加密套件。'."\n" - ."\n" - .'TLSv1.0和TLSv1.1 支持:'."\n" - .'- **ECDHE-ECDSA-AES128-SHA**'."\n" - .'- **ECDHE-ECDSA-AES256-SHA**'."\n" - .'- **ECDHE-RSA-AES128-SHA**'."\n" - .'- **ECDHE-RSA-AES256-SHA**'."\n" - .'- **AES128-SHA**'."\n" - .'- **AES256-SHA**'."\n" - .'- **DES-CBC3-SHA**'."\n" - ."\n" - .'TLSv1.2支持:'."\n" - .'- **ECDHE-ECDSA-AES128-SHA**'."\n" - .'- **ECDHE-ECDSA-AES256-SHA**'."\n" - .'- **ECDHE-RSA-AES128-SHA**'."\n" - .'- **ECDHE-RSA-AES256-SHA**'."\n" - .'- **AES128-SHA**'."\n" - .'- **AES256-SHA**'."\n" - .'- **DES-CBC3-SHA**'."\n" - .'- **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" - .'- **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" - .'- **ECDHE-ECDSA-AES128-SHA256**'."\n" - .'- **ECDHE-ECDSA-AES256-SHA384**'."\n" - .'- **ECDHE-RSA-AES128-GCM-SHA256**'."\n" - .'- **ECDHE-RSA-AES256-GCM-SHA384**'."\n" - .'- **ECDHE-RSA-AES128-SHA256**'."\n" - .'- **ECDHE-RSA-AES256-SHA384**'."\n" - .'- **AES128-GCM-SHA256**'."\n" - .'- **AES256-GCM-SHA384**'."\n" - .'- **AES128-SHA256**'."\n" - .'- **AES256-SHA256**'."\n" - .'- **ECDHE-ECDSA-CHACHA20-POLY1305**'."\n" - .'- **ECDHE-RSA-CHACHA20-POLY1305**'."\n" - ."\n" - .'TLSv1.3支持:'."\n" - .'- **TLS_AES_128_GCM_SHA256**'."\n" - .'- **TLS_AES_256_GCM_SHA384**'."\n" - .'- **TLS_CHACHA20_POLY1305_SHA256**'."\n" - .'- **TLS_AES_128_CCM_SHA256**'."\n" - .'- **TLS_AES_128_CCM_8_SHA256**', - 'type' => 'string', - 'required' => false, - 'example' => 'ECDHE-ECDSA-AES128-SHA', - ], - 'required' => true, - 'maxItems' => 32, - ], + 'schema' => ['description' => '输入开启修改保护的原因。长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" + ."\n" + .'> 仅在**Status**为**ConsoleProtection**时该参数有效且合法。', 'type' => 'string', 'required' => false, 'example' => '托管实例'], ], [ - 'name' => 'DryRun', + 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会创建自定义安全策略。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会更新修改保护和删除保护。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + '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' => 'Tag', + 'name' => 'RegionId', 'in' => 'formData', - 'allowEmptyValue' => true, - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持64个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" - ."\n" - .'一次调用最多支持添加20个标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'KeyTest', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" - ."\n" - .'一次调用最多支持添加20个标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'ValueTest', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<CreateSecurityPolicyResponse>', - 'description' => '创建自定义安全策略。', + 'title' => 'response', + 'description' => '更新修改删除保护。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', - ], - 'SecurityPolicyId' => [ - 'description' => 'TLS安全策略ID。', - 'type' => 'string', - 'example' => 'sp-wuytp9pa******', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'ResourceInConfiguring.%s', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => '指定的资源%s正在配置,请稍后重试'], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], + ['errorCode' => 'IdempotenceSignatureMismatch', 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', 'description' => '请求的幂等令牌与上一个相同,但签名不同。'], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => '指定的资源当前存在锁冲突。'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => '正在配置指定的负载均衡资源,请稍后重试。'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], + ['errorCode' => 'IllegalParam.deletionProtectionReason', 'errorMessage' => 'The param of deletionProtectionReason is illegal.', 'description' => '参数deletionProtectionReason非法,请检查参数是否满足长度为2-128个英文或中文字符,必须以大小字母或中文开头,可包含数字,点号(.),下划线(_)和短横线(-)。'], + ['errorCode' => 'IllegalParam.modificationProtectionReason', 'errorMessage' => 'The param of modificationProtectionReason is illegal.', 'description' => '参数modificationProtectionReason非法,请参考文档进行修改。'], + ['errorCode' => 'ResourceInCreating.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', 'description' => '正在创建指定的负载均衡器资源,请稍后重试。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerProtectionResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</UpdateLoadBalancerProtectionResponse>","errorExample":""}]', + 'title' => '修改删除保护', + 'description' => '> 您可以通过[GetLoadBalancerAttribute](~~445873~~)接口查询删除保护和修改保护详细信息。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerProtection'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerProtection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicyId\\": \\"sp-wuytp9pa******\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateSecurityPolicyResponse>\\n <RequestId>D7A8875F-373A-5F48-8484-25B07A61F2AF</RequestId>\\n <SecurityPolicyId>tls-bp14bb1e7dll4f****</SecurityPolicyId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</CreateSecurityPolicyResponse>","errorExample":""}]', - 'title' => '创建自定义安全策略', ], - 'DeleteSecurityPolicy' => [ - 'summary' => '删除网络型负载均衡TLS自定义安全策略。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateLoadBalancerZones' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10155,107 +7142,142 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslbC68LB1'], ], 'parameters' => [ [ - 'name' => 'SecurityPolicyId', + 'name' => 'LoadBalancerId', 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****'], + ], + [ + 'name' => 'ZoneMappings', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'TLS安全策略ID。', - 'type' => 'string', + 'description' => '可用区及交换机映射列表,最多支持添加10个可用区。', + 'type' => 'array', + 'items' => [ + 'description' => '可用区及交换机映射列表,最多支持添加10个可用区。', + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。'."\n", 'type' => 'string', 'required' => true, 'example' => 'vsw-bp1rmcrwg3erh1fh8****'], + 'ZoneId' => ['description' => '可用区ID,您可以通过调用[DescribeZones](~~443890~~)接口获取。'."\n" + ."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a'], + 'PrivateIPv4Address' => ['title' => '私网ip', 'description' => '私网IP地址。', 'type' => 'string', 'required' => false, 'example' => '192.168.36.16'], + 'AllocationId' => ['title' => '公网ipId', 'description' => '弹性公网IP或任播弹性公网IP的实例ID。', 'type' => 'string', 'required' => false, 'example' => 'eip-bp1aedxso6u80u0qf****'], + 'EipType' => ['description' => '公网EIP的类型。取值:'."\n" + ."\n" + .'- **Common**:弹性公网IP,简称EIP。'."\n" + .'- **Anycast**:任播弹性公网IP,简称Anycast EIP。'."\n" + ."\n" + .'> 支持绑定Anycast EIP的地域见[使用限制'."\n" + .'](~~470000~~),**AddressType**配置为**Internet**时,需要配置该参数。', 'type' => 'string', 'required' => false, 'example' => 'Common'], + ], + 'required' => false, + ], 'required' => true, - 'example' => 'sp-wuytp9pa******'."\n", + 'maxItems' => 10, + 'minItems' => 1, ], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会删除自定义安全策略。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会修改实例可用区属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP_2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + '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' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<DeleteSecurityPolicyResponse>', - 'description' => '删除TLS自定义安全策略。', + 'title' => 'response', + 'description' => 'response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceInUse.SecurityPolicy', - 'errorMessage' => 'The specified resource of SecurityPolicy is in use.', - ], + ['errorCode' => 'ResourceInCreating.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', 'description' => '正在创建指定的负载均衡器资源,请稍后重试。'], + ['errorCode' => 'OperationDenied.ProtectedPrivateIPv4AddressChanged', 'errorMessage' => 'The operation is not allowed because of ProtectedPrivateIPv4AddressChanged.', 'description' => '由于受保护的私有 IPv4 地址已更改的原因,操作不被允许。'], + ['errorCode' => 'OperationFailed.vSwitchNotSupportIpv6', 'errorMessage' => 'The operation failed because of vSwitchNotSupportIpv6.', 'description' => '所使用的虚拟交换机(vSwicth)不支持ipv6协议,请确认输入参数。'], + ['errorCode' => 'OperationDenied.%s', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '因为%s,当前操作是不允许的'], + ['errorCode' => 'OperationDenied.ZoneVSwitchChanged', 'errorMessage' => 'The operation is not allowed because of ZoneVSwitchChanged.', 'description' => '已存在的可用区不允许虚拟交换机发生变化。'], + ['errorCode' => 'InvalidZones', 'errorMessage' => 'The current zone list is illegal.', 'description' => 'Zone maping中使用的可用区非法。'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => '正在配置指定的负载均衡资源,请稍后重试。'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource of VSwitchIp is not enough.', 'description' => '所指定的虚拟交换机(vSwitch) IP资源不足。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'UnauthorizedZone', 'errorMessage' => 'The specified zone of %s is not authorized.', 'description' => '指定的可用区%s未被授权使用'], ], [ - [ - 'errorCode' => 'ResourceNotFound.securitypolicy', - 'errorMessage' => 'The specified resource of securitypolicy is not found.', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource of vSwitch is not found.', 'description' => '找不到指定的虚拟交换机资源,请检查输入参数。'], + ], + ], + 'title' => '更新实例可用区及可用区属性', + 'summary' => '修改网络型负载均衡实例可用区及可用区属性。', + 'description' => '每次调用该接口时,请确保您传入该NLB实例的所有可用区参数,包括存量和新增的可用区。如您未传入存量的可用区参数,存量可用区将会被删掉。'."\n" + ."\n" + .'前提条件:'."\n" + .'- 您已创建NLB实例,请参见[CreateLoadBalancer](~~445868~~)。'."\n" + .'- 您可以通过[GetLoadBalancerAttribute](~~445873~~)接口查询该NLB实例的可用区及可用区属性。'."\n" + .'- **UpdateLoadBalancerZones**属于异步接口,即系统返回一个请求ID,但该NLB实例可用区及可用区属性尚未修改成功,系统后台的变更任务仍在进行。您可以调用[GetJobStatus](~~445904~~)查询修改状态:'."\n" + .' - 当任务状态处于**Succeeded**时,表示实例可用区及可用区属性修改成功。'."\n" + .' - 当任务状态处于**Processing**时,表示实例可用区及可用区属性正在修改中,在该状态下,您只能执行查询操作,不能执行其他操作。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerZones'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteSecurityPolicyResponse>\\n <RequestId>D7A8875F-373A-5F48-8484-25B07A61F2AF</RequestId>\\n</DeleteSecurityPolicyResponse>","errorExample":""}]', - 'title' => '删除自定义安全策略', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerZonesResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateLoadBalancerZonesResponse>","errorExample":""}]', ], 'UpdateSecurityPolicyAttribute' => [ 'summary' => '更新网络型负载均衡自定义安全策略属性。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10266,9 +7288,7 @@ 'systemTags' => [ 'operationType' => 'update', 'abilityTreeCode' => '141876', - 'abilityTreeNodes' => [ - 'FEATUREslbGDCN1S', - ], + 'abilityTreeNodes' => ['FEATUREslbGDCN1S'], ], 'parameters' => [ [ @@ -10278,12 +7298,7 @@ 'schema' => [ 'description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。最多支持添加4个TLS协议版本。', 'type' => 'array', - 'items' => [ - 'description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。最多支持添加4个TLS协议版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'TLSv1.0', - ], + 'items' => ['description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。最多支持添加4个TLS协议版本。', 'type' => 'string', 'required' => false, 'example' => 'TLSv1.0'], 'required' => false, 'maxItems' => 4, 'minItems' => 1, @@ -10292,24 +7307,14 @@ [ 'name' => 'SecurityPolicyId', 'in' => 'formData', - 'schema' => [ - 'description' => 'TLS安全策略ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sp-wuytp9pa******'."\n", - ], + 'schema' => ['description' => 'TLS安全策略ID。', 'type' => 'string', 'required' => true, 'example' => 'sp-wuytp9pa******'."\n"], ], [ 'name' => 'SecurityPolicyName', 'in' => 'formData', - 'schema' => [ - 'description' => '安全策略名称。'."\n" - ."\n" - .'长度为1~200个字符,支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'TLSCipherPolicy', - ], + 'schema' => ['description' => '安全策略名称。'."\n" + ."\n" + .'长度为1~200个字符,支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'TLSCipherPolicy'], ], [ 'name' => 'Ciphers', @@ -10357,51 +7362,46 @@ .'- **TLS_AES_128_CCM_SHA256**'."\n" .'- **TLS_AES_128_CCM_8_SHA256**', 'type' => 'array', - 'items' => [ - 'description' => '支持的加密套件列表,具体依赖TLSVersion值。最多支持添加32个加密套件。'."\n" - ."\n" - .'TLSv1.0和TLSv1.1 支持:'."\n" - .'- **ECDHE-ECDSA-AES128-SHA**'."\n" - .'- **ECDHE-ECDSA-AES256-SHA**'."\n" - .'- **ECDHE-RSA-AES128-SHA**'."\n" - .'- **ECDHE-RSA-AES256-SHA**'."\n" - .'- **AES128-SHA**'."\n" - .'- **AES256-SHA**'."\n" - .'- **DES-CBC3-SHA**'."\n" - ."\n" - .'TLSv1.2支持:'."\n" - .'- **ECDHE-ECDSA-AES128-SHA**'."\n" - .'- **ECDHE-ECDSA-AES256-SHA**'."\n" - .'- **ECDHE-RSA-AES128-SHA**'."\n" - .'- **ECDHE-RSA-AES256-SHA**'."\n" - .'- **AES128-SHA**'."\n" - .'- **AES256-SHA**'."\n" - .'- **DES-CBC3-SHA**'."\n" - .'- **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" - .'- **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" - .'- **ECDHE-ECDSA-AES128-SHA256**'."\n" - .'- **ECDHE-ECDSA-AES256-SHA384**'."\n" - .'- **ECDHE-RSA-AES128-GCM-SHA256**'."\n" - .'- **ECDHE-RSA-AES256-GCM-SHA384**'."\n" - .'- **ECDHE-RSA-AES128-SHA256**'."\n" - .'- **ECDHE-RSA-AES256-SHA384**'."\n" - .'- **AES128-GCM-SHA256**'."\n" - .'- **AES256-GCM-SHA384**'."\n" - .'- **AES128-SHA256**'."\n" - .'- **AES256-SHA256**'."\n" - .'- **ECDHE-ECDSA-CHACHA20-POLY1305**'."\n" - .'- **ECDHE-RSA-CHACHA20-POLY1305**'."\n" - ."\n\n" - .'TLSv1.3支持:'."\n" - .'- **TLS_AES_128_GCM_SHA256**'."\n" - .'- **TLS_AES_256_GCM_SHA384**'."\n" - .'- **TLS_CHACHA20_POLY1305_SHA256**'."\n" - .'- **TLS_AES_128_CCM_SHA256**'."\n" - .'- **TLS_AES_128_CCM_8_SHA256**', - 'type' => 'string', - 'required' => false, - 'example' => 'ECDHE-ECDSA-AES128-SHA', - ], + 'items' => ['description' => '支持的加密套件列表,具体依赖TLSVersion值。最多支持添加32个加密套件。'."\n" + ."\n" + .'TLSv1.0和TLSv1.1 支持:'."\n" + .'- **ECDHE-ECDSA-AES128-SHA**'."\n" + .'- **ECDHE-ECDSA-AES256-SHA**'."\n" + .'- **ECDHE-RSA-AES128-SHA**'."\n" + .'- **ECDHE-RSA-AES256-SHA**'."\n" + .'- **AES128-SHA**'."\n" + .'- **AES256-SHA**'."\n" + .'- **DES-CBC3-SHA**'."\n" + ."\n" + .'TLSv1.2支持:'."\n" + .'- **ECDHE-ECDSA-AES128-SHA**'."\n" + .'- **ECDHE-ECDSA-AES256-SHA**'."\n" + .'- **ECDHE-RSA-AES128-SHA**'."\n" + .'- **ECDHE-RSA-AES256-SHA**'."\n" + .'- **AES128-SHA**'."\n" + .'- **AES256-SHA**'."\n" + .'- **DES-CBC3-SHA**'."\n" + .'- **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" + .'- **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" + .'- **ECDHE-ECDSA-AES128-SHA256**'."\n" + .'- **ECDHE-ECDSA-AES256-SHA384**'."\n" + .'- **ECDHE-RSA-AES128-GCM-SHA256**'."\n" + .'- **ECDHE-RSA-AES256-GCM-SHA384**'."\n" + .'- **ECDHE-RSA-AES128-SHA256**'."\n" + .'- **ECDHE-RSA-AES256-SHA384**'."\n" + .'- **AES128-GCM-SHA256**'."\n" + .'- **AES256-GCM-SHA384**'."\n" + .'- **AES128-SHA256**'."\n" + .'- **AES256-SHA256**'."\n" + .'- **ECDHE-ECDSA-CHACHA20-POLY1305**'."\n" + .'- **ECDHE-RSA-CHACHA20-POLY1305**'."\n" + ."\n\n" + .'TLSv1.3支持:'."\n" + .'- **TLS_AES_128_GCM_SHA256**'."\n" + .'- **TLS_AES_256_GCM_SHA384**'."\n" + .'- **TLS_CHACHA20_POLY1305_SHA256**'."\n" + .'- **TLS_AES_128_CCM_SHA256**'."\n" + .'- **TLS_AES_128_CCM_8_SHA256**', 'type' => 'string', 'required' => false, 'example' => 'ECDHE-ECDSA-AES128-SHA'], 'required' => false, 'maxItems' => 32, ], @@ -10409,40 +7409,25 @@ [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会更新自定义安全策略。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会更新自定义安全策略。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], ], 'responses' => [ @@ -10452,482 +7437,291 @@ 'description' => '更新安全策略属性。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', - ], - 'SecurityPolicyId' => [ - 'description' => 'TLS安全策略ID。', - 'type' => 'string', - 'example' => 'sp-wuytp9pa******'."\n", - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF'], + 'SecurityPolicyId' => ['description' => 'TLS安全策略ID。', 'type' => 'string', 'example' => 'sp-wuytp9pa******'."\n"], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.PreserveClientIpSwitch', - 'errorMessage' => 'The param of PreserveClientIpSwitch is illegal.', - ], - [ - 'errorCode' => 'UpdateSecurityPolicyFailed', - 'errorMessage' => 'The operation failed because of Security Policy is not changed.', - ], + ['errorCode' => 'IllegalParam.PreserveClientIpSwitch', 'errorMessage' => 'The param of PreserveClientIpSwitch is illegal.', 'description' => ''], + ['errorCode' => 'UpdateSecurityPolicyFailed', 'errorMessage' => 'The operation failed because of Security Policy is not changed.', 'description' => '因为安全策略没有发生变化,所以操作失败,请检查输入参数。'], ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.securitypolicy', - 'errorMessage' => 'The specified resource of securitypolicy is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', - ], + ['errorCode' => 'ResourceNotFound.securitypolicy', 'errorMessage' => 'The specified resource of securitypolicy is not found.', 'description' => '找不到指定的安全策略资源。请检查输入参数。'], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => '找不到指定的服务器组资源,请检查输入参数。'], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicyId\\": \\"sp-wuytp9pa******\\\\n\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateSecurityPolicyAttributeResponse>\\n <RequestId>D7A8875F-373A-5F48-8484-25B07A61F2AF</RequestId>\\n <SecurityPolicyId>tls-bp14bb1e7dll4f****</SecurityPolicyId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateSecurityPolicyAttributeResponse>","errorExample":""}]', 'title' => '更新自定义安全策略属性', - ], - 'ListSecurityPolicy' => [ - 'summary' => '查询网络型负载均衡的TLS自定义安全策略。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateSecurityPolicyAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateSecurityPolicyAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], + ], + ], ], + ], + 'UpdateServerGroupAttribute' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '141862', - 'abilityTreeNodes' => [ - 'FEATUREslbAZREFH', - ], + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '141878', + 'abilityTreeNodes' => ['FEATUREslbVDXH6N'], ], 'parameters' => [ [ - 'name' => 'SecurityPolicyIds', + 'name' => 'ServerGroupId', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '安全策略实例ID列表。最多支持添加20个安全策略实例。', - 'type' => 'array', - 'items' => [ - 'description' => '安全策略实例ID列表。最多支持添加20个安全策略实例。', - 'type' => 'string', - 'required' => false, - 'example' => 'sp-wuytp9pa******'."\n", - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['title' => '服务器组ID', 'description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****'], ], [ - 'name' => 'SecurityPolicyNames', + 'name' => 'ServerGroupName', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '安全策略名称列表。最多支持添加20个安全策略实例。', - 'type' => 'array', - 'items' => [ - 'description' => '安全策略名称列表。最多支持添加20个安全策略实例。', - 'type' => 'string', - 'required' => false, - 'example' => 'TLSCipherPolicy', - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => '修改后的服务器组名称。'."\n" + ."\n" + .'长度为2~128个字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'NLB_ServerGroup1'], ], [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持10个标签键。'."\n" - ."\n" - .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - 'Value' => [ - 'description' => '标签值。最多支持10个标签值。'."\n" - ."\n" - .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - [ - 'name' => 'ResourceGroupId', + 'name' => 'ConnectionDrainEnabled', 'in' => 'formData', - 'schema' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', - ], + 'schema' => ['title' => '是否开启连接优雅中断', 'description' => '是否开启连接优雅中断。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:不开启。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'NextToken', + 'name' => 'ConnectionDrainTimeout', 'in' => 'formData', - 'schema' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['title' => '连接优雅中断超时时间', 'description' => '设置连接优雅中断超时时间。单位:秒。取值范围:**0**~**900**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ - 'name' => 'MaxResults', + 'name' => 'Scheduler', 'in' => 'formData', - 'schema' => [ - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['title' => '调度类型', 'description' => '调度算法。取值:'."\n" + ."\n" + .'- **Wrr**:加权轮询,权重值越高的后端服务器,被轮询到的概率也越高。'."\n" + ."\n" + .'- **Wlc**:加权最小连接数,除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的概率也越高。'."\n" + ."\n" + .'- **rr**:轮询,按照访问顺序依次将外部请求分发到后端服务器。'."\n" + ."\n" + .'- **sch**:源IP哈希:相同的源地址会调度到相同的后端服务器。'."\n" + ."\n" + .'- **tch**:四元组哈希,基于四元组(源IP、目的IP、源端口和目的端口)的一致性哈希,相同的流会调度到相同的后端服务器。'."\n" + ."\n" + .'- **qch**:QUIC ID哈希,支持将同一个QUIC ID的请求哈希到同一台后端服务器上。'."\n" + ."\n" + .'> 仅后端协议为UDP时,支持选择QUIC ID哈希。', 'type' => 'string', 'required' => false, 'example' => 'Wrr'], ], [ - 'name' => 'RegionId', + 'name' => 'IpVersionAffinityMode', 'in' => 'formData', 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" + 'description' => '双栈模式下的流量调度策略:'."\n" ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', + .'- NonAffinity(默认):无亲和模式,转发时不区分来源的IP协议版本,按照调度算法向健康的后端转发。'."\n" + .'- Affinity:亲和模式,转发时根据请求来源的IP协议版本亲和转发,IPv4请求仅转发至IPv4后端,IPv6请求仅转发至IPv6后端。'."\n" + .'> 仅**AddressIPVersion**为**DualStack**时,该参数生效。', 'type' => 'string', 'required' => false, - 'example' => 'cn-hangzhou', + 'example' => 'Affinity', + 'enum' => ['NonAffinity', 'Affinity'], ], ], - ], - 'responses' => [ - 200 => [ + [ + 'name' => 'PreserveClientIpEnabled', + 'in' => 'formData', + 'schema' => ['description' => '是否开启客户端地址保持功能。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。'."\n" + ."\n" + .'> 当**PreserveClientIpEnabled**参数取值为**false**且服务器组已关联**TCPSSL**监听时,不支持将该参数的值修改为**true**。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'HealthCheckConfig', + 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'title' => 'RpcResponse<ListSecurityPolicyResponse>', - 'description' => '查询TLS安全策略。', + 'title' => '健康检查配置', + 'description' => '健康检查相关配置。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', - ], - 'SecurityPolicies' => [ - 'description' => 'TLS安全策略列表。', + 'HealthCheckEnabled' => ['title' => '是否开启健康检查', 'description' => '是否开启健康检查,取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'HealthCheckType' => ['title' => '健康检查协议类型', 'description' => '健康检查协议。取值:'."\n" + ."\n" + .'- **TCP**'."\n" + .'- **HTTP**'."\n" + .'- **UDP**', 'type' => 'string', 'required' => false, 'example' => 'TCP'], + 'HealthCheckConnectPort' => ['title' => '健康检查使用的端口', 'description' => '健康检查的后端服务器的端口。取值范围:**0**~**65535**。**0**表示使用后端服务器的端口进行健康检查。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + 'HealthyThreshold' => ['title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success', 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。取值范围:**2**~**10**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3'], + 'UnhealthyThreshold' => ['title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail', 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。取值范围:**2**~**10**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3'], + 'HealthCheckConnectTimeout' => ['title' => '健康检查响应的最大超时时间', 'description' => '健康检查响应的最大超时时间。单位:秒。 取值范围:**1~300**。 默认值:**5**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + 'HealthCheckInterval' => ['title' => '健康检查时间间隔', 'description' => '健康检查的时间间隔。单位:秒,默认值:**5**。'."\n" + ."\n" + .'- **HealthCheckType**为**TCP**或者**HTTP**时,取值范围为:**1~50**。'."\n" + ."\n" + .'- **HealthCheckType**为**UDP**时,取值范围为:**1~300**,您需要设置间隔时间>=响应超时时间,以确保UDP探测回包不会因为超时而被误判为未响应。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'], + 'HealthCheckDomain' => ['title' => '健康检查的域名', 'description' => '用于健康检查的域名。取值:'."\n" + .'- **$SERVER_IP**:使用后端服务器内网IP。'."\n" + .'- **domain**:指定特定域名。长度限制1~80个字符,只能使用小写字母、数字、短划线(-)、半角句号(.)。'."\n" + ."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => '$SERVER_IP'], + 'HealthCheckUrl' => ['title' => '健康检查的url', 'description' => '健康检查路径。'."\n" + ."\n" + .'长度为1~80个字符,只能使用字母、数字、字符`-/.%?#&=`以及扩展字符`_;~!()*[]@$^:\',+`。 必须以正斜线(/)开头。'."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => '/test/index.html'], + 'HealthCheckHttpCode' => [ + 'title' => '状态码,多个状态码用逗号分隔', + 'description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n" + .'取值:**http\\_2xx**(默认值)、**http\\_3xx**、**http\\_4xx**和**http\\_5xx**。'."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'array', - 'items' => [ - 'description' => 'TLS安全策略列表。', - 'type' => 'object', - 'properties' => [ - 'SecurityPolicyId' => [ - 'title' => 'tls策略ID', - 'description' => 'TLS安全策略ID。', - 'type' => 'string', - 'example' => 'sp-wuytp9pa******'."\n", - ], - 'SecurityPolicyName' => [ - 'title' => '名称', - 'description' => 'TLS安全策略名称。', - 'type' => 'string', - 'example' => 'TLSCipherPolicy', - ], - 'TlsVersion' => [ - 'title' => 'tls版本', - 'description' => 'TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。', - 'type' => 'string', - 'example' => 'TLSv1.0', - ], - 'Ciphers' => [ - 'title' => '加密套件', - 'description' => '支持的加密套件列表,具体依赖TLSVersion值。最多支持添加32个加密套件。'."\n" - ."\n" - .'TLSv1.0和TLSv1.1 支持:'."\n" - .'- **ECDHE-ECDSA-AES128-SHA**'."\n" - .'- **ECDHE-ECDSA-AES256-SHA**'."\n" - .'- **ECDHE-RSA-AES128-SHA**'."\n" - .'- **ECDHE-RSA-AES256-SHA**'."\n" - .'- **AES128-SHA**'."\n" - .'- **AES256-SHA**'."\n" - .'- **DES-CBC3-SHA**'."\n" - ."\n" - .'TLSv1.2支持:'."\n" - .'- **ECDHE-ECDSA-AES128-SHA**'."\n" - .'- **ECDHE-ECDSA-AES256-SHA**'."\n" - .'- **ECDHE-RSA-AES128-SHA**'."\n" - .'- **ECDHE-RSA-AES256-SHA**'."\n" - .'- **AES128-SHA**'."\n" - .'- **AES256-SHA**'."\n" - .'- **DES-CBC3-SHA**'."\n" - .'- **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" - .'- **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" - .'- **ECDHE-ECDSA-AES128-SHA256**'."\n" - .'- **ECDHE-ECDSA-AES256-SHA384**'."\n" - .'- **ECDHE-RSA-AES128-GCM-SHA256**'."\n" - .'- **ECDHE-RSA-AES256-GCM-SHA384**'."\n" - .'- **ECDHE-RSA-AES128-SHA256**'."\n" - .'- **ECDHE-RSA-AES256-SHA384**'."\n" - .'- **AES128-GCM-SHA256**'."\n" - .'- **AES256-GCM-SHA384**'."\n" - .'- **AES128-SHA256**'."\n" - .'- **AES256-SHA256**'."\n" - .'- **ECDHE-ECDSA-CHACHA20-POLY1305**'."\n" - .'- **ECDHE-RSA-CHACHA20-POLY1305**'."\n" - ."\n\n" - .'TLSv1.3支持:'."\n" - .'- **TLS_AES_128_GCM_SHA256**'."\n" - .'- **TLS_AES_256_GCM_SHA384**'."\n" - .'- **TLS_CHACHA20_POLY1305_SHA256**'."\n" - .'- **TLS_AES_128_CCM_SHA256**'."\n" - .'- **TLS_AES_128_CCM_8_SHA256**', - 'type' => 'string', - 'example' => 'ECDHE-ECDSA-AES128-SHA', - ], - 'RegionId' => [ - 'title' => '业务location', - 'description' => '网络型负载均衡实例所在的地域ID。 ', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Tags' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持10个标签键。'."\n" - ."\n" - .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'example' => 'Test', - ], - 'Value' => [ - 'description' => '标签值。最多支持10个标签值。'."\n" - ."\n" - .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'example' => 'Test', - ], - ], - ], - ], - 'RelatedListeners' => [ - 'description' => '关联的监听列表。', - 'type' => 'array', - 'items' => [ - 'description' => '关联的监听列表。', - 'type' => 'object', - 'properties' => [ - 'ListenerId' => [ - 'description' => '监听ID。', - 'type' => 'string', - 'example' => 'lsn-bp1bpn0kn908w4nbw****@443', - ], - 'ListenerPort' => [ - 'description' => '监听端口。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '443', - ], - 'ListenerProtocol' => [ - 'description' => '监听协议。仅取值**TCPSSL**。', - 'type' => 'string', - 'example' => 'TCPSSL', - ], - 'LoadBalancerId' => [ - 'description' => '网络型负载均衡实例ID。', - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - 'SecurityPolicyStatus' => [ - 'description' => 'TLS安全策略的状态,取值:'."\n" - ."\n" - .'- **Configuring** :配置中。'."\n" - .'- **Available**: 正常可用。', - 'type' => 'string', - 'example' => 'Available', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', + 'items' => ['description' => '健康状态返回码,多个状态码用半角逗号(,)分隔。'."\n" + .'取值:**http\\_2xx**(默认值)、**http\\_3xx**、**http\\_4xx**和**http\\_5xx**。'."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'http_2xx'], + 'required' => false, ], - 'NextToken' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', + 'HttpCheckMethod' => [ + 'description' => '健康检查方法,取值:**GET**或**HEAD**。'."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', + 'required' => false, + 'example' => 'GET', + 'enum' => [], ], - 'MaxResults' => [ - 'description' => '分批次查询时每次显示的条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', + 'HealthCheckReq' => ['description' => 'UDP监听健康检查的请求串。只允许包含字母、数字,最大长度限制为512个字符。', 'type' => 'string', 'required' => false, 'example' => 'hello'], + 'HealthCheckExp' => ['description' => 'UDP监听健康检查的响应串。只允许包含字母、数字,最大长度限制为512个字符。', 'type' => 'string', 'required' => false, 'example' => 'ok'], + 'HealthCheckHttpVersion' => [ + 'description' => '健康检查HTTP协议版本,取值:**HTTP1.0**或**HTTP1.1**。'."\n" + ."\n" + .'> 仅**HealthCheckType**为**HTTP**时,该参数生效。', + 'type' => 'string', + 'required' => false, + 'example' => 'HTTP1.0', + 'enum' => ['HTTP1.0', 'HTTP1.1'], ], ], + 'required' => false, ], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"SecurityPolicyId\\": \\"sp-wuytp9pa******\\\\n\\",\\n \\"SecurityPolicyName\\": \\"TLSCipherPolicy\\",\\n \\"TlsVersion\\": \\"TLSv1.0\\",\\n \\"Ciphers\\": \\"ECDHE-ECDSA-AES128-SHA\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@443\\",\\n \\"ListenerPort\\": 443,\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"SecurityPolicyStatus\\": \\"Available\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListSecurityPolicyResponse>\\n <RequestId>D7A8875F-373A-5F48-8484-25B07A61F2AF</RequestId>\\n <SecurityPolicies>\\n <SecurityPolicyId>tls-bp14bb1e7dll4f****</SecurityPolicyId>\\n <SecurityPolicyName>TLSCipherPolicy</SecurityPolicyName>\\n <TlsVersion>TLSv1.0</TlsVersion>\\n <Ciphers>ECDHE-ECDSA-AES128-SHA</Ciphers>\\n <RegionId>cn-hangzhou</RegionId>\\n <Tags>\\n <Key>Test</Key>\\n <Value>Test</Value>\\n </Tags>\\n <RelatedListeners>\\n <ListenerId>lsn-bp1bpn0kn908w4nbw****</ListenerId>\\n <ListenerPort>443</ListenerPort>\\n <ListenerProtocol>TCPSSL</ListenerProtocol>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n </RelatedListeners>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <SecurityPolicyStatus>Available</SecurityPolicyStatus>\\n </SecurityPolicies>\\n <TotalCount>10</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListSecurityPolicyResponse>","errorExample":""}]', - 'title' => '查询自定义安全策略', - ], - 'ListSystemSecurityPolicy' => [ - 'summary' => '查询系统默认的TLS安全策略。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会更新服务器组信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => ' false'], ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => '网络型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<ListSystemSecurityPolicyResponse>', - 'description' => '查询系统默认的TLS安全策略。', + 'title' => 'RpcResponse<UpdateServerGroupAttributeResponse>', + 'description' => '更新服务器组配置。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5C057647-284B-5C67-A07E-4B8F3DABA9F9', - ], - 'SecurityPolicies' => [ - 'description' => 'TLS安全策略列表。', - 'type' => 'array', - 'items' => [ - 'description' => '安全策略。', - 'type' => 'object', - 'properties' => [ - 'SecurityPolicyId' => [ - 'title' => 'tls策略ID', - 'description' => 'TLS策略ID。', - 'type' => 'string', - 'example' => 'tls_cipher_policy_1_0', - ], - 'SecurityPolicyName' => [ - 'title' => '名称', - 'description' => 'TLS安全策略名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'TlsVersion' => [ - 'title' => 'tls版本', - 'description' => 'TLS版本。', - 'type' => 'string', - 'example' => 'TLSv1.0,TLSv1.1,TLSv1.2', - ], - 'Ciphers' => [ - 'title' => '加密套件', - 'description' => '加密套件。', - 'type' => 'string', - 'example' => 'ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES128-SHA256,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES256-SHA384,AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA256,AES256-SHA256,ECDHE-ECDSA-AES128-SHA,ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES256-SHA,AES128-SHA,AES256-SHA,DES-CBC3-SHA', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5C057647-284B-5C67-A07E-4B8F3DABA9F9\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_0\\",\\n \\"SecurityPolicyName\\": \\"test\\",\\n \\"TlsVersion\\": \\"TLSv1.0,TLSv1.1,TLSv1.2\\",\\n \\"Ciphers\\": \\"ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES128-SHA256,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES256-SHA384,AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA256,AES256-SHA256,ECDHE-ECDSA-AES128-SHA,ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES256-SHA,AES128-SHA,AES256-SHA,DES-CBC3-SHA\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '查询系统安全策略', - ], - 'MoveResourceGroup' => [ - 'summary' => '修改云资源所属的资源组。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => '参数%s非法'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => '系统繁忙,请稍后重试'], + ['errorCode' => 'IllegalParam.healthCheckDomain', 'errorMessage' => 'The parameter of healthCheckConfig.healthCheckDomain is illegal.', 'description' => '健康检查配置中的healthCheckDomain非法,请检查输入参数。'], + ['errorCode' => 'IlleagalParam.healthCheckUrl', 'errorMessage' => 'The parameter of healthCheckUrl in healthCheckConfig is illegal.', 'description' => '健康检查设置中使用的健康检查的URL不合法。'], + ['errorCode' => 'OperationDenied.UidNotAllowQuic29', 'errorMessage' => 'The operation is not allowed because of uid not allow quic29 version.', 'description' => ''], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => '输入的参数有值非法,请检查输入。'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'dryRun请求验证已通过。'], + ['errorCode' => 'IllegalParam.ServerGroupName', 'errorMessage' => 'The param of ServerGroupName is illegal.', 'description' => '传入的ServerGroupName参数非法'], + ['errorCode' => 'IllegalParam.PreserveClientIpSwitch', 'errorMessage' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.', 'description' => 'tcpssl监听关联的服务器组不支持开启客户端ip保持功能'], + ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => '找不到指定的服务器组资源,请检查输入参数。'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'title' => '更新服务器组配置', + 'summary' => '更新 NLB 服务器组的配置信息', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateServerGroupAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateServerGroupAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateServerGroupAttributeResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateServerGroupAttributeResponse>","errorExample":""}]', + ], + 'UpdateServerGroupServersAttribute' => [ + 'summary' => '更新网络型负载均衡服务器组中后端服务器的权重和描述信息。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10937,1087 +7731,1078 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '179098', - 'abilityTreeNodes' => [ - 'FEATUREslbZQW9H1', - ], + 'abilityTreeNodes' => ['FEATUREslb3GOGI0', 'FEATUREslbBEALOE', 'FEATUREslb3DZO9R', 'FEATUREslbWFW5HS', 'FEATUREslbBYQ1MP', 'FEATUREslbYU1H2O'], ], 'parameters' => [ [ - 'name' => 'NewResourceGroupId', + 'name' => 'ServerGroupId', 'in' => 'formData', - 'schema' => [ - 'description' => '新资源组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rg-aekzjcnrv3v****', - ], + 'schema' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****'], ], [ - 'name' => 'ResourceType', + 'name' => 'Servers', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '资源类型,取值:'."\n" - ."\n" - .'- **loadbalancer**:网络型负载均衡实例。'."\n" - .'- **securitypolicy**:安全策略。'."\n" - .'- **servergroup**:服务器组。', - 'type' => 'string', + 'description' => '后端服务器列表,单次调用最多支持传入200个后端服务器。', + 'type' => 'array', + 'items' => [ + 'description' => '后端服务器列表,单次调用最多支持传入200个后端服务器。', + 'type' => 'object', + 'properties' => [ + 'ServerId' => ['title' => '服务器id', 'description' => '后端服务器ID。'."\n" + ."\n" + .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源ID。'."\n" + ."\n" + .'- 当服务器组为**Ip**类型时,该参数为IP地址。', 'type' => 'string', 'required' => true, 'example' => 'i-bp67acfmxazb4p****'], + 'ServerType' => [ + 'title' => '服务器类型', + 'description' => '后端服务器类型,取值:'."\n" + ."\n" + .'- **Ecs**:ECS实例。'."\n" + .'- **Eni**:ENI弹性网卡实例。'."\n" + .'- **Eci**:ECI弹性容器。'."\n" + .'- **Ip**:IP地址。', + 'type' => 'string', + 'required' => true, + 'example' => 'Ecs', + 'enum' => [], + ], + 'ServerIp' => ['title' => '服务器ip', 'description' => '服务器IP地址。当服务器组为**Ip**类型时,必须指定IP地址。', 'type' => 'string', 'required' => false, 'example' => '192.168.6.6'], + 'Port' => ['title' => '服务器端口', 'description' => '后端服务器使用的端口。取值范围:**1**~**65535**。'."\n" + ."\n" + .'> 该参数暂不支持修改。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '443'], + 'Weight' => ['title' => '后端权重', 'description' => '后端服务器的权重,取值范围:**0**~**100**。默认值为**100**。如果设置权重为**0**,则不会将请求转发给该后端服务器。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + 'Description' => ['title' => '服务器描述信息', 'description' => '服务器描述信息。'."\n" + ."\n" + .'长度限制为2-256个字符,可包含英文字母、数字、中文、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => '后端服务器描述'], + ], + 'required' => false, + ], 'required' => true, - 'example' => 'loadbalancer', + 'maxItems' => 200, ], ], [ - 'name' => 'ResourceId', + 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-nrnrxwd15en27r****', - ], + 'schema' => ['description' => '网络型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'RegionId', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => '资源所在的地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会更新服务器配置信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse<MoveResourceGroupResponse>', - 'description' => 'RpcResponse<MoveResourceGroupResponse>', + 'title' => 'RpcResponse<UpdateServerGroupServersAttributeResponse>', + 'description' => '更新后端服务器配置。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'Success' => [ - 'description' => '接口请求结果,取值:'."\n" - ."\n" - .'- **true**:请求成功。'."\n" - .'- **false**:请求失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Data' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'ResourceId' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'example' => 'nlb-nrnrxwd15en27r****', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.resourceType', - 'errorMessage' => 'The param of resourceType is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.StatusCheckFail.ResourceGroup', - 'errorMessage' => 'The operation failed because of StatusCheckFail.ResourceGroup.', - ], + ['errorCode' => 'IncorrectStatus.serverGroup', 'errorMessage' => 'The status of servergroup [%s] is incorrect.', 'description' => '服务器组的状态无法进行当前操作,请检查服务器组当前是否处于其他操作下。'], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => '指定的资源当前存在锁冲突。'], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => '参数%s非法'], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => '参数%s缺失,请检查输入参数。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.%s', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '当前资源或者操作%s鉴权失败'], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => '因为账号没有权限,所以鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ResourceGroup', - 'errorMessage' => 'The param of resourceGroup not existed.', - ], + ['errorCode' => 'ResourceNotFound.BackendServer', 'errorMessage' => 'The specified resource of BackendServer is not found.', 'description' => '找不到指定的后端服务器资源,请检查输入的参数。'], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => '找不到指定的服务器组资源,请检查输入参数。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateServerGroupServersAttributeResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateServerGroupServersAttributeResponse>","errorExample":""}]', + 'title' => '更新后端服务器配置', + 'description' => '**UpdateServerGroupServersAttribute**接口属于异步接口,即系统返回一个请求ID,但该后端服务器配置信息尚未添加成功,系统后台的添加任务仍在进行。'."\n" + .'1. 您可以调用[ListServerGroups](~~445895~~)查询服务器组状态:'."\n" + .' - 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n" + .' - 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n" + ."\n" + .'2. 您可以调用[ListServerGroupServers](~~445896~~)查询后端服务器状态:'."\n" + .' - 当后端服务器处于**Configuring**状态时,表示后端服务器正在变配中。'."\n" + .' - 当后端服务器处于**Available**状态时,表示后端服务器运行中。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateServerGroupServersAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateServerGroupServersAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Success\\": true,\\n \\"HttpStatusCode\\": 200,\\n \\"Data\\": {\\n \\"ResourceId\\": \\"nlb-nrnrxwd15en27r****\\"\\n }\\n}","type":"json"}]', - 'title' => '变更资源所属的资源组', ], - 'GetJobStatus' => [ - 'summary' => '查询网络型负载均衡的异步任务执行结果信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + ], + 'endpoints' => [ + ['regionId' => 'cn-wulanchabu', 'regionName' => '华北6(乌兰察布)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-wulanchabu.aliyuncs.com', 'endpoint' => 'nlb.cn-wulanchabu.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-wulanchabu.aliyuncs.com'], + ['regionId' => 'cn-beijing', 'regionName' => '华北2(北京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-beijing.aliyuncs.com', 'endpoint' => 'nlb.cn-beijing.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-zhengzhou-jva', 'regionName' => '郑州(联通合营)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-zhengzhou-jva.aliyuncs.com', 'endpoint' => 'nlb.cn-zhengzhou-jva.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-zhengzhou-jva.aliyuncs.com'], + ['regionId' => 'cn-qingdao', 'regionName' => '华北1(青岛)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-qingdao.aliyuncs.com', 'endpoint' => 'nlb.cn-qingdao.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-qingdao.aliyuncs.com'], + ['regionId' => 'cn-wuhan-lr', 'regionName' => '华中1(武汉-本地地域)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-wuhan-lr.aliyuncs.com', 'endpoint' => 'nlb.cn-wuhan-lr.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-wuhan-lr.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-shanghai.aliyuncs.com', 'endpoint' => 'nlb.cn-shanghai.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-hongkong', 'regionName' => '中国香港', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-hongkong.aliyuncs.com', 'endpoint' => 'nlb.cn-hongkong.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-hongkong.aliyuncs.com'], + ['regionId' => 'cn-heyuan', 'regionName' => '华南2(河源)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-heyuan.aliyuncs.com', 'endpoint' => 'nlb.cn-heyuan.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-heyuan.aliyuncs.com'], + ['regionId' => 'cn-zhangjiakou', 'regionName' => '华北3(张家口)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-zhangjiakou.aliyuncs.com', 'endpoint' => 'nlb.cn-zhangjiakou.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-zhangjiakou.aliyuncs.com'], + ['regionId' => 'cn-shenzhen', 'regionName' => '华南1(深圳)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-shenzhen.aliyuncs.com', 'endpoint' => 'nlb.cn-shenzhen.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'cn-nanjing', 'regionName' => '华东5(南京-本地地域)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-nanjing.aliyuncs.com', 'endpoint' => 'nlb.cn-nanjing.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-nanjing.aliyuncs.com'], + ['regionId' => 'ap-northeast-2', 'regionName' => '韩国(首尔)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.ap-northeast-2.aliyuncs.com', 'endpoint' => 'nlb.ap-northeast-2.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-northeast-2.aliyuncs.com'], + ['regionId' => 'ap-northeast-1', 'regionName' => '日本(东京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.ap-northeast-1.aliyuncs.com', 'endpoint' => 'nlb.ap-northeast-1.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'cn-fuzhou', 'regionName' => '华东6(福州-本地地域)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-fuzhou.aliyuncs.com', 'endpoint' => 'nlb.cn-fuzhou.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-fuzhou.aliyuncs.com'], + ['regionId' => 'cn-chengdu', 'regionName' => '西南1(成都)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-chengdu.aliyuncs.com', 'endpoint' => 'nlb.cn-chengdu.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-chengdu.aliyuncs.com'], + ['regionId' => 'cn-guangzhou', 'regionName' => '华南3(广州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-guangzhou.aliyuncs.com', 'endpoint' => 'nlb.cn-guangzhou.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-guangzhou.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.ap-southeast-1.aliyuncs.com', 'endpoint' => 'nlb.ap-southeast-1.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-3', 'regionName' => '马来西亚(吉隆坡)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.ap-southeast-3.aliyuncs.com', 'endpoint' => 'nlb.ap-southeast-3.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-southeast-3.aliyuncs.com'], + ['regionId' => 'ap-southeast-5', 'regionName' => '印度尼西亚(雅加达)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.ap-southeast-5.aliyuncs.com', 'endpoint' => 'nlb.ap-southeast-5.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-southeast-5.aliyuncs.com'], + ['regionId' => 'ap-southeast-6', 'regionName' => '菲律宾(马尼拉)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.ap-southeast-6.aliyuncs.com', 'endpoint' => 'nlb.ap-southeast-6.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-southeast-6.aliyuncs.com'], + ['regionId' => 'ap-southeast-7', 'regionName' => '泰国(曼谷)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.ap-southeast-7.aliyuncs.com', 'endpoint' => 'nlb.ap-southeast-7.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-southeast-7.aliyuncs.com'], + ['regionId' => 'cn-hangzhou', 'regionName' => '华东1(杭州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'nlb.cn-hangzhou.aliyuncs.com', 'endpoint' => 'nlb.cn-hangzhou.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-hangzhou.aliyuncs.com'], + ['regionId' => 'us-east-1', 'regionName' => '美国(弗吉尼亚)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'nlb.us-east-1.aliyuncs.com', 'endpoint' => 'nlb.us-east-1.aliyuncs.com', 'vpc' => 'nlb-vpc.us-east-1.aliyuncs.com'], + ['regionId' => 'eu-west-1', 'regionName' => '英国(伦敦)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'nlb.eu-west-1.aliyuncs.com', 'endpoint' => 'nlb.eu-west-1.aliyuncs.com', 'vpc' => 'nlb-vpc.eu-west-1.aliyuncs.com'], + ['regionId' => 'eu-west-2', 'regionName' => '法国(巴黎)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'nlb.eu-west-2.aliyuncs.com', 'endpoint' => 'nlb.eu-west-2.aliyuncs.com', 'vpc' => 'nlb-vpc.eu-west-2.aliyuncs.com'], + ['regionId' => 'us-west-1', 'regionName' => '美国(硅谷)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'nlb.us-west-1.aliyuncs.com', 'endpoint' => 'nlb.us-west-1.aliyuncs.com', 'vpc' => 'nlb-vpc.us-west-1.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'regionName' => '德国(法兰克福)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'nlb.eu-central-1.aliyuncs.com', 'endpoint' => 'nlb.eu-central-1.aliyuncs.com', 'vpc' => 'nlb-vpc.eu-central-1.aliyuncs.com'], + ['regionId' => 'na-south-1', 'regionName' => '墨西哥', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'nlb.na-south-1.aliyuncs.com', 'endpoint' => 'nlb.na-south-1.aliyuncs.com', 'vpc' => 'nlb-vpc.na-south-1.aliyuncs.com'], + ['regionId' => 'me-east-1', 'regionName' => '阿联酋(迪拜)', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'nlb.me-east-1.aliyuncs.com', 'endpoint' => 'nlb.me-east-1.aliyuncs.com', 'vpc' => 'nlb-vpc.me-east-1.aliyuncs.com'], + ['regionId' => 'me-central-1', 'regionName' => '沙特(利雅得)', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'nlb.me-central-1.aliyuncs.com', 'endpoint' => 'nlb.me-central-1.aliyuncs.com', 'vpc' => 'nlb-vpc.me-central-1.aliyuncs.com'], + ['regionId' => 'ap-south-1', 'regionName' => '印度(孟买)已关停', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'nlb.ap-south-1.aliyuncs.com', 'endpoint' => 'nlb.ap-south-1.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-south-1.aliyuncs.com'], + ['regionId' => 'cn-heyuan-acdr-1', 'regionName' => '河源专属云汽车合规', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'nlb.cn-heyuan-acdr-1.aliyuncs.com', 'endpoint' => 'nlb.cn-heyuan-acdr-1.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-heyuan-acdr-1.aliyuncs.com'], + ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => '华南1 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'nlb.cn-shenzhen-finance-1.aliyuncs.com', 'endpoint' => 'nlb.cn-shenzhen-finance-1.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-shenzhen-finance-1.aliyuncs.com'], + ['regionId' => 'cn-beijing-finance-1', 'regionName' => '华北2 金融云(邀测)', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'nlb.cn-beijing-finance-1.aliyuncs.com', 'endpoint' => 'nlb.cn-beijing-finance-1.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-beijing-finance-1.aliyuncs.com'], + ['regionId' => 'cn-shanghai-finance-1', 'regionName' => '华东2 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'nlb.cn-shanghai-finance-1.aliyuncs.com', 'endpoint' => 'nlb.cn-shanghai-finance-1.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-shanghai-finance-1.aliyuncs.com'], + ], + 'errorCodes' => [ + ['code' => 'Conflict.%s', 'message' => 'The %s [%s] is conflict.', 'http_code' => 400, 'description' => '资源%s [%s] 冲突'], + ['code' => 'Conflict.Lock', 'message' => 'The Lock [%s] is conflict.', 'http_code' => 400, 'description' => '指定的资源当前存在锁冲突。'], + ['code' => 'Conflict.Port', 'message' => 'The Port [%s] is conflict.', 'http_code' => 400, 'description' => '指定端口与已有端口存在冲突'], + ['code' => 'Conflict.SecurityGroup', 'message' => 'The SecurityGroup [%s] is conflict.', 'http_code' => 400, 'description' => '指定的资源当前存在锁冲突。'], + ['code' => 'DescribeHDMonitor.Fail', 'message' => 'DescribeHDMonitor Fail.', 'http_code' => 404, 'description' => '查询秒级监控配置失败'], + ['code' => 'DryRunOperation', 'message' => 'Request validation has been passed with DryRun flag set.', 'http_code' => 400, 'description' => 'dryRun请求验证已通过。'], + ['code' => 'DuplicatedParam.%s', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => '参数%s重复了'], + ['code' => 'DuplicatedParam.AllocationId', 'message' => 'The param of AllocationId is duplicated.', 'http_code' => 400, 'description' => 'AllocationId参数重复,请检查参数。'], + ['code' => 'DuplicatedParam.listener', 'message' => 'The param of any port listener is duplicated.', 'http_code' => 400, 'description' => '只能创建一个anyport类型监听,请检查输入参数。'], + ['code' => 'DuplicatedParam.Server', 'message' => 'The param of Server is duplicated.', 'http_code' => 400, 'description' => '参数中的server重复了。'], + ['code' => 'EnableHDMonitor.Fail', 'message' => 'EnableHDMonitor Fail.', 'http_code' => 404, 'description' => '设置秒级监控错误'], + ['code' => 'EnableHdMonitorFail', 'message' => 'OperationDenied.HdMonitorListenerExist.', 'http_code' => 400, 'description' => '存在已开启秒级监控的监听'], + ['code' => 'Forbidden.%s', 'message' => 'Authentication is failed for %s.', 'http_code' => 403, 'description' => '当前资源或者操作%s鉴权失败'], + ['code' => 'Forbidden.NoPermission', 'message' => 'Authentication is failed for NoPermission.', 'http_code' => 403, 'description' => '因为账号没有权限,所以鉴权失败。'], + ['code' => 'Forbidden.SecurityGroup', 'message' => 'Authentication is failed for SecurityGroup.', 'http_code' => 403, 'description' => '因为安全组没有权限,所以鉴权失败。'], + ['code' => 'HealthCheckConfig.healthCheckUrl', 'message' => 'The healthCheckUrl used in the healthCheckConfig is illegal.', 'http_code' => 400, 'description' => 'healthCheckConfig中使用的healthCheckUrl不合法。'], + ['code' => 'healthCheckConfig.healthCheckUrl', 'message' => 'The healthCheckUrl used in the healthCheckConfig is illegal. refer to the correct use example to modify the url format: the length needs to be 1~80 characters, and only letters, numbers, characters -/.%?#&= and extended characters _;~!()*[]@$^:\',+ can be used. It must start with a forward slash (/).', 'http_code' => 400, 'description' => 'healthCheckConfig中使用的healthCheckUrl不合法。'], + ['code' => 'IdempotenceSignatureMismatch', 'message' => 'The idempotence token of request is same with the prev one, but the signature is different.', 'http_code' => 400, 'description' => '请求的幂等令牌与上一个相同,但签名不同。'], + ['code' => 'IlleagalParam.healthCheckUrl', 'message' => 'The param of healthCheckUrl in healthCheckConfig is illegal.', 'http_code' => 400, 'description' => '健康检查设置中使用的健康检查的url不合法。'], + ['code' => 'IlleagalParam.healthCheckUrl', 'message' => 'The parameter of healthCheckUrl in healthCheckConfig is illegal.', 'http_code' => 400, 'description' => '健康检查设置中使用的健康检查的URL不合法。'], + ['code' => 'IllegalParam', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => '输入的参数有值非法,请检查输入。'], + ['code' => 'IllegalParam.%s', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => '参数%s非法'], + ['code' => 'IllegalParam.AcceptLanguage', 'message' => 'The param of AcceptLanguage[%s] is illegal from bundle %s', 'http_code' => 400, 'description' => 'AcceptLanguage 参数[%s] 非法。'], + ['code' => 'IllegalParam.AnyPortListenerConflictWithNonAnyPortServerGroup', 'message' => 'The param of AnyPortListenerConflictWithNonAnyPortServerGroup is illegal.', 'http_code' => 400, 'description' => 'servergroup的全端口转发开关,必须匹配与监听的anyport开关匹配,请检查参数。'], + ['code' => 'IllegalParam.AnyPortServerGroupConflictWithHealthCheckConfig', 'message' => 'The param of AnyPortServerGroupConflictWithHealthCheckConfig is illegal.', 'http_code' => 400, 'description' => '服务器组的配置与健康检查设置冲突。请检查配置参数。'], + ['code' => 'IllegalParam.ConnectionDrainTimeout', 'message' => 'The param of ConnectionDrainTimeout is illegal.', 'http_code' => 400, 'description' => '参数ConnectionDrainTimeout非法,请检查输入参数。'], + ['code' => 'IllegalParam.DeletionProtectionConfig', 'message' => 'DeletionProtectionConfig reason is illegal.', 'http_code' => 400, 'description' => '更改删除保护状态原因参数非法。'], + ['code' => 'IllegalParam.deletionProtectionReason', 'message' => 'The param of deletionProtectionReason is illegal.', 'http_code' => 400, 'description' => '参数deletionProtectionReason非法,请检查参数是否满足长度为2-128个英文或中文字符,必须以大小字母或中文开头,可包含数字,点号(.),下划线(_)和短横线(-)。'], + ['code' => 'IllegalParam.description', 'message' => 'The parameter description of server is illegal.', 'http_code' => 400, 'description' => '服务器描述不符合输入要求,请根据错误中的详细信息进行修改。'], + ['code' => 'IllegalParam.healthCheckDomain', 'message' => 'The parameter of healthCheckConfig.healthCheckDomain is illegal.', 'http_code' => 400, 'description' => '健康检查配置中的healthCheckDomain非法,请检查输入参数。'], + ['code' => 'IllegalParam.healthCheckDomain', 'message' => 'The parameter of healthCheckUrl is illegal.', 'http_code' => 400, 'description' => '参数healthCheckUrl非法。'], + ['code' => 'IllegalParam.IdleTimeout', 'message' => 'The param of IdleTimeout is illegal.', 'http_code' => 400, 'description' => '参数连接空闲超时时间配置非法。'], + ['code' => 'IllegalParam.IP', 'message' => 'The param of IP is illegal.', 'http_code' => 400, 'description' => '参数IP非法。请检查参数IP的输入值。'], + ['code' => 'IllegalParam.ListenerDescription', 'message' => 'The parameter ListenerDescription of listener is illegal.', 'http_code' => 400, 'description' => '监听描述不符合输入要求,请根据错误中的详细信息进行修改。'], + ['code' => 'IllegalParam.loadBalancerName', 'message' => 'Param loadBalancerName is illegal.', 'http_code' => 400, 'description' => '实例名称非法,请检查参数。'], + ['code' => 'IllegalParam.loadBalancerName', 'message' => 'The parameter loadBalancerName of listener is illegal.', 'http_code' => 400, 'description' => 'NLB负载均衡实例名称不符合输入要求,请根据错误中的详细信息进行修改。'], + ['code' => 'IllegalParam.loadBalancerNames', 'message' => 'The size of the loadBalancerNames parameter must be between 1 and 10.', 'http_code' => 400, 'description' => 'loadBalancerNames参数的大小必须在1到10之间。'], + ['code' => 'IllegalParam.LoadBalancerType', 'message' => 'The LoadBalancerType value is invalid.', 'http_code' => 400, 'description' => '参数LoadBalancerType值非法,请检查输入参数。'], + ['code' => 'IllegalParam.ModificationProtectionConfig', 'message' => 'ModificationProtectionConfig reason is illegal.', 'http_code' => 400, 'description' => '修改保护原因参数非法。'], + ['code' => 'IllegalParam.modificationProtectionReason', 'message' => 'The param of modificationProtectionReason is illegal.', 'http_code' => 400, 'description' => '参数modificationProtectionReason非法,请参考文档进行修改。'], + ['code' => 'IllegalParam.MssConflictWithUdpAndGeneve', 'message' => 'The param of MssConflictWithUdpAndGeneve is illegal.', 'http_code' => 400, 'description' => 'Mss值不为null时,listenerProtocol不可以是udp或者GENEVE。'], + ['code' => 'IllegalParam.NonAnyPortListenerConflictWithAnyPortServerGroup', 'message' => 'The param of NonAnyPortListenerConflictWithAnyPortServerGroup is illegal.', 'http_code' => 400, 'description' => '监听端口配置与全端口转发开关冲突。'], + ['code' => 'IllegalParam.Port', 'message' => 'The param of Port is illegal.', 'http_code' => 400, 'description' => '请求中的端口范围非法,请检查输入参数。'], + ['code' => 'IllegalParam.PreserveClientIpSwitch', 'message' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.', 'http_code' => 400, 'description' => 'tcpssl监听关联的服务器组不支持开启客户端ip保持功能'], + ['code' => 'IllegalParam.resourceType', 'message' => 'The param of resourceType is illegal.', 'http_code' => 400, 'description' => '参数resourceType非法。请检查参数resourceType的输入值。'], + ['code' => 'IllegalParam.RSPortConflictWithServerGroup', 'message' => 'The param of RSPortConflictWithServerGroup is illegal.', 'http_code' => 400, 'description' => '参数RSPort与ServerGroup冲突。请检查输入值。'], + ['code' => 'IllegalParam.ServerGroupId', 'message' => 'The param of ServerGroupId is illegal.', 'http_code' => 400, 'description' => '参数ServerGroupId非法,请检查输入参数。'], + ['code' => 'IllegalParam.ServerGroupName', 'message' => 'The param of ServerGroupName is illegal.', 'http_code' => 400, 'description' => '传入的ServerGroupName参数非法'], + ['code' => 'IllegalParamFormat.ParseCreateRsPoolRequestFailed', 'message' => 'The param format of CreateRsPoolRequest is illegal.', 'http_code' => 400, 'description' => 'CreateRsPoolRequestFailed的参数格式不合法,请参考OpenAPI文档检查请求参数。'], + ['code' => 'IllegalParamSize.certificateIds', 'message' => 'The param size of certificateIds or caCertificateIds is illegal.', 'http_code' => 400, 'description' => '证书的id只能有一个,请检查是否重复输入。'], + ['code' => 'IncorrectBusinessStatus.CommonBandwidthPackage', 'message' => 'The business status of CommonBandwidthPackage is incorrect.', 'http_code' => 400, 'description' => '请求参数中使用的共享带宽包已被锁定,请检查是否欠费。'], + ['code' => 'IncorrectStatus.%s', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '%s的状态不正确,不允许进行当前操作'], + ['code' => 'IncorrectStatus.certificate', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s [%s]的状态无效。'], + ['code' => 'IncorrectStatus.Eni', 'message' => 'Eni status is invalid.', 'http_code' => 400, 'description' => '弹性网卡状态不合法。'], + ['code' => 'IncorrectStatus.listener', 'message' => 'The status of listener [%s] is incorrect.', 'http_code' => 400, 'description' => '监听的状态无法进行当前操作,请检查监听当前是否处于其他操作下。'], + ['code' => 'IncorrectStatus.listener', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s [%s]的状态无效。'], + ['code' => 'IncorrectStatus.loadbalancer', 'message' => 'The status of loadbalancer [%s] is incorrect.', 'http_code' => 400, 'description' => '负载均衡的状态无法进行当前操作,请检查负载均衡当前是否处于其他操作下。'], + ['code' => 'IncorrectStatus.loadbalancer', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s [%s]的状态无效。'], + ['code' => 'IncorrectStatus.serverGroup', 'message' => 'The status of servergroup [%s] is incorrect.', 'http_code' => 400, 'description' => '服务器组的状态无法进行当前操作,请检查服务器组当前是否处于其他操作下。'], + ['code' => 'IncorrectStatus.ZoneId', 'message' => 'The zoneId status of eni [%s] is incorrect.', 'http_code' => 400, 'description' => '弹性网卡的可用区状态当前无法操作,请等待前置操作完成。'], + ['code' => 'InvalidParameter', 'message' => 'Invalid parameter, please check the parameter input.', 'http_code' => 400, 'description' => '无效参数,请检查参数输入。'], + ['code' => 'InvalidZones', 'message' => 'The current zone list is illegal.', 'http_code' => 400, 'description' => 'Zone maping中使用的可用区非法。'], + ['code' => 'loadBalancerNames', 'message' => 'size must be between 1 and 10', 'http_code' => 400, 'description' => '参数大小必须在1-10之间。'], + ['code' => 'Mismatch.%s', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => '对于资源对象%s和%s,参数%s缺失'], + ['code' => 'Mismatch.Protocol', 'message' => 'The Protocol is mismatched for %s and %s.', 'http_code' => 400, 'description' => '监听和服务器组的协议不匹配。'], + ['code' => 'Mismatch.ServerType', 'message' => 'The ServerType is mismatched for %s and %s.', 'http_code' => 400, 'description' => 'ServerType不匹配'], + ['code' => 'Mismatch.vpc', 'message' => 'The Vpc is mismatched for %s and %s.', 'http_code' => 400, 'description' => '资源%s和资源%s的VPC不匹配。请检查两种资源是否在同一个VPC下。'], + ['code' => 'Mismatch.VpcId', 'message' => 'The VpcId is mismatched for %s and %s.', 'http_code' => 400, 'description' => '资源%s和资源%s的VpcId不匹配。请检查两种资源是否在同一个VPC下。'], + ['code' => 'Mismatch.VswitchIdAndPrivateIPv4Address', 'message' => 'The VSwitch ID and IPv4Address are mismatched.', 'http_code' => 400, 'description' => 'VSwitch ID与IPV4地址不匹配,因为指定的IPV4地址已经被分配或者不在指定CIDR中,请检查输入参数。'], + ['code' => 'Mismatch.ZoneIdAndVswitchId', 'message' => 'The ZoneIdAndVswitchId is mismatched for %s and %s.', 'http_code' => 400, 'description' => 'ZoneId和VswitchId缺失,请检查输入参数。'], + ['code' => 'MissingParam.%s', 'message' => 'The parameter of %s is missing.', 'http_code' => 400, 'description' => '参数%s缺失,请检查输入参数。'], + ['code' => 'MissingParam.Certificate', 'message' => 'The param of certificate is missing.', 'http_code' => 400, 'description' => '参数Certificate缺失。'], + ['code' => 'MissingParam.IP', 'message' => 'The parameter of IP is missing.', 'http_code' => 400, 'description' => '输入的ip参数缺失,请检查输入参数。'], + ['code' => 'MissingParam.IP', 'message' => 'The param of IP is missing.', 'http_code' => 400, 'description' => '输入的IP参数缺失,请检查您的输入参数。'], + ['code' => 'MissingParam.ServerGroupId', 'message' => 'The param of ServerGroupId is missing.', 'http_code' => 400, 'description' => '参数ServerGroupId缺失,请检查输入参数。'], + ['code' => 'OperationDenied.%s', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '因为%s,当前操作是不允许的'], + ['code' => 'OperationDenied.AddressTypeNotChanged', 'message' => 'The operation is not allowed because of AddressTypeNotChanged.', 'http_code' => 400, 'description' => '该操作不被允许,因为地址类型未更改。'], + ['code' => 'OperationDenied.CaCertificateUsed', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '资源%s已被关联。'], + ['code' => 'OperationDenied.DefaultCertificateUsed', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'], + ['code' => 'OperationDenied.DeletionProtectionEnabled', 'message' => 'The operation is not allowed because of DeletionProtectionEnabled.', 'http_code' => 400, 'description' => '由于启用了删除保护(DeletionProtectionEnabled),不允许进行此操作。'], + ['code' => 'OperationDenied.EipAlreadyInBandwidthPackage', 'message' => 'The operation is not allowed because of EipAlreadyInBandwidthPackage.', 'http_code' => 400, 'description' => '由于 EIP已经加入共享带宽包的原因,操作不被允许。'], + ['code' => 'OperationDenied.IntranetLoadBalancer', 'message' => 'The operation is not allowed because of IntranetLoadBalancer.', 'http_code' => 400, 'description' => '由于是内网负载均衡器(IntranetLoadBalancer),不允许进行此操作。'], + ['code' => 'OperationDenied.Ipv6IntranetInstance', 'message' => 'The operation is not allowed because of Ipv6IntranetInstance.', 'http_code' => 400, 'description' => '私网ipv6负载均衡实例不支持当前操作。'], + ['code' => 'OperationDenied.NonDualStackInstance', 'message' => 'The operation is not allowed because of NonDualStackInstance.', 'http_code' => 400, 'description' => '由于不存在双栈实例,因此操作不被允许。'], + ['code' => 'OperationDenied.OnlyPayByTrafficSupported', 'message' => 'The operation is not allowed because of OnlyPayByTrafficSupported.', 'http_code' => 400, 'description' => '由于仅支持按流量计费,因此不允许进行此操作。'], + ['code' => 'OperationDenied.OnlyPostPaidSupported', 'message' => 'The operation is not allowed because of OnlyPostPaidSupported.', 'http_code' => 400, 'description' => '由于仅支持后付费,因此不允许进行此操作。'], + ['code' => 'OperationDenied.ProtectedPrivateIPv4AddressChanged', 'message' => 'The operation is not allowed because of ProtectedPrivateIPv4AddressChanged.', 'http_code' => 400, 'description' => '由于受保护的私有 IPv4 地址已更改的原因,操作不被允许。'], + ['code' => 'OperationDenied.Protocol', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'], + ['code' => 'OperationDenied.RegionNotSupportAnycast', 'message' => 'The operation is not allowed because of RegionNotSupportAnycast.', 'http_code' => 400, 'description' => '当前地域不支持AnyCast。'], + ['code' => 'OperationDenied.RegionNotSupportHDMonitor', 'message' => 'The operation is not allowed because of RegionNotSupportHDMonitor.', 'http_code' => 400, 'description' => '当前区域不支持秒级监控。'], + ['code' => 'OperationDenied.ServerGroupNotSupportIpv6', 'message' => 'The operation is not allowed because of ServerGroupNotSupportIpv6.', 'http_code' => 400, 'description' => '因为服务器组不支持IPV6,所以操作失败。'], + ['code' => 'OperationDenied.ServiceLinkedRoleNotExist', 'message' => 'The operation is not allowed because of ServiceLinkedRoleNotExist.', 'http_code' => 400, 'description' => '由于服务关联角色不存在(ServiceLinkedRoleNotExist),不允许进行此操作。请检查RAM中是否给NLB进行了授权。'], + ['code' => 'OperationDenied.VpcNotSupportIpv6', 'message' => 'The operation is not allowed because of VpcNotSupportIpv6.', 'http_code' => 400, 'description' => '使用的VPC不支持Ipv6。'], + ['code' => 'OperationDenied.ZoneVSwitchChanged', 'message' => 'The operation is not allowed because of ZoneVSwitchChanged.', 'http_code' => 400, 'description' => '已存在的可用区不允许虚拟交换机发生变化。'], + ['code' => 'OperationFailed.%s', 'message' => 'The operation failed because of %s.', 'http_code' => 400, 'description' => '因为%操作当前API失败'], + ['code' => 'OperationFailed.CreateOrderError', 'message' => 'Operation failed because CreateOrderError.', 'http_code' => 400, 'description' => '因为创建订单失败,所以操作失败。'], + ['code' => 'OperationFailed.DefaultCertificateNotFound', 'message' => 'The operation failed because of %s.', 'http_code' => 400, 'description' => '操作失败,原因是%s。'], + ['code' => 'OperationFailed.DuplicateZones.', 'message' => 'The operation failed because of Can not Specify duplicate zones.', 'http_code' => 400, 'description' => '由于指定了重复的可用区,操作失败。请修改参数。'], + ['code' => 'OperationFailed.GetXipFailed', 'message' => 'Operation failed because GetXipFailed.', 'http_code' => 400, 'description' => '操作失败,因为实例还在创建中。'], + ['code' => 'OperationFailed.NotExist.ResourceGroup', 'message' => 'Operation failed because ResourceGroup not exist.', 'http_code' => 400, 'description' => '指定的资源组不存在。'], + ['code' => 'OperationFailed.StatusCheckFail.ResourceGroup', 'message' => 'The operation failed because of StatusCheckFail.ResourceGroup.', 'http_code' => 400, 'description' => '因为资源组状态检查失败,所以操作失败。'], + ['code' => 'OperationFailed.UnpaidBill', 'message' => 'The operation failed because of UnpaidBill.', 'http_code' => 400, 'description' => '您有欠费账单,不符合购买条件。请先充值结清账单后再购买。'], + ['code' => 'OperationFailed.vSwitchNotSupportIpv6', 'message' => 'The operation failed because of vSwitchNotSupportIpv6.', 'http_code' => 400, 'description' => '所使用的虚拟交换机(vSwicth)不支持ipv6协议,请确认输入参数。'], + ['code' => 'OperationFailed.ZoneAlreadyExist', 'message' => 'The operation failed because of ZoneAlreadyExist.', 'http_code' => 400, 'description' => '参数中指定的可用区已经存在,请检查输入参数。'], + ['code' => 'QuotaExceeded.%s', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '%s的配额超过限制,已使用%s/%s'], + ['code' => 'QuotaExceeded.QuotaInsufficient', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '配额不足,已使用%s/%s。请在配额中心中修改配额大小。'], + ['code' => 'ResourceAlreadyAssociated.%s', 'message' => 'The specified resource of %s is already associated.', 'http_code' => 400, 'description' => '所请求的资源%s已经被关联。'], + ['code' => 'ResourceAlreadyAssociated.AllocationId', 'message' => 'The specified resource of %s is already associated.', 'http_code' => 400, 'description' => '指定的资源AllocationId已经被关联。'], + ['code' => 'ResourceAlreadyAssociated.Certificate', 'message' => 'The specified resource %s is already associated.', 'http_code' => 400, 'description' => '资源%s已被关联。'], + ['code' => 'ResourceAlreadyAssociated.loadbalancer', 'message' => 'The specified resource of loadbalancer is already associated.', 'http_code' => 400, 'description' => '指定的负载均衡已经和共享带宽包绑定过了。'], + ['code' => 'ResourceInConfiguring.%s', 'message' => 'The specified resource of %s is being configured, please try again later.', 'http_code' => 400, 'description' => '指定的资源%s正在配置,请稍后重试'], + ['code' => 'ResourceInConfiguring.loadbalancer', 'message' => 'The specified resource of loadbalancer is being configured, please try again later.', 'http_code' => 400, 'description' => '正在配置指定的负载均衡资源,请稍后重试。'], + ['code' => 'ResourceInConfiguring.VswitchId', 'message' => 'The specified resource of VswitchId is being configured, please try again later.', 'http_code' => 400, 'description' => '正在配置指定的虚拟交换机资源,请稍后重试。'], + ['code' => 'ResourceInCreating.%s', 'message' => 'The specified resource of %s is creating, please try again later.', 'http_code' => 400, 'description' => '指定的资源%s正在创建中,请稍后重试。'], + ['code' => 'ResourceInCreating.loadbalancer', 'message' => 'The specified resource of loadbalancer is creating, please try again later.', 'http_code' => 400, 'description' => '正在创建指定的负载均衡器资源,请稍后重试。'], + ['code' => 'ResourceInUse.%s', 'message' => 'The specified resource of %s is in use.', 'http_code' => 400, 'description' => '指定的资源%s正在使用中'], + ['code' => 'ResourceInUse.IP', 'message' => 'The specified resource of IP is in use.', 'http_code' => 400, 'description' => '传入的IP不能是NLB的eni地址,请检查参数。'], + ['code' => 'ResourceInUse.SecurityPolicy', 'message' => 'The specified resource of SecurityPolicy is in use.', 'http_code' => 400, 'description' => 'SecurityPolicy变配中,请稍后重试。'], + ['code' => 'ResourceInUse.ServerGroup', 'message' => 'The specified resource of ServerGroup is in use.', 'http_code' => 400, 'description' => '指定的服务器组资源正在使用中,请稍后重试。'], + ['code' => 'ResourceNotAssociated.Certificate', 'message' => 'The specified resource %s is not associated.', 'http_code' => 400, 'description' => '资源%s未被关联。'], + ['code' => 'ResourceNotAssociated.loadbalancer', 'message' => 'Thre resource is not associated with loadbalancer.', 'http_code' => 400, 'description' => '当前带宽包没有和参数中的lb关联,请检查输入参数。'], + ['code' => 'ResourceNotEnough.%s', 'message' => 'The specified resource of %s is not enough.', 'http_code' => 400, 'description' => '所需要的资源%s不足了'], + ['code' => 'ResourceNotEnough.VSwitchIp', 'message' => 'The specified resource of VSwitchIp is not enough.', 'http_code' => 400, 'description' => '所指定的虚拟交换机(vSwitch) IP资源不足。'], + ['code' => 'ResourceNotFound.%s', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '无法找到所需要使用的资源%s'], + ['code' => 'ResourceNotFound.AllocationId', 'message' => 'The specified resource of AllocationId is not found.', 'http_code' => 404, 'description' => '指定的AllocationId不存在,请检查输入参数。'], + ['code' => 'ResourceNotFound.AnycastInstance', 'message' => 'The specified resource of AnycastInstance is not found.', 'http_code' => 404, 'description' => '找不到指定的 Anycast 实例资源。'], + ['code' => 'ResourceNotFound.BackendServer', 'message' => 'The specified resource of BackendServer is not found.', 'http_code' => 404, 'description' => '找不到指定的后端服务器资源,请检查输入的参数。'], + ['code' => 'ResourceNotFound.BandwidthPackageId', 'message' => 'The specified resource of BandwidthPackageId is not found.', 'http_code' => 404, 'description' => '找不到指定的带宽包资源。请检查输入的参数。'], + ['code' => 'ResourceNotFound.CaCertificate', 'message' => 'The specified resource of CaCertificate is not found.', 'http_code' => 404, 'description' => 'Ca证书不存在,请检查输入参数。'], + ['code' => 'ResourceNotFound.Certificate', 'message' => 'The specified resource %s is not found.', 'http_code' => 400, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.CommonBandwidthPackage', 'message' => 'The specified resource of CommonBandwidthPackage is not found.', 'http_code' => 404, 'description' => '共享带宽包资源不存在,请检查输入参数。'], + ['code' => 'ResourceNotFound.Eci', 'message' => 'The specified resource of Eci is not found.', 'http_code' => 404, 'description' => '找不到指定的弹性容器实例(Eci)资源,请检查输入的参数。'], + ['code' => 'ResourceNotFound.Ecs', 'message' => 'The specified resource of Ecs is not found.', 'http_code' => 404, 'description' => '找不到指定的ECS资源, 请检查输入的参数。'], + ['code' => 'ResourceNotFound.Eni', 'message' => 'The specified resource Eni is not found.', 'http_code' => 404, 'description' => '没有找到指定的弹性网卡实例,请检查输入参数。'], + ['code' => 'ResourceNotFound.HdMonitorConfigNotExist', 'message' => 'The specified resource of HdMonitorConfigNotExist is not found.', 'http_code' => 404, 'description' => 'HdMonitorConfig 不存在,请检查输入参数。'], + ['code' => 'ResourceNotFound.Ipv6Gateway', 'message' => 'The specified resource of Ipv6Gateway is not found.', 'http_code' => 404, 'description' => '找不到指定的 IPv6 网关资源。'], + ['code' => 'ResourceNotFound.JobId', 'message' => 'The specified resource of JobId is not found.', 'http_code' => 404, 'description' => '找不到指定的JobId资源,请检查输入参数。'], + ['code' => 'ResourceNotFound.listener', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.loadBalancer', 'message' => 'The specified resource of loadbalancer is not found.', 'http_code' => 404, 'description' => '找不到指定的负载均衡器资源,请检查输入参数。'], + ['code' => 'ResourceNotFound.ResourceGroup', 'message' => 'The param of resourceGroup not existed.', 'http_code' => 404, 'description' => '资源组不存在。'], + ['code' => 'ResourceNotFound.SecurityGroup', 'message' => 'The specified resource of SecurityGroup is not found.', 'http_code' => 404, 'description' => '找不到指定的安全组资源,请检查输入参数。'], + ['code' => 'ResourceNotFound.securitypolicy', 'message' => 'The specified resource of securitypolicy is not found.', 'http_code' => 404, 'description' => '找不到指定的安全策略资源。请检查输入参数。'], + ['code' => 'ResourceNotFound.serverGroup', 'message' => 'The specified resource of serverGroup is not found.', 'http_code' => 404, 'description' => '找不到指定的服务器组资源,请检查输入参数。'], + ['code' => 'ResourceNotFound.Vpc', 'message' => 'The specified resource of Vpc is not found.', 'http_code' => 404, 'description' => '找不到指定的VPC资源,请检查输入参数。'], + ['code' => 'ResourceNotFound.VSwitch', 'message' => 'The specified resource of vSwitch is not found.', 'http_code' => 404, 'description' => '找不到指定的虚拟交换机资源,请检查输入参数。'], + ['code' => 'SystemBusy', 'message' => 'System is busy, please try again later.', 'http_code' => 400, 'description' => '系统繁忙,请稍后重试'], + ['code' => 'TagInvokeError', 'message' => 'resourceType:%s ,error msg:%s', 'http_code' => 400, 'description' => '资源类型:%s, tag相关报错为%s'], + ['code' => 'TagInvokeError', 'message' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', 'http_code' => 400, 'description' => '在资源标签中找不到资源定义,请检查RAM是否给NLB添加授权。'], + ['code' => 'Throttling.User', 'message' => 'Request was denied due to api flow control.', 'http_code' => 400, 'description' => '由于触发流控,请求被拒绝。'], + ['code' => 'UnauthorizedRegion', 'message' => 'The specified region of %s is not authorized.', 'http_code' => 403, 'description' => '当前region还没有获得授权。'], + ['code' => 'UnauthorizedZone', 'message' => 'The specified zone of %s is not authorized.', 'http_code' => 403, 'description' => '指定的可用区%s未被授权使用'], + ['code' => 'UpdateSecurityPolicyFailed', 'message' => 'The operation failed because of Security Policy is not changed.', 'http_code' => 400, 'description' => '因为安全策略没有发生变化,所以操作失败,请检查输入参数。'], + ], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTagResources'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetListenerAttribute'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UntagResources'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListServerGroupServers'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerZones'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteSecurityPolicy'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DetachCommonBandwidthPackageFromLoadBalancer'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListServerGroups'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'MoveResourceGroup'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetListenerHealthStatus'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListSystemSecurityPolicy'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SetHdMonitorRegionConfig'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateListenerAttribute'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateLoadBalancer'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateServerGroupAttribute'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateServerGroup'], + ['threshold' => '20', 'countWindow' => 1, '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' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListListeners'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'LoadBalancerJoinSecurityGroup'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisassociateAdditionalCertificatesWithListener'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableLoadBalancerIpv6Internet'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteListener'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateAdditionalCertificatesWithListener'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetLoadBalancerAttribute'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListSecurityPolicy'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AttachCommonBandwidthPackageToLoadBalancer'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLoadBalancers'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListListenerCertificates'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateSecurityPolicyAttribute'], + ['threshold' => '-1', 'countWindow' => 1, 'regionId' => '*'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerAttribute'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveServersFromServerGroup'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerAddressTypeConfig'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRegions'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateSecurityPolicy'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelShiftLoadBalancerZones'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableLoadBalancerIpv6Internet'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StopListener'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateListener'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerProtection'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeHdMonitorRegionConfig'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TagResources'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'LoadBalancerLeaveSecurityGroup'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateServerGroupServersAttribute'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartShiftLoadBalancerZones'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartListener'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJobStatus'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ram' => [ + 'productCode' => 'NLB', + 'productName' => '负载均衡', + 'ramCodes' => ['nlb'], + 'ramLevel' => '资源级', + 'ramConditions' => [ + [ + 'name' => 'nlb:ListenerProtocol', + 'schema' => [ + 'type' => 'String', + 'description' => '网络型负载均衡监听协议', + 'enums' => ['TCP', 'UDP', 'TCPSSL'], + ], + ], + [ + 'name' => 'nlb:AddressType', + 'schema' => [ + 'type' => 'String', + 'description' => '网络型负载均衡IPv4 地址类型', + 'enums' => ['Internet', 'Intranet'], + ], + ], + [ + 'name' => 'nlb:SecurityPolicyId', + 'schema' => ['type' => 'String', 'description' => '网络型负载均衡安全策略'], ], - 'security' => [ - [ - 'AK' => [], + ], + 'ramActions' => [ + [ + 'apiName' => 'ListTagResources', + 'description' => '查询资源标签', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServergroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'ListListeners', + 'description' => '查询监听', 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'title' => 'add 必选', - 'description' => '异步任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'ramAction' => [ + 'action' => 'nlb:ListListeners', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'Listener', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:listener/*'], ], ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + ], + [ + 'apiName' => 'EnableLoadBalancerIpv6Internet', + 'description' => '开启NLB实例IPv6公网', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:EnableLoadBalancerIpv6Internet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'RpcResponse<GetJodResponse>', - 'description' => '查询异步任务结果。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], - 'Status' => [ - 'description' => '任务状态。取值:'."\n" - ."\n" - .'- **Succeeded**:成功。'."\n" - .'- **Processing**:执行中。', - 'type' => 'string', - 'example' => 'Succeeded', - ], - ], + [ + 'apiName' => 'ListListenerCertificates', + 'description' => '查询TCPSSL监听证书', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListListenerCertificates', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', + [ + 'apiName' => 'CancelShiftLoadBalancerZones', + 'description' => '把可用区的EIP/VIP加到DNS中', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:CancelShiftLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + ], + [ + 'apiName' => 'CreateServerGroup', + 'description' => '创建服务器组', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/*'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], ], - [ - [ - 'errorCode' => 'ResourceNotFound.JobId', - 'errorMessage' => 'The specified resource of JobId is not found.', + ], + [ + 'apiName' => 'CreateLoadBalancer', + 'description' => '创建网络型负载均衡实例', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nlb:AddressType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/*'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'EipAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"Status\\": \\"Succeeded\\"\\n}","errorExample":""},{"type":"xml","example":"<GetJobStatusResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <Status>Succeeded</Status>\\n</GetJobStatusResponse>","errorExample":""}]', - 'title' => '查询异步任务结果', - ], - 'ListAsynJobs' => [ - 'summary' => '批量查询异步任务结果。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'AddServersToServerGroup', + 'description' => '添加后端服务器', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:AddServersToServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:eni/{#ServerId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:eci:{#regionId}:{#accountId}:containergroup/{#ServerId}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'GetListenerHealthStatus', + 'description' => '查询监听健康检查状态', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '259936', - 'abilityTreeNodes' => [ - 'FEATUREslbZQW9H1', - ], - ], - 'parameters' => [ - [ - 'name' => 'JobIds', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '任务 ID 列表。', - 'type' => 'array', - 'items' => [ - 'description' => '异步任务 ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'bfb728bf-53a8-4886-84cb-829******', - ], - 'required' => false, + 'ramAction' => [ + 'action' => 'nlb:GetListenerHealthStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '请求ID。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], - 'Jobs' => [ - 'description' => '任务列表。', - 'type' => 'array', - 'items' => [ - 'description' => '任务列表。', - 'type' => 'object', - 'properties' => [ - 'Id' => [ - 'description' => '任务 ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B5****', - ], - 'Status' => [ - 'description' => '任务状态,取值:'."\n" - ."\n" - .'- **Succeeded**:成功。'."\n" - .'- **Failed**:失败。'."\n" - .'- **Processing**:执行。', - 'type' => 'string', - 'example' => 'Succeeded', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => '列表条目数。', - 'type' => 'string', - 'example' => '1000', - ], - ], + [ + 'apiName' => 'DeleteSecurityPolicy', + 'description' => '删除自定义安全策略', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + [ + 'apiName' => 'ListServerGroups', + 'description' => '查询服务器组', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListServerGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/*'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], ], ], - [ - [ - 'errorCode' => 'ResourceNotFound.JobId', - 'errorMessage' => 'The specified resource of JobId is not found.', + ], + [ + 'apiName' => 'GetLoadBalancerAttribute', + 'description' => '查询负载均衡实例的详细信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetLoadBalancerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"Jobs\\": [\\n {\\n \\"Id\\": \\"365F4154-92F6-4AE4-92F8-7FF34B5****\\",\\n \\"Status\\": \\"Succeeded\\"\\n }\\n ],\\n \\"TotalCount\\": \\"1000\\"\\n}","type":"json"}]', - 'title' => '批量查询异步任务结果', - ], - 'TagResources' => [ - 'summary' => '为指定的资源列表统一创建并绑定标签。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'UpdateLoadBalancerProtection', + 'description' => '修改删除保护', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerProtection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeCode' => '141891', - 'abilityTreeNodes' => [ - 'FEATUREslbTUH0QC', + [ + 'apiName' => 'UpdateListenerAttribute', + 'description' => '更新监听配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateListenerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nlb:SecurityPolicyId', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'ResourceId', - 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'description' => '资源ID。一次调用最多支持添加50个资源ID。', - 'type' => 'array', - 'items' => [ - 'description' => '资源ID。一次调用最多支持添加50个资源ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'nlb-nrnrxwd15en27r****', - ], - 'required' => true, - 'maxItems' => 50, - 'minItems' => 1, + [ + 'apiName' => 'UpdateLoadBalancerAddressTypeConfig', + 'description' => '变更网络类型配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerAddressTypeConfig', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nlb:AddressType', 'validationType' => 'always'], ], - ], - [ - 'name' => 'Tag', - 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持64个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" - ."\n" - .'一次调用最多支持添加20个标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。支持字符包括字母、数字、下划线 (_)、点 (.)、冒号 (:)、斜线 (/)、等号 (=)、加号 (+)、减号 (-)、@符号 (@) 。'."\n" - ."\n" - .'一次调用最多支持添加20个标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 20, - 'minItems' => 1, + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], - [ - 'name' => 'ResourceType', - 'in' => 'formData', - 'schema' => [ - 'description' => '资源类型,取值:'."\n" - ."\n" - .'- **loadbalancer**:网络型负载均衡实例。'."\n" - .'- **securitypolicy**:安全策略。'."\n" - .'- **servergroup**:服务器组。', - 'type' => 'string', - 'required' => true, - 'example' => 'loadbalancer', + ], + [ + 'apiName' => 'StartListener', + 'description' => '启动监听', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:StartListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], - [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会为资源创建并绑定标签。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + ], + [ + 'apiName' => 'UntagResources', + 'description' => '删除资源的标签', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:UntagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], - [ - 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + ], + [ + 'apiName' => 'AttachCommonBandwidthPackageToLoadBalancer', + 'description' => '实例绑定共享带宽包', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:AttachCommonBandwidthPackageToLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'CommonBandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:CommonBandwidthPackage/{#CommonBandwidthPackageId}'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '资源所在的地域ID。'."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'ListServerGroupServers', + 'description' => '查询服务器', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListServerGroupServers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:serverGroup/{#ServerGroupId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'RpcResponse<BaseResult>', - 'description' => '绑定标签。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - ], + [ + 'apiName' => 'DeleteListener', + 'description' => '删除监听', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', + [ + 'apiName' => 'UpdateSecurityPolicyAttribute', + 'description' => '更新自定义安全策略属性', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateSecurityPolicyAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], ], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + ], + [ + 'apiName' => 'UpdateLoadBalancerAttribute', + 'description' => '更新负载均衡实例属性', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], - [ - [ - 'errorCode' => 'ResourceNotFound.securitypolicy', - 'errorMessage' => 'The specified resource of securitypolicy is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ], + [ + 'apiName' => 'GetListenerAttribute', + 'description' => '查询监听的属性', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetListenerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"<TagResourcesResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</TagResourcesResponse>","errorExample":""}]', - 'title' => '给资源添加标签', - ], - 'UntagResources' => [ - 'summary' => '为指定的资源列表统一解绑标签。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateSecurityPolicy', + 'description' => '创建自定义安全策略', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'abilityTreeCode' => '141866', - 'abilityTreeNodes' => [ - 'FEATUREslbTUH0QC', + [ + 'apiName' => 'DisableLoadBalancerIpv6Internet', + 'description' => '关闭NLB实例IPv6公网', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:DisableLoadBalancerIpv6Internet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'ResourceId', - 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'description' => '资源ID。一次调用最多支持添加50个资源ID。', - 'type' => 'array', - 'items' => [ - 'description' => '资源ID。一次调用最多支持添加50个资源ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'nlb-nrnrxwd15en27r****', - ], - 'required' => true, - 'maxItems' => 50, - 'minItems' => 1, + [ + 'apiName' => 'StopListener', + 'description' => '停止监听', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:StopListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], - [ - 'name' => 'TagKey', - 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'description' => '要删除标签的标签键。一次调用最多支持删除20个标签。', - 'type' => 'array', - 'items' => [ - 'description' => '要删除标签的标签键。一次调用最多支持删除20个标签。'."\n" - ."\n" - .'> 如果不指定**TagKey**,会删除掉这个实例上所有的标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'required' => false, - 'maxItems' => 20, - 'minItems' => 1, + ], + [ + 'apiName' => 'StartShiftLoadBalancerZones', + 'description' => '把可用区的EIP/VIP从域名解析中摘除', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:StartShiftLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], - [ - 'name' => 'All', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否解绑资源的所有标签。取值:'."\n" - ."\n" - .'- **true**:解绑资源的所有标签。'."\n" - .'- **false**(默认值):不解绑资源的所有标签。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + ], + [ + 'apiName' => 'UpdateLoadBalancerZones', + 'description' => '更新实例可用区及可用区属性', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], - [ - 'name' => 'ResourceType', - 'in' => 'formData', - 'schema' => [ - 'description' => '资源类型。取值:'."\n" - ."\n" - .'- **loadbalancer**:网络型负载均衡实例。'."\n" - .'- **securitypolicy**:安全策略。'."\n" - .'- **servergroup**:服务器组。', - 'type' => 'string', - 'required' => true, - 'example' => 'loadbalancer', + ], + [ + 'apiName' => 'CreateListener', + 'description' => '创建监听', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateListener', + 'authLevel' => 'operate', + 'actionConditions' => [ + ['conditionKey' => 'nlb:ListenerProtocol', 'validationType' => 'always'], + ['conditionKey' => 'nlb:SecurityPolicyId', 'validationType' => 'always'], ], - ], - [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会为资源解绑标签。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'], ], ], - [ - 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + ], + [ + 'apiName' => 'ListLoadBalancers', + 'description' => '查询负载均衡实例信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListLoadBalancers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/*'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '资源所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'ListSecurityPolicy', + 'description' => '查询自定义安全策略', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'RpcResponse<BaseResult>', - 'description' => '解绑标签。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - ], + [ + 'apiName' => 'DisassociateAdditionalCertificatesWithListener', + 'description' => '解除关联监听和扩展证书', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:DisassociateAdditionalCertificatesWithListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', + [ + 'apiName' => 'LoadBalancerJoinSecurityGroup', + 'description' => '绑定安全组', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:LoadBalancerJoinSecurityGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityGroup', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:securitygroup/{#SecurityGroupId}'], ], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + ], + [ + 'apiName' => 'ListAsynJobs', + 'description' => '批量查询异步任务结果', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListAsynJobs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ], + [ + 'apiName' => 'TagResources', + 'description' => '给资源添加标签', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:TagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"<UntagResourcesResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UntagResourcesResponse>","errorExample":""}]', - 'title' => '删除资源的标签', - ], - 'ListTagResources' => [ - 'summary' => '查询指定资源标签。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DetachCommonBandwidthPackageFromLoadBalancer', + 'description' => '实例解绑共享带宽包', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:DetachCommonBandwidthPackageFromLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '141863', - 'abilityTreeNodes' => [ - 'FEATUREslbS3YPBZ', - 'FEATUREslb01BKVK', + [ + 'apiName' => 'UpdateServerGroupServersAttribute', + 'description' => '更新后端服务器配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateServerGroupServersAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'formData', - 'schema' => [ - 'description' => '资源类型。取值:'."\n" - ."\n" - .'- **loadbalancer**:网络型负载均衡实例。'."\n" - .'- **securitypolicy**:安全策略。'."\n" - .'- **servergroup**:服务器组。'."\n" - .'- **listener**:监听。', - 'type' => 'string', - 'required' => true, - 'example' => 'loadbalancer', + [ + 'apiName' => 'DescribeHdMonitorRegionConfig', + 'description' => '查询秒级监控配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:DescribeHdMonitorRegionConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ResourceId', - 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'description' => '资源ID。', - 'type' => 'array', - 'items' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'nlb-nrnrxwd15en27r****', - ], - 'required' => false, - 'maxItems' => 50, - 'minItems' => 1, + ], + [ + 'apiName' => 'DeleteServerGroup', + 'description' => '删除服务器组', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], ], ], - [ - 'name' => 'Tag', - 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - 'minItems' => 1, + ], + [ + 'apiName' => 'DeleteLoadBalancer', + 'description' => '删除负载均衡实例', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], - [ - 'name' => 'NextToken', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', + ], + [ + 'apiName' => 'SetHdMonitorRegionConfig', + 'description' => '配置秒级监控', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:SetHdMonitorRegionConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'MaxResults', - 'in' => 'formData', - 'schema' => [ - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**50**,默认值为**50**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', + ], + [ + 'apiName' => 'MoveResourceGroup', + 'description' => '变更资源所属的资源组', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:MoveResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:serverGroup/{#serverGroupId}'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '您可以通过调用[DescribeRegions](~~443657~~)接口获取地域ID。 ', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'GetJobStatus', + 'description' => '查询异步任务结果', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetJobStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'RpcResponse<ListTagResourcesResponse>', - 'description' => '查询资源标签。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'TagResources' => [ - 'description' => '由资源及其标签组成的集合,包含了资源ID、资源类型和标签键值等信息。', - 'type' => 'array', - 'items' => [ - 'description' => '由资源及其标签组成的集合,包含了资源ID、资源类型和标签键值等信息。', - 'type' => 'object', - 'properties' => [ - 'ResourceId' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'example' => 'nlb-nrnrxwd15en27r****', - ], - 'ResourceType' => [ - 'description' => '资源类型,取值:'."\n" - ."\n" - .'- **loadbalancer**:网络型负载均衡实例。'."\n" - .'- **securitypolicy**:安全策略。'."\n" - .'- **servergroup**:服务器组。', - 'type' => 'string', - 'example' => 'loadbalancer', - ], - 'RegionNo' => [ - 'description' => '地域信息。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'AliUid' => [ - 'description' => '用户UID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1429****39299349', - ], - 'TagKey' => [ - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'env', - ], - 'TagValue' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'product', - ], - 'Scope' => [ - 'description' => '标签可见范围。', - 'type' => 'string', - 'example' => 'public', - ], - 'Category' => [ - 'description' => '标签类型。取值:'."\n" - ."\n" - .'- **Custom**:自定义标签。'."\n" - .'- **System**:系统标签。'."\n" - .'- **All**:全部标签。'."\n", - 'type' => 'string', - 'example' => 'All', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'NextToken' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => '分批次查询时每次显示的条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - ], + [ + 'apiName' => 'LoadBalancerLeaveSecurityGroup', + 'description' => '解绑安全组', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:LoadBalancerLeaveSecurityGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityGroup', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:securitygroup/{#SecurityGroupId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam.resourceType', - 'errorMessage' => 'The param of resourceType is illegal.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', + [ + 'apiName' => 'RemoveServersFromServerGroup', + 'description' => '移除后端服务器', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:RemoveServersFromServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], ], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + ], + [ + 'apiName' => 'AssociateAdditionalCertificatesWithListener', + 'description' => '关联扩展证书和监听', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:AssociateAdditionalCertificatesWithListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:loadbalancer/{#LoadBalancerId}'], ], ], - [ - [ - 'errorCode' => 'ResourceNotFound.securitypolicy', - 'errorMessage' => 'The specified resource of securitypolicy is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', + ], + [ + 'apiName' => 'UpdateServerGroupAttribute', + 'description' => '更新服务器组配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateServerGroupAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"nlb-nrnrxwd15en27r****\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"RegionNo\\": \\"cn-hangzhou\\",\\n \\"AliUid\\": 0,\\n \\"TagKey\\": \\"env\\",\\n \\"TagValue\\": \\"product\\",\\n \\"Scope\\": \\"public\\",\\n \\"Category\\": \\"All\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","type":"json"}]', - 'title' => '查询资源标签', - ], - ], - 'endpoints' => [ - [ - 'regionId' => 'cn-qingdao', - 'endpoint' => 'nlb.cn-qingdao.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'nlb.cn-beijing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhangjiakou', - 'endpoint' => 'nlb.cn-zhangjiakou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhengzhou-jva', - 'endpoint' => 'nlb.cn-zhengzhou-jva.aliyuncs.com', - ], - [ - 'regionId' => 'cn-wulanchabu', - 'endpoint' => 'nlb.cn-wulanchabu.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou', - 'endpoint' => 'nlb.cn-hangzhou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'nlb.cn-shanghai.aliyuncs.com', - ], - [ - 'regionId' => 'cn-nanjing', - 'endpoint' => 'nlb.cn-nanjing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-fuzhou', - 'endpoint' => 'nlb.cn-fuzhou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'nlb.cn-shenzhen.aliyuncs.com', - ], - [ - 'regionId' => 'cn-heyuan', - 'endpoint' => 'nlb.cn-heyuan.aliyuncs.com', - ], - [ - 'regionId' => 'cn-guangzhou', - 'endpoint' => 'nlb.cn-guangzhou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-chengdu', - 'endpoint' => 'nlb.cn-chengdu.aliyuncs.com', - ], - [ - 'regionId' => 'cn-wuhan-lr', - 'endpoint' => 'nlb.cn-wuhan-lr.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hongkong', - 'endpoint' => 'nlb.cn-hongkong.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'nlb.ap-northeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-2', - 'endpoint' => 'nlb.ap-northeast-2.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'nlb.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-3', - 'endpoint' => 'nlb.ap-southeast-3.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-5', - 'endpoint' => 'nlb.ap-southeast-5.aliyuncs.com', ], - [ - 'regionId' => 'ap-southeast-6', - 'endpoint' => 'nlb.ap-southeast-6.aliyuncs.com', - ], - [ - 'regionId' => 'us-east-1', - 'endpoint' => 'nlb.us-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-west-1', - 'endpoint' => 'nlb.us-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-west-1', - 'endpoint' => 'nlb.eu-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'nlb.eu-central-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-south-1', - 'endpoint' => 'nlb.ap-south-1.aliyuncs.com', - ], - [ - 'regionId' => 'me-east-1', - 'endpoint' => 'nlb.me-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai-finance-1', - 'endpoint' => 'nlb.cn-shanghai-finance-1.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen-finance-1', - 'endpoint' => 'nlb.cn-shenzhen-finance-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-7', - 'endpoint' => 'nlb.ap-southeast-7.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing-finance-1', - 'endpoint' => 'nlb.cn-beijing-finance-1.aliyuncs.com', - ], - [ - 'regionId' => 'me-central-1', - 'endpoint' => 'nlb.me-central-1.aliyuncs.com', - ], - [ - 'regionId' => 'cn-heyuan-acdr-1', - 'endpoint' => 'nlb.cn-heyuan-acdr-1.aliyuncs.com', - ], - [ - 'regionId' => 'na-south-1', - 'endpoint' => 'nlb.na-south-1.aliyuncs.com', + 'resourceTypes' => [ + ['validationType' => 'conditional', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServergroupId}'], + ['validationType' => 'conditional', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'], + ['validationType' => 'conditional', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'always', 'resourceType' => 'Listener', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:listener/*'], + ['validationType' => 'always', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/*'], + ['validationType' => 'always', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ['validationType' => 'always', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/*'], + ['validationType' => 'always', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ['validationType' => 'conditional', 'resourceType' => 'EipAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['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' => 'CommonBandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:CommonBandwidthPackage/{#CommonBandwidthPackageId}'], + ['validationType' => 'always', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:serverGroup/{#ServerGroupId}'], + ['validationType' => 'always', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/*'], + ['validationType' => 'always', 'resourceType' => 'SecurityGroup', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:securitygroup/{#SecurityGroupId}'], ], ], ]; |
