From 1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634 Mon Sep 17 00:00:00 2001 From: Zhineng Li Date: Sun, 12 Jul 2026 17:11:17 +0800 Subject: update APIs 20260712 --- data/zh_cn/alb/2020-06-16/api-docs.php | 33158 ++++++++++++------------------- 1 file changed, 13073 insertions(+), 20085 deletions(-) (limited to 'data/zh_cn/alb/2020-06-16') diff --git a/data/zh_cn/alb/2020-06-16/api-docs.php b/data/zh_cn/alb/2020-06-16/api-docs.php index 306ed43..80604bc 100644 --- a/data/zh_cn/alb/2020-06-16/api-docs.php +++ b/data/zh_cn/alb/2020-06-16/api-docs.php @@ -1,404 +1,376 @@ '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'Alb', - 'version' => '2020-06-16', - ], + 'info' => ['style' => 'RPC', 'product' => 'Alb', 'version' => '2020-06-16'], 'directories' => [ [ - 'id' => 322361, - 'title' => '地域与可用区', + 'children' => ['GetLoadBalancerAttribute', 'UpdateLoadBalancerAttribute', 'UpdateLoadBalancerZones', 'UpdateLoadBalancerEdition', 'UpdateLoadBalancerAddressTypeConfig', 'DisableDeletionProtection', 'EnableDeletionProtection', 'StartShiftLoadBalancerZones', 'CancelShiftLoadBalancerZones', 'EnableLoadBalancerIpv6Internet', 'DisableLoadBalancerIpv6Internet', 'LoadBalancerJoinSecurityGroup', 'LoadBalancerLeaveSecurityGroup'], 'type' => 'directory', - 'children' => [ - 'DescribeRegions', - 'DescribeZones', - ], - ], - [ - 'id' => 322364, 'title' => '实例', - 'type' => 'directory', - 'children' => [ - 'CreateLoadBalancer', - 'GetLoadBalancerAttribute', - 'DeleteLoadBalancer', - 'UpdateLoadBalancerAttribute', - 'UpdateLoadBalancerZones', - 'UpdateLoadBalancerEdition', - 'UpdateLoadBalancerAddressTypeConfig', - 'ListLoadBalancers', - 'DisableDeletionProtection', - 'EnableDeletionProtection', - 'StartShiftLoadBalancerZones', - 'CancelShiftLoadBalancerZones', - 'EnableLoadBalancerIpv6Internet', - 'DisableLoadBalancerIpv6Internet', - 'LoadBalancerJoinSecurityGroup', - 'LoadBalancerLeaveSecurityGroup', - ], - ], - [ - 'id' => 322381, - 'title' => '监听', - 'type' => 'directory', - 'children' => [ - 'CreateListener', - 'GetListenerAttribute', - 'DeleteListener', - 'ListListeners', - 'StartListener', - 'StopListener', - 'UpdateListenerAttribute', - 'UpdateListenerLogConfig', - 'GetListenerHealthStatus', - ], + 'id' => 46794, ], [ - 'id' => 322391, - 'title' => '服务器组', + 'children' => ['CreateListener', 'GetListenerAttribute', 'DeleteListener', 'ListListeners', 'StartListener', 'StopListener', 'UpdateListenerAttribute', 'UpdateListenerLogConfig', 'GetListenerHealthStatus'], 'type' => 'directory', - 'children' => [ - 'AddServersToServerGroup', - 'CreateServerGroup', - 'DeleteServerGroup', - 'UpdateServerGroupAttribute', - 'UpdateServerGroupServersAttribute', - 'ListServerGroups', - 'ListServerGroupServers', - 'RemoveServersFromServerGroup', - 'ReplaceServersInServerGroup', - ], + 'title' => '监听', + 'id' => 46835, ], [ - 'id' => 322401, - 'title' => '转发规则', + 'children' => ['AddServersToServerGroup', 'CreateServerGroup', 'DeleteServerGroup', 'UpdateServerGroupAttribute', 'UpdateServerGroupServersAttribute', 'ListServerGroups', 'ListServerGroupServers', 'RemoveServersFromServerGroup', 'ReplaceServersInServerGroup'], 'type' => 'directory', - 'children' => [ - 'CreateRule', - 'CreateRules', - 'DeleteRule', - 'DeleteRules', - 'UpdateRuleAttribute', - 'UpdateRulesAttribute', - 'ListRules', - ], + 'title' => '服务器组', + 'id' => 46825, ], [ - 'id' => 322409, - 'title' => '监听器证书', + 'children' => ['CreateRules', 'DeleteRules', 'UpdateRuleAttribute', 'UpdateRulesAttribute'], 'type' => 'directory', - 'children' => [ - 'AssociateAdditionalCertificatesWithListener', - 'DissociateAdditionalCertificatesFromListener', - 'ListListenerCertificates', - ], + 'title' => '转发规则', + 'id' => 46845, ], [ - 'id' => 322413, - 'title' => '共享带宽包', + 'children' => ['AssociateAdditionalCertificatesWithListener', 'DissociateAdditionalCertificatesFromListener', 'ListListenerCertificates'], 'type' => 'directory', - 'children' => [ - 'DetachCommonBandwidthPackageFromLoadBalancer', - 'AttachCommonBandwidthPackageToLoadBalancer', - ], + 'title' => '监听器证书', + 'id' => 46790, ], [ - 'id' => 322416, - 'title' => '访问日志', + 'children' => ['DetachCommonBandwidthPackageFromLoadBalancer', 'AttachCommonBandwidthPackageToLoadBalancer'], 'type' => 'directory', - 'children' => [ - 'DisableLoadBalancerAccessLog', - 'EnableLoadBalancerAccessLog', - ], + 'title' => '共享带宽包', + 'id' => 46870, ], [ - 'id' => 322419, - 'title' => '健康检查', + 'children' => ['DisableLoadBalancerAccessLog', 'EnableLoadBalancerAccessLog'], 'type' => 'directory', - 'children' => [ - 'CreateHealthCheckTemplate', - 'GetHealthCheckTemplateAttribute', - 'DeleteHealthCheckTemplates', - 'UpdateHealthCheckTemplateAttribute', - 'ListHealthCheckTemplates', - 'ApplyHealthCheckTemplateToServerGroup', - ], + 'title' => '访问日志', + 'id' => 46787, ], [ - 'id' => 322426, - 'title' => '安全策略', + 'children' => ['CreateHealthCheckTemplate', 'GetHealthCheckTemplateAttribute', 'DeleteHealthCheckTemplates', 'UpdateHealthCheckTemplateAttribute', 'ListHealthCheckTemplates', 'ApplyHealthCheckTemplateToServerGroup'], 'type' => 'directory', - 'children' => [ - 'CreateSecurityPolicy', - 'DeleteSecurityPolicy', - 'UpdateSecurityPolicyAttribute', - 'ListSecurityPolicies', - 'ListSecurityPolicyRelations', - 'ListSystemSecurityPolicies', - ], + 'title' => '健康检查', + 'id' => 46811, ], [ - 'id' => 322433, - 'title' => '访问控制', + 'children' => ['CreateSecurityPolicy', 'DeleteSecurityPolicy', 'UpdateSecurityPolicyAttribute', 'ListSecurityPolicies', 'ListSecurityPolicyRelations', 'ListSystemSecurityPolicies'], 'type' => 'directory', - 'children' => [ - 'AddEntriesToAcl', - 'CreateAcl', - 'DeleteAcl', - 'UpdateAclAttribute', - 'ListAcls', - 'ListAclEntries', - 'AssociateAclsWithListener', - 'ListAclRelations', - 'DissociateAclsFromListener', - 'RemoveEntriesFromAcl', - ], + 'title' => '安全策略', + 'id' => 46818, ], [ - 'id' => 322444, - 'title' => '资源组', + 'children' => ['AddEntriesToAcl', 'CreateAcl', 'DeleteAcl', 'UpdateAclAttribute', 'ListAcls', 'ListAclEntries', 'AssociateAclsWithListener', 'ListAclRelations', 'DissociateAclsFromListener', 'RemoveEntriesFromAcl'], 'type' => 'directory', - 'children' => [ - 'MoveResourceGroup', - ], + 'title' => '访问控制', + 'id' => 46859, ], [ - 'id' => 322446, - 'title' => '标签', + 'children' => ['ListAsynJobs'], 'type' => 'directory', - 'children' => [ - 'ListTagKeys', - 'ListTagResources', - 'ListTagValues', - 'TagResources', - 'UnTagResources', - ], + 'title' => '异步任务', + 'id' => 46780, ], [ - 'id' => 322452, - 'title' => '异步任务', + 'children' => ['DescribeCapacityReservation'], 'type' => 'directory', - 'children' => [ - 'ListAsynJobs', - ], + 'title' => '资源预留', + 'id' => 248737, ], [ - 'id' => 322454, - 'title' => '资源预留', + 'children' => ['UpdateAScripts', 'CreateAScripts', 'DeleteAScripts', 'ListAScripts'], 'type' => 'directory', - 'children' => [ - 'ModifyCapacityReservation', - 'DescribeCapacityReservation', - ], + 'title' => '可编程脚本', + 'id' => 46873, ], [ - 'id' => 322457, - 'title' => '可编程脚本', + 'children' => ['CreateLoadBalancer', 'CreateRule', 'DeleteLoadBalancer', 'DeleteRule', 'DescribeRegions', 'DescribeZones', 'ListLoadBalancers', 'ListRules', 'ListTagKeys', 'ListTagResources', 'ListTagValues', 'ModifyCapacityReservation', 'MoveResourceGroup', 'TagResources', 'UnTagResources'], + 'title' => '其他', 'type' => 'directory', - 'children' => [ - 'UpdateAScripts', - 'CreateAScripts', - 'DeleteAScripts', - 'ListAScripts', - ], ], ], 'components' => [ 'schemas' => [], ], 'apis' => [ - 'DescribeRegions' => [ - 'summary' => '查询ALB可用地域。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddEntriesToAcl' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '203', - 'abilityTreeNodes' => [ - 'FEATUREslbRXTOWD', - ], - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'AcceptLanguage', + 'name' => 'AclId', + 'in' => 'query', + 'schema' => ['title' => 'AclId', 'description' => 'ACL实例ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'acl-hp34s2h0xx1ht4nwo****'], + ], + [ + 'name' => 'AclEntries', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '语言', - 'description' => '支持的语言。取值:'."\n" - ."\n" - .'- **zh-CN**(默认):中文'."\n" - ."\n" - .'- **en-US**:英文'."\n" - ."\n" - .'- **ja**:日文', - 'type' => 'string', - 'required' => false, - 'example' => 'zh-CN', - 'default' => 'zh-CN', + 'title' => '条目信息列表', + 'description' => '添加的访问控制条目列表。单次调用最多支持20个访问控制条目。', + 'type' => 'array', + 'items' => [ + 'description' => '访问控制策略结构。', + 'type' => 'object', + 'properties' => [ + 'Description' => ['title' => '描述信息', 'description' => '访问控制条目备注描述,长度为2~256个字符,可包含英文字母、数字、中文、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。'."\n" + ."\n" + .'单次调用最多支持20个访问控制条目。', 'type' => 'string', 'required' => false, 'example' => 'test-entry'], + 'Entry' => ['title' => '条目', 'description' => '访问控制条目IP地址段。', 'type' => 'string', 'required' => true, 'example' => '10.0.1.0/24'], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 20, + 'minItems' => 1, ], ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['title' => '幂等Token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => 'dryRun', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会在访问控制策略组中添加IP条目。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据的结构。', + 'description' => '向访问控制策略组中添加IP条目。', 'type' => 'object', 'properties' => [ - 'Regions' => [ - 'title' => 'Region列表', - 'description' => '地域列表。', - 'type' => 'array', - 'items' => [ - 'description' => '地域信息结构。', - 'type' => 'object', - 'properties' => [ - 'LocalName' => [ - 'title' => '名称', - 'description' => '地域名称。', - 'type' => 'string', - 'example' => '华东1(杭州)', - ], - 'RegionEndpoint' => [ - 'title' => 'endpoint', - 'description' => '地域服务的Endpoint地址。', - 'type' => 'string', - 'example' => 'alb.cn-hangzhou.aliyuncs.com', - ], - 'RegionId' => [ - 'title' => 'RegionId', - 'description' => '地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - ], - ], - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3', - ], + 'JobId' => ['title' => 'job', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34******'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"华东1(杭州)\\",\\n \\"RegionEndpoint\\": \\"alb.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ],\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 华东1(杭州)\\n alb.cn-hangzhou.aliyuncs.com\\n cn-hangzhou\\n \\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', - 'title' => '查询地域', - ], - 'DescribeZones' => [ - 'summary' => '查询ALB一个地域下的可用区列表', - 'methods' => [ - 'get', - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ResourceAlreadyExist.AclEntry', 'errorMessage' => 'The specified resource %s already exists.', 'description' => '访问控制策略组中的IP条目已存在。'], + ['errorCode' => 'ResourceQuotaExceeded.AclEntriesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ['errorCode' => 'IncorrectStatus.Acl', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '访问控制策略组ACL的当前状态不支持本次操作。'], + ['errorCode' => 'ResourceQuotaExceeded.ListenerAclEntriesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerAclEntriesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '访问控制策略组ACL不存在。'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'title' => '添加访问控制条目', + 'summary' => '向访问控制策略组中添加IP条目。', + 'description' => '- 每个策略组可包含多个IP地址条目或IP地址段条目,访问控制策略组的条目限制如下: '."\n" + ."\n" + .' - 单账号每次可添加的IP地址条目个数:20 '."\n" + .' - 每个访问控制策略组可包含的条目个数:500'."\n" + .'- **AddEntriesToAcl**接口属于异步接口,即系统返回一个请求ID,但该访问控制策略组尚未成功添加IP条目,系统后台的添加任务仍在进行。您可以调用[ListAclEntries](~~213616~~)查询IP条目的添加状态:'."\n" + .' - 当访问控制策略组处于**Adding**状态时,表示IP条目正在添加中。'."\n" + .' - 当访问控制策略组处于**Available**状态时,表示IP条目添加成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:AddEntriesToAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + ], + 'AddServersToServerGroup' => [ + 'summary' => '向服务器组中添加后端服务器。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '204', - 'abilityTreeNodes' => [ - 'FEATUREslbRXTOWD', - ], - 'tenantRelevance' => 'publicInformation', + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslbULKWF1'], ], 'parameters' => [ [ - 'name' => 'AcceptLanguage', + 'name' => 'ServerGroupId', 'in' => 'query', + 'schema' => ['title' => '后端服务器Id', 'description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtop****'], + ], + [ + 'name' => 'Servers', + 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'description' => '支持的语言。取值:'."\n" - ."\n" - .'- **zh-CN**(默认):中文'."\n" - ."\n" - .'- **en-US**:英文'."\n" - ."\n" - .'- **ja**:日文', - 'type' => 'string', - 'required' => false, - 'example' => 'zh-CN', - 'default' => 'zh-CN', + 'title' => '后端服务器列表', + 'description' => '后端服务器列表, 单次调用最多支持添加200个服务器。', + 'type' => 'array', + 'items' => [ + 'description' => '后端服务器组结构体。', + 'type' => 'object', + 'properties' => [ + 'Description' => ['title' => '描述信息', 'description' => '后端服务器描述。长度为 2~256 个英文或中文字符,不能以http://和https://开头。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'Port' => ['title' => '后端端口号', 'description' => '后端服务器使用的端口。取值范围:**1**~**65535**。 单次调用最多支持添加200个服务器。'."\n" + ."\n" + .'> 当**ServerType**取值为**Ecs**、**Eni**、**Eci**、**Ip**时,该参数必传。当**ServerType**取值为**Fc**时,无需配置该参数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'docRequired' => false, 'example' => '80'], + 'ServerId' => ['title' => '后端服务器id', 'description' => '后端服务器ID。 单次调用最多支持添加200个服务器。'."\n" + ."\n" + .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**的资源Id。'."\n" + ."\n" + .'- 当服务器组为**Ip**类型时,该参数为IP地址。'."\n" + ."\n" + .'- 当服务器组为**Fc**时,该参数为函数计算的ARN标识。', 'type' => 'string', 'required' => false, 'example' => 'i-uf616vu8me******'], + 'ServerIp' => ['title' => '后端服务器ip', 'description' => '指定IP地址。 单次调用最多支持添加200个服务器。'."\n" + ."\n" + .'当**ServerType**为**Eni**时,支持指定ENI的主私网IP或辅助私网IP。'."\n" + ."\n" + .'>**ServerType**取值为**Fc**时,无需配置该参数。', 'type' => 'string', 'required' => false, 'example' => '192.168.1.1'], + 'ServerType' => ['title' => '后端服务器类型', 'description' => '后端服务器类型。 单次调用最多支持添加200个服务器。取值:'."\n" + .'- **Ecs**:ECS实例。'."\n" + .'- **Eni**:ENI弹性网卡实例。'."\n" + .'- **Eci**:ECI弹性容器。'."\n" + .'- **Ip**:IP地址。'."\n" + .'- **Fc**:函数计算。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Ecs'], + 'Weight' => ['title' => '后端服务器权重', 'description' => '后端服务器的权重,取值范围:**0**~**100**。默认值为**100**。如果设置权重为**0**,则不会将请求转发给该后端服务器。 单次调用最多支持添加200个服务器。'."\n" + ."\n" + .'>**ServerType**取值为**Fc**时,无需配置该参数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + 'RemoteIpEnabled' => ['title' => '是否是远端ip', 'description' => '是否开启远端IP功能。 单次调用最多支持添加200个服务器。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:不开启。'."\n" + ."\n\n" + .'> 当**ServerType**取值为**Ip**时,该参数有效。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + 'required' => false, + 'title' => '后端服务器', + ], + 'required' => true, + 'maxItems' => 200, + 'minItems' => 1, ], ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['title' => '幂等Token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => 'dryRun', 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会向服务器组中添加后端服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据的结构。', + 'description' => '返回数据结构体', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3', - ], - 'Zones' => [ - 'title' => '可用区列表', - 'description' => '可用区列表。', - 'type' => 'array', - 'items' => [ - 'description' => '可用区信息结构。', - 'type' => 'object', - 'properties' => [ - 'LocalName' => [ - 'title' => '可用区名称', - 'description' => '可用区名称。', - 'type' => 'string', - 'example' => '杭州 可用区G', - ], - 'ZoneId' => [ - 'title' => '可用区id', - 'description' => '可用区ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou-g', - ], - ], - ], - ], + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34******'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\",\\n \\"Zones\\": [\\n {\\n \\"LocalName\\": \\"杭州 可用区G\\",\\n \\"ZoneId\\": \\"cn-hangzhou-g\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n \\n 华东 1 可用区G\\n cn-hangzhou-g\\n \\n","errorExample":""}]', - 'title' => '查询可用区', - ], - 'CreateLoadBalancer' => [ - 'summary' => '在指定地域创建应用型负载均衡实例。', - 'methods' => [ - 'get', - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器添加到组已超额度限制。'], + ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '服务器组状态无效。'], + ['errorCode' => 'Conflict.BackendServer', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => '服务器冲突,已经存在同配置的后端服务器。'], + ['errorCode' => 'OperationDenied.VpcVportNotFound', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '不允许该操作,原因:vpc端口未找到'], + ['errorCode' => 'IncorrectStatus.Eni', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的状态无效。'], + ['errorCode' => 'ResourceInUse.IP', 'errorMessage' => 'The specified resource %s is in use.', 'description' => '资源%s正在使用中。'], + ['errorCode' => 'OperationDenied.NoAvailableVSwitch', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'], + ['errorCode' => 'OperationDenied.VgwVipNotFound', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'], + ['errorCode' => 'OperationDenied.CloudBox', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'], + ['errorCode' => 'Mismatch.Type', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '后端服务器数已超额度限制。'], + ['errorCode' => 'ResourceInConfiguring', 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', 'description' => '指定的资源在变更中,请稍后再试'], + ['errorCode' => 'DuplicatedParam.BackendServer', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '参数%s是重复的。'], + ['errorCode' => 'OperationDenied.EciNotSupportJobType', 'errorMessage' => 'The operation is not allowed because of eci not support job type.', 'description' => '服务器组不支持添加Job优化型ECI实例。'], + ['errorCode' => 'IllegalParam.ServerIp', 'errorMessage' => 'The param of ServerIp is illegal.', 'description' => '参数ServerIp非法'], + ['errorCode' => 'Mismatch.ServerType', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'ServiceUnavailable', 'errorMessage' => 'The request has failed due to a temporary failure of the server.', 'description' => '请求因服务器暂时性故障而失败。'], + ], + 403 => [ + ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication has failed for ServerGroup.', 'description' => '对ServerGroup鉴权失败'], + ], + [ + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], + ['errorCode' => 'ResourceNotFound.Ecs', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'Ecs服务器不存在。'], + ['errorCode' => 'ResourceNotFound.Eci', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'Eci服务器不存在。'], + ['errorCode' => 'ResourceNotFound.Eni', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'title' => '添加后端服务器', + 'description' => '**AddServersToServerGroup**接口属于异步接口,即系统返回一个请求ID,但该后端服务器尚未添加成功,系统后台的添加任务仍在进行。'."\n" + ."\n" + .'1. 您可以调用[ListServerGroups](~~213627~~)查询服务器组的状态:'."\n" + ."\n" + .'- 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n" + .'- 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n" + ."\n" + .'2. 您可以调用[ListServerGroupServers](~~213628~~)查询后端服务器的状态:'."\n" + ."\n" + .'- 当后端服务器处于**Adding**状态时,表示后端服务器正在加入服务器组。'."\n" + .'- 当后端服务器处于**Available**状态时,表示后端服务器运行中。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:AddServersToServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + ], + 'ApplyHealthCheckTemplateToServerGroup' => [ + 'summary' => '将健康检查配置模板应用到后端服务器组,从而将后端服务器组的健康检查配置修改为模板值。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -406,868 +378,403 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '194', - 'abilityTreeNodes' => [ - 'FEATUREslbM7ALO6', - ], - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ + [ + 'name' => 'HealthCheckTemplateId', + 'in' => 'query', + 'schema' => ['title' => '健康检查模板Id', 'description' => '模板ID。', 'type' => 'string', 'required' => true, 'example' => 'hct-bp1qjwo61pqz3ahltv****'], + ], + [ + 'name' => 'ServerGroupId', + 'in' => 'query', + 'schema' => ['title' => '服务器组Id', 'description' => '后端服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-n80wyad08u0tox****'], + ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['title' => '幂等Token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'由客户端生成该参数值,要保证在不同请求间唯一,最大值不超过64个ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665******'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建应用型负载均衡实例。检查项包括是否填写了必需参数、请求格式和业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => 'dryRun', 'description' => '是否只预检此次请求。取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], - [ - 'name' => 'VpcId', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '负载均衡实例的专有网络ID。', - 'description' => '应用型负载均衡实例的专有网络ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-bp1b49rqrybk45nio****', + 'title' => 'Schema of Response', + 'description' => '向后端服务器组应用健康检查模板。', + 'type' => 'object', + 'properties' => [ + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF******'], + ], ], ], - [ - 'name' => 'AddressType', - 'in' => 'query', - 'schema' => [ - 'title' => '负载均衡的地址类型', - 'description' => '应用型负载均衡的地址类型。取值:'."\n" - ."\n" - .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - ."\n" - .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', - 'required' => true, - 'example' => 'Internet', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.HealthCheckTemplate', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的状态无效。'], + ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '服务器组状态无效。'], ], - [ - 'name' => 'LoadBalancerName', - 'in' => 'query', - 'schema' => [ - 'title' => '名称', - 'description' => '应用型负载均衡实例名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'alb1', - ], + 403 => [ + ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication has failed for ServerGroup.', 'description' => '对ServerGroup鉴权失败'], ], [ - 'name' => 'DeletionProtectionEnabled', - 'in' => 'query', - 'schema' => [ - 'title' => '是否开启删除保护', - 'description' => '是否开启删除保护。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**(默认值):关闭。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + ['errorCode' => 'ResourceNotFound.HealthCheckTemplate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], ], - [ - 'name' => 'ModificationProtectionConfig', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '负载均衡修改保护相关信息', - 'description' => '修改保护配置。', - 'type' => 'object', - 'properties' => [ - 'Reason' => [ - 'title' => '设置修改保护状态的原因', - 'description' => '输入开启修改保护的原因。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" - ."\n" - .'>仅在**Status**为**ConsoleProtection**时该参数有效且合法。', - 'type' => 'string', - 'required' => false, - 'example' => '托管实例', - ], - 'Status' => [ - 'title' => '负载均衡修改保护状态', - 'description' => '应用型负载均衡实例的修改保护状态。取值:'."\n" - ."\n" - .'- **NonProtection**:不开启修改保护。如有配置**Reason**,**Reason**会被强制置空。'."\n" - ."\n" - .'- **ConsoleProtection**:开启控制台修改保护。如有配置**Reason**,**Reason**可生效。'."\n" - ."\n" - .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'ConsoleProtection', - ], + ], + 'title' => '应用健康检查模板到服务组', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:ApplyHealthCheckTemplateToServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthCheckTemplateId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#serverGroupId}'], ], - 'required' => false, ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + ], + 'AssociateAclsWithListener' => [ + 'summary' => '将访问控制关联到监听。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ZoneMappings', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '161', + 'abilityTreeNodes' => ['FEATUREslbAYSA83'], + ], + 'parameters' => [ + [ + 'name' => 'AclIds', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '可用区及交换机映射列表', - 'description' => '可用区及交换机映射列表,最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', + 'title' => '访问控制策略Id', + 'description' => 'ACL实例ID,最多支持3个ACL实例ID。', 'type' => 'array', - 'items' => [ - 'description' => '可用区及交换机映射列表,最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'title' => '交换机标识', - 'description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-sersdf****', - ], - 'ZoneId' => [ - 'title' => '可用区', - 'description' => '可用区ID。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。'."\n" - .'您可以通过调用[DescribeZones](~~36064~~)接口获取可用区ID对应的可用区的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou-a', - ], - 'AllocationId' => [ - 'title' => '弹性公网IP实例ID', - 'description' => '公网实例绑定的EIP实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'eip-bp1aedxso6u80u0qf****', - ], - 'EipType' => [ - 'title' => '弹性公网IP类型', - 'description' => '弹性公网IP的类型。取值:'."\n" - ."\n" - .'- Common(默认值):弹性公网IP。'."\n" - ."\n" - .'- Anycast:任播弹性公网IP。'."\n" - ."\n" - .'> ALB支持绑定Anycast EIP的地域,请参见[使用限制](~~460727~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'Common', - ], - 'IntranetAddress' => [ - 'description' => 'IPv4私网地址。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.10.1', - ], - ], - 'required' => false, - ], + 'items' => ['description' => 'ACL实例ID。', 'type' => 'string', 'required' => false, 'example' => 'acl-hp34s2h0xx1ht4nwo****'], 'required' => true, - 'maxItems' => 10, - 'minItems' => 1, + 'maxItems' => 20, ], ], [ - 'name' => 'AddressAllocatedMode', + 'name' => 'ListenerId', 'in' => 'query', - 'schema' => [ - 'title' => '地址模式', - 'description' => '地址模式。取值 :'."\n" - ."\n" - .'- **Fixed**(默认值):固定IP模式,表示每个可用区分配固定IP地址。'."\n" - ."\n" - .'- **Dynamic**:动态IP模式,表示每个可用区动态分配IP地址。'."\n" - ."\n" - .'>自北京时间2025年2月25日00:00:002025年2月25日00:00:00 (UTC+8)起,通过本接口新建实例时,无论您指定何种模式,实际均创建为[ ALB升级实例](~~2864070~~),不再区分IP模式,分配的IP地址具备自动弹性能力;升级前的ALB实例不受影响。', - 'type' => 'string', - 'required' => false, - 'example' => 'Fixed', - 'default' => 'Fixed', - ], + 'schema' => ['title' => '监听Id', 'description' => '监听实例ID', 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn9*******'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'AclType', 'in' => 'query', - 'schema' => [ - 'title' => '资源组', - 'description' => '企业资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', - ], + 'schema' => ['title' => '绑定类型', 'description' => '访问控制类型:'."\n" + ."\n" + .'- **White**: 仅转发来自所选访问控制策略组中设置的IP地址或地址段的请求,白名单适用于只允许特定IP访问的场景。设置白名单存在一定业务风险。一旦设置白名单,就只有白名单中的IP可以访问负载均衡监听。如果开启了白名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。'."\n" + .'- **Black**: 来自所选访问控制策略组中设置的IP地址或地址段的所有请求都不会转发,黑名单适用于只限制某些特定IP访问的场景。如果开启了黑名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。', 'type' => 'string', 'required' => true, 'example' => 'White'], ], [ - 'name' => 'LoadBalancerEdition', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '负载均衡的版本', - 'description' => '应用型负载均衡的版本,不同版本有不同功能限制和计费策略。取值:'."\n" - ."\n" - .'- **Basic**:基础版。'."\n" - ."\n" - .'- **Standard**:标准版。'."\n" - ."\n" - .'- **StandardWithWaf**:WAF增强版。'."\n" - ."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Standard', - ], + 'schema' => ['title' => '预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会关联ACL到监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'LoadBalancerBillingConfig', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'flat', + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '计费相关配置信息', - 'description' => '应用型负载均衡实例计费配置。', + 'title' => 'Schema of Response', + 'description' => '将访问控制关联到监听。', 'type' => 'object', 'properties' => [ - 'PayType' => [ - 'title' => '实例的计费类型', - 'description' => '实例的计费类型。'."\n" - ."\n" - .'仅取值**PostPay**:表示按量计费。', - 'type' => 'string', - 'required' => true, - 'example' => 'PostPay', - 'default' => 'PostPay', - ], - 'BandwidthPackageId' => [ - 'title' => '共享带宽实例ID', - 'description' => '公网类型实例关联的共享带宽包ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cbwp-bp1vevu8h3ieh****', - ], + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => '请求id', 'description' => '请求ID', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F87******'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'QuotaExceeded.AclsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['errorCode' => 'IncorrectStatus.Acl', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '访问控制策略组ACL的当前状态不支持本次操作。'], + ['errorCode' => 'ResourceQuotaExceeded.ListenerAclEntriesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ['errorCode' => 'OperationDenied.AclNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '因为%s,该操作不被允许。'], + ['errorCode' => 'ResourceAlreadyExist.AclEntry', 'errorMessage' => 'The specified resource %s already exists.', 'description' => '访问控制策略组中的IP条目已存在。'], + ['errorCode' => 'ResourceInUse.Acl', 'errorMessage' => 'The specified resource %s is in use.', 'description' => '资源%s正在使用中。'], + ['errorCode' => 'OperationDenied.LoadBalancerJoinedSecurityGroupNotSupportAcl', 'errorMessage' => 'The operation is not allowed because of loadbalancer joined security group not support acl.', 'description' => '不允许操作,原因是负载均衡实例加入安全组后,不能再绑定访问控制策略'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '访问控制策略组ACL不存在。'], + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], + ], + ], + 'title' => '关联访问控制和监听', + 'description' => '**AssociateAclsWithListener**接口属于异步接口,即系统返回一个请求ID,但该ACL尚未成功绑定监听器,系统后台的绑定任务仍在进行。您可以调用[ListAclRelations](~~213618~~)查询ACL的绑定状态:'."\n" + .'- 当ACL处于**Associating**状态时,表示ACL正在绑定监听器中。'."\n" + .'- 当ACL处于**Associated**状态时,表示ACL已成功绑定监听器。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:AssociateAclsWithListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], - 'required' => true, ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F87******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + ], + 'AssociateAdditionalCertificatesWithListener' => [ + 'summary' => '将扩展证书关联到监听', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ [ - 'name' => 'AddressIpVersion', + 'name' => 'ListenerId', 'in' => 'query', - 'schema' => [ - 'title' => '协议版本', - 'description' => '协议版本。取值:'."\n" - ."\n" - .'- **IPv4**:IPv4类型。'."\n" - .'- **DualStack**:双栈类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'IPv4', - ], + 'schema' => ['title' => '监听Id', 'description' => '监听ID。'."\n" + ."\n" + .'HTTPS和QUIC监听有效。', 'type' => 'string', 'required' => true, 'example' => 'lsn-5qnirjhpt******'], ], [ - 'name' => 'Tag', + 'name' => 'Certificates', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'description' => '标签。', + 'title' => '证书列表', + 'description' => '扩展证书列表。', 'type' => 'array', 'items' => [ - 'description' => '标签结构。', + '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', - ], + 'CertificateId' => ['title' => '证书Id', 'description' => '证书ID,当前仅支持服务器证书。'."\n" + .'> 证书全局ID,以地域ID结尾,例如1011****-cn-hangzhou。', 'type' => 'string', 'required' => true, 'example' => '1011****-cn-hangzhou'], ], 'required' => false, ], - 'required' => false, + 'required' => true, + 'maxItems' => 15, + 'minItems' => 1, ], ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['title' => '幂等Token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3F******'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => 'dryRun', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会为HTTPS和QUIC监听添加扩展证书。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false(默认值)**:发送正常请求,通过检查后返回HTTP `2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '创建负载均衡实例。', + 'description' => '为HTTPS或QUIC监听添加扩展证书。', 'type' => 'object', 'properties' => [ - 'LoadBalancerId' => [ - 'title' => '负载均衡实例标识', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'example' => 'alb-o9ulmq5hqn68jk****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotEnough.VSwitchIp', - 'errorMessage' => 'The specified resource %s is not enough.', - ], - [ - 'errorCode' => 'QuotaExceeded.LoadBalancersNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'Mismatch.ZoneIdAndVSwitchId', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'DuplicatedParam.ZoneId', - 'errorMessage' => 'The param of ZoneId is duplicated.', - ], - [ - 'errorCode' => 'OperationDenyed.ServiceLinkedRoleNotExist', - 'errorMessage' => 'The service linked role AliyunServiceRoleForAlb does not exist.', - ], + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'OperationDenied.DefaultCertificateUsed', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是默认证书不允许解除关联。'], + ['errorCode' => 'OperationFailed.DefaultCertificateNotFound', 'errorMessage' => 'The operation failed because of %s.', 'description' => '操作失败,原因是%s。'], + ['errorCode' => 'ResourceAlreadyAssociated.Certificate', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => '证书已被关联。'."\n"], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerCertificatesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '实例证书已超额度限制。'], + ['errorCode' => 'OperationDenied.HttpListenerNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是不支持HTTP协议监听。'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Invalid parameter, please check the parameter input.', 'description' => '无效参数,请检查参数输入。'], + ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource %s is configuring, please try again later.', 'description' => '资源%s正在变配中,请稍后重试。'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource %s is not found.', - ], + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication has failed for LoadBalancer.', 'description' => '负载均衡操作鉴权失败'], + ], + [ + ['errorCode' => 'ResourceNotFound.Certificate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + 'title' => '关联扩展证书和监听', + 'description' => '**AssociateAdditionalCertificatesWithListener**接口属于异步接口,即系统返回一个请求ID,但该扩展证书尚未添加成功,系统后台的添加任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询扩展证书的添加状态:'."\n" + .' - 当HTTPS和QUIC监听处于**Associating**状态时,表示扩展证书正在添加中。'."\n" + .' - 当HTTPS和QUIC监听处于**Associated**状态时,表示扩展证书添加成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:AssociateAdditionalCertificatesWithListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"LoadBalancerId\\": \\"alb-o9ulmq5hqn68jk****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n alb-o9ulmq5hgn68jk****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => '创建应用型负载均衡实例', - 'description' => '**CreateLoadBalancer**接口属于异步接口,即系统返回一个实例ID,但该应用型负载均衡实例尚未创建成功,系统后台的创建任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询应用型负载均衡实例的创建状态:'."\n" - .'- 当应用型负载均衡实例处于**Provisioning**状态时,表示应用型负载均衡实例正在创建中。'."\n" - .'- 当应用型负载均衡实例处于**Active**状态时,表示应用型负载均衡实例创建成功。', ], - 'GetLoadBalancerAttribute' => [ - 'summary' => '查询指定负载均衡实例的详细信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AttachCommonBandwidthPackageToLoadBalancer' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '200', - 'abilityTreeNodes' => [ - 'FEATUREslbM7ALO6', - 'FEATUREslbK3ZR0L', - 'FEATUREslbN5IE4S', - ], - ], - 'parameters' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslbZBWWR9'], + ], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '幂等参数', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665*****'], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['title' => '地域ID', 'description' => '应用型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~448570~~)接口获取地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], [ 'name' => 'LoadBalancerId', 'in' => 'query', - 'schema' => [ - 'title' => '实例标识', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-o9ulmq5hgn68jk****', - ], + 'schema' => ['title' => '实例ID', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-d676fho813rmu3****'], + ], + [ + 'name' => 'BandwidthPackageId', + 'in' => 'query', + 'schema' => ['title' => '带宽包ID', 'description' => '绑定的共享带宽包ID。', 'type' => 'string', 'required' => true, 'example' => 'cbwp-bp1pzf0ym72pu3y76****'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => '是否只预检此次请求', 'description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会将共享带宽包绑定到负载均衡实例。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '应用型负载均衡实例详细配置信息。', + 'description' => '将共享带宽包绑定到应用型负载均衡实例。', 'type' => 'object', 'properties' => [ - 'AccessLogConfig' => [ - 'title' => '访问日志属性', - 'description' => '访问日志配置。', - 'type' => 'object', - 'properties' => [ - 'LogProject' => [ - 'title' => '访问日志投递的logProject', - 'description' => '日志项目。', - 'type' => 'string', - 'example' => 'sls-setter', - ], - 'LogStore' => [ - 'title' => '删除保护开启时间', - 'description' => '日志存储。'."\n" - ."\n", - 'type' => 'string', - 'example' => 'test', - ], - ], - ], - 'AddressAllocatedMode' => [ - 'title' => '地址分配方式', - 'description' => '地址模式。取值 :'."\n" - ."\n" - .'- **Fixed**:固定IP模式,表示使用固定的IP地址。'."\n" - ."\n" - .'- **Dynamic**:动态IP模式,表示在每个可用区动态分配IP地址。', - 'type' => 'string', - 'example' => 'Dynamic', - ], - 'AddressType' => [ - 'title' => '地址类型', - 'description' => '应用型负载均衡实例的网络地址类型。取值:'."\n" - ."\n" - .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - ."\n" - .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。'."\n" - ."\n", - 'type' => 'string', - 'example' => 'Intranet', - ], - 'BandwidthPackageId' => [ - 'title' => '带宽包ID', - 'description' => '公网类型实例关联的共享带宽包ID。', - 'type' => 'string', - 'example' => 'cbwp-bp1vevu8h3ieh****', - ], - 'CreateTime' => [ - 'title' => '资源创建时间', - 'description' => '资源创建时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', - 'type' => 'string', - 'example' => '2022-07-02T02:49:05Z', - ], - 'DNSName' => [ - 'title' => 'DNS域名', - 'description' => 'DNS域名。', - 'type' => 'string', - 'example' => 'alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com', - ], - 'DeletionProtectionConfig' => [ - 'title' => '负载均衡删除保护相关信息', - 'description' => '删除保护配置。', - 'type' => 'object', - 'properties' => [ - 'Enabled' => [ - 'title' => '删除保护状态', - 'description' => '删除保护状态,取值:'."\n" - ."\n" - .'- **true**:开启状态。'."\n" - ."\n" - .'- **false**:关闭状态。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'EnabledTime' => [ - 'title' => '删除保护开启时间', - 'description' => '删除保护开启时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', - 'type' => 'string', - 'example' => '2022-08-02T02:49:05Z', - ], - ], - ], - 'LoadBalancerBillingConfig' => [ - 'title' => '计费相关属性', - 'description' => '应用型负载均衡实例计费配置。', - 'type' => 'object', - 'properties' => [ - 'PayType' => [ - 'title' => '实例的计费类型', - 'description' => '计费类型。'."\n" - ."\n" - .'取值: **PostPay**表示按量计费。', - 'type' => 'string', - 'example' => 'PostPay', - 'default' => 'PostPay', - ], - ], - ], - 'LoadBalancerBussinessStatus' => [ - 'title' => '实例业务状态', - 'description' => '应用型负载均衡的业务状态。取值:'."\n" - ."\n" - .'- **Abnormal**:异常状态。'."\n" - ."\n" - .'- **Normal**:正常状态。', - 'type' => 'string', - 'example' => 'Normal', - ], - 'LoadBalancerEdition' => [ - 'title' => '负载均衡的版本', - 'description' => '应用型负载均衡的版本,不同版本有不同功能限制和计费策略。取值:'."\n" - ."\n" - .'- **Basic**:基础版。'."\n" - ."\n" - .'- **Standard**:标准版。'."\n" - ."\n" - .'- **StandardWithWaf**:WAF增强版。', - 'type' => 'string', - 'example' => 'Standard', - ], - 'LoadBalancerId' => [ - 'title' => '负载均衡标识', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'example' => 'alb-o9ulmq5hgn68jk****', - ], - 'LoadBalancerName' => [ - 'title' => '实例名称', - 'description' => '实例名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'example' => 'alb1', - ], - 'LoadBalancerOperationLocks' => [ - 'title' => '锁定原因', - 'description' => '应用型负载均衡操作锁配置。', - 'type' => 'array', - 'items' => [ - 'description' => '应用型负载均衡操作锁配置。', - 'type' => 'object', - 'properties' => [ - 'LockReason' => [ - 'title' => '锁定原因', - 'description' => '锁定的原因。在**LoadBalancerBussinessStatus**为**异常**时有效。', - 'type' => 'string', - 'example' => '欠费', - ], - 'LockType' => [ - 'title' => '锁定类型', - 'description' => '锁定的类型。取值 :'."\n" - ."\n" - .'- **SecurityLocked**:安全锁定。'."\n" - ."\n" - .'- **RelatedResourceLocked**:关联锁定。'."\n" - ."\n" - .'- **FinancialLocked**:欠费锁定。'."\n" - ."\n" - .'- **ResidualLocked**:残留锁定。', - 'type' => 'string', - 'example' => 'FinancialLocked', - ], - ], - ], - ], - 'LoadBalancerStatus' => [ - 'title' => '实例状态', - 'description' => '应用型负载均衡实例状态。取值:'."\n" - ."\n" - .'- **Inactive**: 已停止,表示实例监听不会再转发流量。'."\n" - ."\n" - .'- **Active**: 运行中。'."\n" - ."\n" - .'- **Provisioning**:创建中。'."\n" - ."\n" - .'- **Configuring**:变配中。'."\n" - ."\n" - .'- **CreateFailed**:创建失败,此时不会产生费用,实例只能被删除。', - 'type' => 'string', - 'example' => 'Active', - ], - 'ModificationProtectionConfig' => [ - 'title' => '负载均衡修改保护相关信息', - 'description' => '修改保护配置。', - 'type' => 'object', - 'properties' => [ - 'Reason' => [ - 'title' => '设置修改保护状态的原因', - 'description' => '开启修改保护的原因。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" - ."\n" - .'仅在**Status**为**ConsoleProtection**时返回。', - 'type' => 'string', - 'example' => '托管实例', - ], - 'Status' => [ - 'title' => '负载均衡修改保护状态', - 'description' => '应用型负载均衡实例的修改保护状态。取值:'."\n" - ."\n" - .'- **NonProtection**:未开启修改保护。如有配置**Reason**,**Reason**会被强制置空。'."\n" - ."\n" - .'- **ConsoleProtection**:已开启控制台修改保护。如有配置**Reason**,**Reason**可生效。'."\n" - ."\n" - .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', - 'type' => 'string', - 'example' => 'ConsoleProtection', - ], - ], - ], - 'RegionId' => [ - 'title' => '地域', - 'description' => '应用型负载均衡实例的地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], - 'ResourceGroupId' => [ - 'title' => '企业资源组ID', - 'description' => '企业资源组ID。', - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - 'Tags' => [ - 'title' => '标签列表', - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '实例的标签键', - 'description' => '实例的标签键。'."\n" - ."\n" - .'最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'title' => '实例的标签值', - 'description' => '实例的标签值。'."\n" - ."\n" - .'最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - 'VpcId' => [ - 'title' => 'Vpc网络ID', - 'description' => '实例的专有网络ID。', - 'type' => 'string', - 'example' => 'vpc-bp1b49rqrybk45nio****', - ], - 'ZoneMappings' => [ - 'title' => '负载均衡的可用区资源', - 'description' => '可用区及交换机映射列表,最多返回10个可用区。若当前地域支持2个及以上可用区,至少返回2个及以上可用区。', - 'type' => 'array', - 'items' => [ - 'description' => '可用区及交换机映射列表,最多返回10个可用区。若当前地域支持2个及以上可用区,至少返回2个及以上可用区。', - 'type' => 'object', - 'properties' => [ - 'LoadBalancerAddresses' => [ - 'title' => '固定VIP模式下,负载均衡在此可用区中的地址列表', - 'description' => '实例地址。', - 'type' => 'array', - 'items' => [ - 'description' => '实例地址。', - 'type' => 'object', - 'properties' => [ - 'Address' => [ - 'title' => 'IP地址', - 'description' => '标识IPv4类型的IP地址。'."\n" - ."\n" - .'**AddressIPVersion**为**IPv4**和**DualStack**均生效,公网或私网IP地址由**AddressType**决定。', - 'type' => 'string', - 'example' => '10.1.0.61', - ], - 'Ipv6Address' => [ - 'title' => 'Ipv6地址', - 'description' => '标识IPv6类型的IP地址。'."\n" - ."\n" - .'仅在**AddressIPVersion**为**DualStack**时有效,公网或私网IP地址由**Ipv6AddressType**决定。', - 'type' => 'string', - 'example' => '2408:xxxx:249:dd01:6f4:750f:xxxx:bcd9', - ], - 'IntranetAddress' => [ - 'title' => '私网地址', - 'description' => 'IPv4私网地址。', - 'type' => 'string', - 'example' => '10.1.0.61', - ], - 'AllocationId' => [ - 'description' => '弹性公网IP标识。', - 'type' => 'string', - 'example' => 'eip-uf6wm****1zj9', - ], - 'EipType' => [ - 'description' => '公网EIP的类型。取值:'."\n" - ."\n" - .'- **Common**:弹性公网IP,简称EIP。'."\n" - .'- **Anycast**:任播弹性公网IP,简称Anycast EIP。'."\n" - ."\n" - .'> ALB支持绑定Anycast EIP的地域,请参见[使用限制](~~460727~~)。', - 'type' => 'string', - 'example' => 'Common', - ], - 'IntranetAddressHcStatus' => [ - 'description' => '应用型负载均衡实例私网IPv4地址探测状态。'."\n" - ."\n" - .'只有可用区的状态为Active时才返回。取值:'."\n" - ."\n" - .'- **Healthy**:健康。'."\n" - .'- **Unhealthy**:异常。', - 'type' => 'string', - 'example' => 'Healthy', - ], - 'Ipv6AddressHcStatus' => [ - 'description' => '应用型负载均衡实例IPv6地址探测状态。'."\n" - ."\n" - .'只有可用区的状态为Active时才返回。取值:'."\n" - ."\n" - .'- **Healthy**:健康。'."\n" - .'- **Unhealthy**:异常。', - 'type' => 'string', - 'example' => 'Healthy', - ], - 'Ipv4LocalAddresses' => [ - 'description' => 'IPv4 Local地址列表。ALB与后端服务交互使用的地址列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'IPv4 Local地址。', - 'type' => 'string', - 'example' => '10.1.0.62', - ], - ], - 'Ipv6LocalAddresses' => [ - 'description' => 'IPv6 Local地址列表。ALB与后端服务交互使用的地址列表。', - 'type' => 'array', - 'items' => [ - 'description' => ' IPv6 Local地址。', - 'type' => 'string', - 'example' => '2408:xxxx:249:dd01:6f4:750f:xxxx:bcda', - ], - ], - ], - ], - ], - 'VSwitchId' => [ - 'title' => '交换机标识', - 'description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。', - 'type' => 'string', - 'example' => 'vsw-bp12mw1f8k3jgy****', - ], - 'ZoneId' => [ - 'title' => '可用区标识', - 'description' => '应用型负载均衡实例的可用区ID。'."\n" - ."\n" - .'您可以通过调用[DescribeZones](~~189196~~)接口获取可用区ID对应的可用区的信息。', - 'type' => 'string', - 'example' => 'cn-hangzhou-a', - ], - 'Status' => [ - 'description' => '可用区状态。取值:'."\n" - ."\n" - .'- **Active**:运行中。'."\n" - .'- **Stopped**:已停止。'."\n" - .'- **Shifted**:已移除。'."\n" - .'- **Starting**:启动中。'."\n" - .'- **Stopping**:停止中。', - 'type' => 'string', - 'example' => 'Active', - ], - ], - ], - ], - 'AddressIpVersion' => [ - 'title' => '协议版本', - 'description' => '协议版本。取值:'."\n" - ."\n" - .'- **IPv4**:IPv4类型'."\n" - .'- **DualStack**:双栈类型', - 'type' => 'string', - 'example' => 'DualStack', - ], - 'Ipv6AddressType' => [ - 'title' => 'IPV6地址类型', - 'description' => '应用型负载均衡IPv6的网络地址类型。取值:'."\n" - ."\n" - .'- **Internet**:公网。负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - .'- **Intranet**:私网。负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', - 'example' => 'Intranet', - ], - 'SecurityGroupIds' => [ - 'description' => '应用型负载均衡实例绑定的安全组ID集合。', - 'type' => 'array', - 'items' => [ - 'description' => '应用型负载均衡实例绑定的安全组ID。', - 'type' => 'string', - 'example' => 'sg-uf63j385dzwlm6cy****', - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '2EF39708-974B-5E74-AFF5-3445******'], + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication has failed for LoadBalancer.', - ], + ['errorCode' => 'IncorrectBusinessStatus.CommonBandwidthPackage', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'IncorrectStatus.CommonBandwidthPackage', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的状态无效。'], ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.CommonBandwidthPackage', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '实例绑定共享带宽包', + 'summary' => '将共享带宽包绑定到应用型负载均衡实例上。', + 'description' => '**AttachCommonBandwidthPackageToLoadBalancer**接口属于异步接口,即系统返回一个请求ID,但该负载均衡实例尚未绑定关联共享带宽包,系统后台的绑定任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~2254835~~)查询共享带宽包的绑定状态:'."\n" + .'- 当负载均衡实例处于**Configuring**状态时,表示共享带宽包正在绑定中。'."\n" + .'- 当负载均衡实例处于**Active**状态时,表示共享带宽包绑定成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:AttachCommonBandwidthPackageToLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"AccessLogConfig\\": {\\n \\"LogProject\\": \\"sls-setter\\",\\n \\"LogStore\\": \\"test\\"\\n },\\n \\"AddressAllocatedMode\\": \\"Dynamic\\",\\n \\"AddressType\\": \\"Intranet\\",\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"DNSName\\": \\"alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\",\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"EnabledTime\\": \\"2022-08-02T02:49:05Z\\"\\n },\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"LoadBalancerBussinessStatus\\": \\"Normal\\",\\n \\"LoadBalancerEdition\\": \\"Standard\\",\\n \\"LoadBalancerId\\": \\"alb-o9ulmq5hgn68jk****\\",\\n \\"LoadBalancerName\\": \\"alb1\\",\\n \\"LoadBalancerOperationLocks\\": [\\n {\\n \\"LockReason\\": \\"欠费\\",\\n \\"LockType\\": \\"FinancialLocked\\"\\n }\\n ],\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"ModificationProtectionConfig\\": {\\n \\"Reason\\": \\"托管实例\\",\\n \\"Status\\": \\"ConsoleProtection\\"\\n },\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"Address\\": \\"10.1.0.61\\",\\n \\"Ipv6Address\\": \\"2408:xxxx:249:dd01:6f4:750f:xxxx:bcd9\\",\\n \\"IntranetAddress\\": \\"10.1.0.61\\",\\n \\"AllocationId\\": \\"eip-uf6wm****1zj9\\",\\n \\"EipType\\": \\"Common\\",\\n \\"IntranetAddressHcStatus\\": \\"Healthy\\",\\n \\"Ipv6AddressHcStatus\\": \\"Healthy\\",\\n \\"Ipv4LocalAddresses\\": [\\n \\"10.1.0.62\\"\\n ],\\n \\"Ipv6LocalAddresses\\": [\\n \\"2408:xxxx:249:dd01:6f4:750f:xxxx:bcda\\"\\n ]\\n }\\n ],\\n \\"VSwitchId\\": \\"vsw-bp12mw1f8k3jgy****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"AddressIpVersion\\": \\"DualStack\\",\\n \\"Ipv6AddressType\\": \\"Intranet\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-uf63j385dzwlm6cy****\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n \\n sls-setter\\n test\\n \\n Dynamic\\n Intranet\\n cbwp-bp1vevu8h3ieh****\\n 2022-07-02T02:49:05Z\\n alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\n \\n true\\n 2022-08-02T02:49:05Z\\n \\n \\n PostPay\\n \\n Normal\\n Standard\\n alb-o9ulmq5hgn68jk****\\n alb1\\n \\n 欠费\\n FinancialLocked\\n \\n Active\\n \\n 托管实例\\n ConsoleProtection\\n \\n cn-hangzhou\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n rg-atstuj3rtop****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n vpc-bp1b49rqrybk45nio****\\n \\n \\n
192.168.10.1
\\n 2408:XXXX:39d:eb00::/56\\n
\\n vsw-bp12mw1f8k3jgy****\\n cn-hangzhou-a\\n
\\n DualStack\\n Intranet\\n
","errorExample":""}]', - 'title' => '查询负载均衡实例的详细信息', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2EF39708-974B-5E74-AFF5-3445******\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2EF39708-974B-5E74-AFF5-3445263035A8\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', ], - 'DeleteLoadBalancer' => [ - 'summary' => '删除指定的负载均衡实例。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CancelShiftLoadBalancerZones' => [ + 'summary' => '将可用区对应的EIP/VIP加回到域名解析中。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1276,47 +783,57 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslbFTB0NK'], ], 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '实例id', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-o9ulmq5hgn68jk****', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n\n" + .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n"], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会加回可用区。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行修改。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'DryRun', + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => ['title' => '实例id', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'."\n"], + ], + [ + 'name' => 'ZoneMappings', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会删除应用型负载均衡实例。检查项包括是否填写了必需参数、请求格式和业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + 'title' => '可用区及交换机映射列表', + 'description' => '可用区及交换机映射列表。'."\n" ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + .'> 一次调用最多支持加回一个可用区。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['title' => '交换机标识', 'description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。', 'type' => 'string', 'required' => true, 'example' => 'vsw-bp1rmcrwg3erh1fh8****'."\n"], + 'ZoneId' => ['title' => '可用区', 'description' => '可用区ID,通过调用[DescribeZones](~~189196~~)接口获得。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => true, + 'maxItems' => 1, + 'minItems' => 1, ], ], ], @@ -1324,69 +841,56 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '删除应用型负载均衡实例。', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n"], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.DeletionProtectionEnabled', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'IncorrectBusinessStatus.Eip', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'OperationDenied.ZoneVSwitchChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'OperationDenied.ZoneMappingsNotChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是可用区没有变化。'."\n"], + ['errorCode' => 'OperationDenied.ZoneVSwitchNotExist', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '实例不包含请求中的可用区和虚拟交换机'], + ['errorCode' => 'OperationDenied.EniStatusNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'Eni当前状态不支持此操作'], + ['errorCode' => 'OperationDenied.OnlyFixedAddressAllocatedModeSupported', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '负载均衡实例的IP模式不支持此操作'], + ['errorCode' => 'OperationFailed.CancelShiftLoadBalancerZonesFailed', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '恢复此可用区中IP的DNS A记录失败'], + ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource %s is not enough.', 'description' => '资源%s不足。'."\n"], + ['errorCode' => 'Mismatch.ZoneIdAndVSwitchId', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => '%s和%s不匹配。'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication has failed for LoadBalancer.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'."\n"], ], - [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '把可用区的EIP/VIP加到DNS中', + 'description' => '仅支持固定IP模式的ALB实例。调用本接口时,您已通过StartShiftLoadBalancerZones接口或控制台移除ALB实例的某个可用区。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:CancelShiftLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => '删除负载均衡实例', - 'description' => '**DeleteLoadBalancer**接口属于异步接口,即系统返回一个请求ID,但该应用型负载均衡实例尚未删除成功,系统后台的删除任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询应用型负载均衡实例的删除状态:'."\n" - .'- 当应用型负载均衡实例处于**Deleting**状态时,表示应用型负载均衡实例正在删除中。'."\n" - .'- 当查询不到指定的应用型负载均衡实例时,表示应用型负载均衡实例删除成功。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5A2CFF0E-5718-45B5-9D4D-70B3FF3898\\\\n\\"\\n}","type":"json"}]', ], - 'UpdateLoadBalancerAttribute' => [ - 'summary' => '更新负载均衡实例属性,如名称、修改保护等。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateAScripts' => [ + 'summary' => '创建可编程脚本。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1395,94 +899,86 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '34526', + 'abilityTreeNodes' => ['FEATUREslb2Q6O49'], ], 'parameters' => [ [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会修改应用型负载均衡实例的属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'LoadBalancerId', - 'in' => 'query', - 'schema' => [ - 'title' => '实例id', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-o9ulmq5hgn68jk****', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => ' 是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会创建可编程脚本。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'LoadBalancerName', + 'name' => 'ListenerId', 'in' => 'query', - 'schema' => [ - 'title' => '名称', - 'description' => '应用型负载均衡实例的名称,长度为2~128个英文或中文字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'alb-instance-test', - ], + 'schema' => ['title' => '监听id', 'description' => '监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-6hfq3zs0x04ibn****'], ], [ - 'name' => 'ModificationProtectionConfig', + 'name' => 'AScripts', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '负载均衡修改保护相关信息', - 'description' => '修改保护配置。', - 'type' => 'object', - 'properties' => [ - 'Reason' => [ - 'title' => '设置修改保护状态的原因', - 'description' => '开启修改保护配置的原因。'."\n" + 'title' => '脚本', + 'description' => '可编程脚本信息列表。'."\n" + ."\n", + 'type' => 'array', + 'items' => [ + 'description' => '可编程脚本信息。', + 'type' => 'object', + 'properties' => [ + 'AScriptName' => ['title' => '脚本名称', 'description' => '可编程脚本名称。'."\n" ."\n" - .'长度为2~128个英文或中文字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" + .'长度为2~128个英文或中文字符,必须以字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格。', 'type' => 'string', 'required' => true, 'example' => 'test'], + 'Position' => ['title' => '执行位置', 'description' => '可编程脚本执行位置。'."\n" ."\n" - .'仅在**Status**为**ConsoleProtection**时有效且合法。', - 'type' => 'string', - 'required' => false, - 'example' => 'Managed Instance', - ], - 'Status' => [ - 'title' => '负载均衡修改保护状态', - 'description' => '应用型负载均衡实例的修改保护状态。取值:'."\n" + .'- RequestHead(默认值):请求方向规则执行前。'."\n" ."\n" - .'- **NonProtection**:不开启修改保护。如有配置**Reason**,**Reason**会被强制置空。'."\n" + .'- RequestFoot:请求方向规则执行后。'."\n" ."\n" - .'- **ConsoleProtection**:开启控制台修改保护。如有配置**Reason**,**Reason**可生效。'."\n" + .'- ResponseHead:响应方向规则执行前。', 'type' => 'string', 'required' => false, 'example' => 'RequestFoot', 'default' => 'RequestHead'], + 'Enabled' => ['title' => '是否启用', 'description' => '是否启用可编程脚本。取值:'."\n" ."\n" - .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'ConsoleProtection', + .'- **true**:启用。'."\n" + ."\n" + .'- **false**(默认值):不启用。'."\n" + ."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'ScriptContent' => ['title' => '脚本内容', 'description' => '可编程脚本内容。', 'type' => 'string', 'required' => true, 'example' => 'if and(match_re($uri, \'^/1.txt$\'), $arg_type) { rewrite(concat(\'/1.\', $arg_type), \'break\') }'], + 'ExtAttributes' => [ + 'title' => '扩展属性', + 'description' => '扩展属性。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AttributeKey' => ['title' => '属性名称', 'description' => 'Ascript脚本的属性名称。'."\n" + ."\n" + .'仅取值 **EsDebug**:当请求携带_es_dbg参数,且值为此处配置的密钥时,开启相应的调试响应头,以输出规则执行记录。', 'type' => 'string', 'required' => false, 'example' => 'EsDebug'], + 'AttributeValue' => ['title' => '属性值', 'description' => '属性值,大小写英文字母或数字,长度为1~128个字符。', 'type' => 'string', 'required' => false, 'example' => 'test123'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + 'ExtAttributeEnabled' => ['title' => '是否启用扩展属性', 'description' => '是否启用可编程脚本扩展属性。取值:'."\n" + ."\n" + .'- true:启用。'."\n" + ."\n" + .'- false(默认值):不启用。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], + 'required' => false, ], 'required' => false, ], @@ -1492,20 +988,22 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '更新负责均衡实例属性。', + 'description' => '创建可编程脚本。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '同步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '5c607642-535e-4e06-9d77-df53049b****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'BF0FE763-9603-558F-A55B-0F4******'], + 'AScriptIds' => [ + 'title' => '可编程脚本列表', + 'description' => '可编程脚本ID列表。', + 'type' => 'array', + 'items' => [ + 'description' => '可编程脚本ID。', + 'type' => 'object', + 'properties' => [ + 'AScriptId' => ['title' => '脚本id', 'description' => '可编程脚本ID。', 'type' => 'string', 'example' => 'as-xvq5igaa7uv6vr****'], + ], + ], ], ], ], @@ -1513,44 +1011,44 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'ResourceQuotaExceeded.AScriptsNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['errorCode' => 'ResourceQuotaExceeded.AScriptsTotalLinesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['errorCode' => 'ResourceQuotaExceeded.AScriptLinesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"5c607642-535e-4e06-9d77-df53049b****\\",\\n \\"RequestId\\": \\"BF0FE763-9603-558F-A55B-0F4******\\",\\n \\"AScriptIds\\": [\\n {\\n \\"AScriptId\\": \\"as-xvq5igaa7uv6vr****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 5c607642-535e-4e06-9d77-df53049b****\\n BF0FE763-9603-558F-A55B-0F4B9A3E3C02\\n \\n as-xvq5igaa7uv6vr****\\n \\n","errorExample":""}]', + 'title' => '创建可编程脚本', + 'description' => '### 前提条件'."\n" + ."\n" + .'- 已创建标准版或WAF增强版ALB实例。具体操作,请参见[CreateLoadBalancer](~~214358~~)。'."\n" + ."\n\n" + .'### 使用说明'."\n" + ."\n" + .'**CreateAScripts**接口属于异步接口,即系统返回一个请求ID,但该可编程脚本尚未创建成功,系统后台的创建任务仍在进行。您可以调用[ListAScripts](~~472574~~)查询可编程脚本的创建状态:'."\n" + ."\n" + .' - 当可编程脚本处于**Creating**状态时,表示可编程脚本正在创建中。'."\n" + ."\n" + .' - 当可编程脚本处于**Available**状态时,表示可编程脚本创建成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateAScripts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => '更新负载均衡实例属性', - 'description' => '**UpdateLoadBalancerAttribute**接口属于异步接口,即系统返回一个请求ID,但该应用型负载均衡实例属性尚未修改成功,系统后台的修改任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询应用型负载均衡实例属性的修改状态:'."\n" - .'- 当应用型负载均衡实例属性处于**Configuring**状态时,表示应用型负载均衡实例属性正在修改中。'."\n" - .'- 当应用型负载均衡实例属性处于**Active**状态时,表示应用型负载均衡实例属性修改成功。', ], - 'UpdateLoadBalancerZones' => [ - 'summary' => '修改应用型负载均衡实例可用区属性。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateAcl' => [ + 'summary' => '在指定地域创建访问控制。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1559,105 +1057,56 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '198', - 'abilityTreeNodes' => [ - 'FEATUREslb9RALVR', - 'FEATUREslbFTB0NK', - ], + 'operationType' => 'create', + 'abilityTreeCode' => '131', + 'abilityTreeNodes' => ['FEATUREslbAYSA83'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ + [ + 'name' => 'AclName', + 'in' => 'query', + 'schema' => ['title' => 'Acl名称', 'description' => 'ACL的名称。必须以字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格,限制长度为2~128个字符。', 'type' => 'string', 'required' => false, 'example' => 'test-acl'], + ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['title' => '幂等Token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3*****'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会修改应用型负载均衡实例可用区属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['title' => 'dryRun', 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会创建访问控制策略组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'LoadBalancerId', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'title' => '实例id', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-o9ulmq5hfn68jk****', - ], + 'schema' => ['title' => '资源组Id', 'description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], ], [ - 'name' => 'ZoneMappings', + 'name' => 'Tag', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '可用区及交换机映射列表', - 'description' => '可用区及交换机映射列表,最多支持指定10个可用区。若当前地域支持2个及以上的可用区,至少需要指定2个可用区。如果指定,则会替换之前的可用区配置。', + 'description' => '标签。', 'type' => 'array', 'items' => [ - 'description' => '可用区及交换机映射结构。最多支持指定10个可用区。若当前地域支持2个及以上的可用区,至少需要指定2个可用区。如果指定,则会替换之前的可用区配置。', + 'description' => '标签结构。', 'type' => 'object', 'properties' => [ - 'VSwitchId' => [ - 'title' => '交换机标识', - 'description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-bp1rmcrwg3srh1fh8****', - ], - 'ZoneId' => [ - 'title' => '可用区', - 'description' => '可用区名称,通过调用[DescribeZones](~~189196~~)接口获得。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou-a', - ], - 'EipType' => [ - 'title' => '弹性公网IP类型', - 'description' => '公网EIP的类型。取值:'."\n" - ."\n" - .'- **Common**:弹性公网IP,简称EIP。'."\n" - .'- **Anycast**:任播弹性公网IP,简称Anycast EIP。'."\n" - ."\n" - .'> ALB支持绑定Anycast EIP的地域,请参见[使用限制](~~460727~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'Common', - ], - 'IntranetAddress' => [ - 'description' => 'IPv4私网地址。至少需要添加2个可用区,最多支持添加10个可用区。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.10.1', - ], + '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' => true, - 'maxItems' => 10, - 'minItems' => 1, + 'required' => false, + 'example' => 'rg-12313', ], ], ], @@ -1665,1084 +1114,915 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '修改可用区属性。', + 'description' => '创建访问控制。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], + 'AclId' => ['title' => 'AclId', 'description' => 'ACL实例ID。', 'type' => 'string', 'example' => 'acl-hp34s2h0xx1ht4nwo****'], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.Eip', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.ZoneVSwitchChanged', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.ZoneMappingsNotChanged', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceNotEnough.VSwitchIp', - 'errorMessage' => 'The specified resource %s is not enough.', - ], - [ - 'errorCode' => 'Mismatch.ZoneIdAndVSwitchId', - 'errorMessage' => 'The %s and %s are mismatched.', - ], + ['errorCode' => 'QuotaExceeded.AclsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['errorCode' => 'NotExist.ResourceGroup', 'errorMessage' => 'ResourceGroup does not exist.', 'description' => '资源组不存在'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource %s is not found.', - ], + 403 => [ + ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'ACL authentication has failed.', 'description' => '对Acl鉴权失败'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclId\\": \\"acl-hp34s2h0xx1ht4nwo****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n nacl-hp34s2h0xx1ht4nwo****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => '创建访问控制', + 'description' => '**CreateAcl**接口属于异步接口,即系统返回一个实例ID,但该访问控制策略组尚未创建成功,系统后台的创建任务仍在进行。您可以调用[ListAcls](~~213617~~)查询访问控制策略组的创建状态:'."\n" + .'- 当访问控制策略组处于**Creating**状态时,表示访问控制策略组正在创建中。'."\n" + .'- 当访问控制策略组处于**Available**状态时,表示访问控制策略组创建成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/*'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => '更新负载均衡可用区', - 'description' => '**UpdateLoadBalancerZones**接口属于异步接口,即系统返回一个请求ID,但该应用型负载均衡实例可用区属性尚未修改成功,系统后台的修改任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询应用型负载均衡实例可用区属性的修改状态:'."\n" - .'- 当应用型负载均衡实例处于**Configuring**状态时,表示应用型负载均衡实例可用区属性正在修改中。'."\n" - .'- 当应用型负载均衡实例处于**Active**状态时,表示应用型负载均衡实例可用区属性修改成功。'."\n" - ."\n" - .'> 调用UpdateLoadBalancerZones接口可能会产生费用。', ], - 'UpdateLoadBalancerEdition' => [ - 'summary' => '变更当前负载均衡版本。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateHealthCheckTemplate' => [ + 'summary' => '在指定地域创建健康检查模板。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', + 'abilityTreeCode' => '149', + 'abilityTreeNodes' => ['FEATUREslb6RAQIN'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'allowEmptyValue' => false, + 'schema' => ['title' => '幂等参数', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n\n" + .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'], ], [ - 'name' => 'DryRun', + 'name' => 'HealthCheckTemplateName', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会修改应用型负载均衡版本。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行修改。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '名称', 'description' => '健康检查模板名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格。', 'type' => 'string', 'required' => true, 'example' => 'HealthCheckTemplate1'], ], [ - 'name' => 'LoadBalancerId', + 'name' => 'HealthCheckConnectPort', 'in' => 'query', - 'schema' => [ - 'title' => '实例Id', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-bp1b6c719dfa08ex****', - ], + 'schema' => ['title' => '端口号', 'description' => '健康检查使用的端口。'."\n" + ."\n" + .'取值范围:**0~65535**。'."\n" + ."\n" + .'默认值:**0**,表示使用后端服务器的端口进行健康检查。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80'], ], [ - 'name' => 'LoadBalancerEdition', + 'name' => 'HealthCheckHost', + 'in' => 'query', + 'schema' => ['title' => '域名', 'description' => '用于健康检查的域名。取值: '."\n" + ."\n" + .'- **$SERVER_IP**:后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用后端服务器的私网IP当做健康检查使用的域名。'."\n" + ."\n" + .'- **domain**:域名长度为1~80字符,只能包含字母、数字、半角句号(.)和短划线(-)。'."\n" + ."\n" + .'> 只有`HealthCheckProtocol`设置为**HTTP**或**HTTPS**时该参数生效。', 'type' => 'string', 'required' => false, 'example' => '$SERVER_IP'], + ], + [ + 'name' => 'HealthCheckCodes', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '实例版本', - 'description' => '应用型负载均衡的版本,不同版本有不同功能限制和计费策略。'."\n" - ."\n" - .'- **Basic**:基础版。'."\n" + 'title' => '状态码', + 'description' => '健康检查正常的状态码列表。', + 'type' => 'array', + 'items' => ['description' => '健康检查正常的HTTP状态码。'."\n" + ."\n\n" + .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http\\_2xx**(默认值)、 **http\\_3xx**、**http\\_4xx**和**http\\_5xx**,多个状态码用半角逗号(,)分隔。'."\n" ."\n" - .'- **Standard**:标准版。'."\n" + .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**,默认值:**0**。支持范围输入,最多支持20个范围值,多个范围值使用半角逗号(,)隔开。'."\n" ."\n" - .'- **StandardWithWaf**:WAF增强版。', - 'type' => 'string', - 'required' => true, - 'example' => 'Standard', + .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时才有该参数。', 'type' => 'string', 'required' => false, 'example' => 'http_2xx'], + 'required' => false, + 'example' => '5', ], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '修改负载均衡版本。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3', - ], - ], - ], + [ + 'name' => 'HealthCheckInterval', + 'in' => 'query', + 'schema' => ['title' => '时间间隔', 'description' => '健康检查的时间间隔。'."\n" + ."\n" + .'取值范围:**1~50**秒。'."\n" + ."\n" + .'默认值:**2**秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.Downgrade', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.EditionNotChanged', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], + [ + 'name' => 'HealthCheckTimeout', + 'in' => 'query', + 'schema' => ['title' => '超时时间', 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端服务器在指定的时间内没有正确响应,则判定为健康检查失败。'."\n" + ."\n" + .'取值范围:**1~300**秒。'."\n" + ."\n" + .'默认值:**5**秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], + [ + 'name' => 'HealthCheckPath', + 'in' => 'query', + 'schema' => ['title' => 'uri', 'description' => '用于健康检查的URL。'."\n" + ."\n" + .'长度限制为1~80,支持使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)和and(&)以及扩展字符集`_;~!()*[]@$^:\',+`。URL必须以正斜线(/)开头。'."\n" + ."\n" + .'> 只有`HealthCheckProtocol`为**HTTP**或**HTTPS**时才有该参数。', 'type' => 'string', 'required' => false, 'example' => '/test/index.html'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', - 'title' => '变更负载均衡版本', - 'description' => '- ALB实例仅支持基础版升级为标准版和WAF增强版,WAF增强版变更为标准版,不支持标准版和WAF增强版变更为基础版。具体操作,请参见[升级实例功能版本](~~214654~~)。'."\n" - .'- **UpdateLoadBalancerEdition**接口属于异步接口,即系统返回一个请求ID,但该应用型负载均衡版本尚未修改成功,系统后台的修改任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询应用型负载均衡版本的修改状态:'."\n" - .' - 当应用型负载均衡版本处于**Configuring**状态时,表示应用型负载均衡版本正在修改中。'."\n" - .' - 当应用型负载均衡版本处于**Active**状态时,表示应用型负载均衡版本修改成功。', - ], - 'UpdateLoadBalancerAddressTypeConfig' => [ - 'summary' => '变更应用型负载均衡实例的网络类型。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'HealthCheckMethod', + 'in' => 'query', + 'schema' => ['title' => '方法', 'description' => '健康检查方法。取值:'."\n" + ."\n" + .'- **HEAD**(默认值):HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" + ."\n" + .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" + ."\n" + .'- **GET**:如果响应报文长度超过8KB,会被截断,但不会影响健康检查结果的判定。'."\n" + ."\n" + .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时才有该参数。', 'type' => 'string', 'required' => false, 'example' => 'HEAD'], ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '86743', - 'abilityTreeNodes' => [ - 'FEATUREslbXJYU12', - 'FEATUREslbSUND48', + [ + 'name' => 'HealthCheckProtocol', + 'in' => 'query', + 'schema' => ['title' => '协议', 'description' => '健康检查采用的协议。取值:'."\n" + ."\n" + .'- **HTTP**(默认值):通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" + ."\n" + .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" + ."\n" + .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" + ."\n" + .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', 'type' => 'string', 'required' => false, 'example' => 'HTTP'], ], - ], - 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'HealthCheckHttpVersion', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665544****', - ], + 'schema' => ['title' => '版本', 'description' => '健康检查HTTP协议版本。'."\n" + ."\n" + .'取值:**HTTP 1.0**或**HTTP 1.1**。'."\n" + ."\n" + .'默认值:**HTTP 1.1**。'."\n" + ."\n" + .'> 只有`HealthCheckProtocol`为**HTTP**或**HTTPS**时才有该参数。', 'type' => 'string', 'required' => false, 'example' => 'HTTP 1.0'], ], [ - 'name' => 'DryRun', + 'name' => 'HealthyThreshold', 'in' => 'query', - 'schema' => [ - 'title' => '是否只预检此次请求', - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会更新实例的网络类型。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '健康阈值', 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n" + ."\n" + .'取值范围:**2~10**。'."\n" + ."\n" + .'默认值:**3**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '4'], ], [ - 'name' => 'LoadBalancerId', + 'name' => 'UnhealthyThreshold', 'in' => 'query', - 'schema' => [ - 'title' => '实例id', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-bp1o94dp5i6ea****', - ], + 'schema' => ['title' => '不健康阈值', 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n" + ."\n" + .'取值范围:**2~10**。'."\n" + ."\n" + .'默认值:**3**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '4'], ], [ - 'name' => 'AddressType', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '目标网络类型', - 'description' => '目标网络类型。取值:'."\n" - ."\n" - .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - ."\n" - .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', - 'required' => true, - 'example' => 'Internet', - ], + 'schema' => ['title' => 'dryRun', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回**http_2xx**状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'ZoneMappings', + 'name' => 'Tag', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '可用区及交换机映射列表', - 'description' => '可用区及交换机映射列表,最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', + 'description' => '标签。', 'type' => 'array', 'items' => [ - 'description' => '可用区及交换映射列表结构体。', + 'description' => '标签结构。', 'type' => 'object', 'properties' => [ - 'VSwitchId' => [ - 'title' => '交换机标识', - 'description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-bp10ttov87felojcn****', - ], - 'ZoneId' => [ - 'title' => '可用区', - 'description' => '应用型负载均衡实例的可用区ID。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。'."\n" - ."\n" - .'您可以通过调用[DescribeZones](~~189196~~)接口获取可用区ID对应的可用区信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou-a', - ], - 'AllocationId' => [ - 'title' => '弹性公网IP', - 'description' => '弹性公网IP实例ID。最多支持添加10个可用区。'."\n" - ."\n" - .'> 调用此接口由私网转换为公网时,需要输入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'eip-bp1aedxso6u80u0qf****', - ], - 'EipType' => [ - 'title' => '弹性公网IP类型', - 'description' => '弹性公网IP的类型。取值:'."\n" - ."\n" - .'- Common(默认值):弹性公网IP。'."\n" - ."\n" - .'- Anycast:任播弹性公网IP。'."\n" - ."\n" - .'> ALB支持绑定Anycast EIP的地域,请参见[使用限制](~~460727~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'Common', - ], + '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, ], ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构体。', + 'description' => '健康检查模板。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3', - ], - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'HealthCheckTemplateId' => ['title' => '健康检查模板ID', 'description' => '健康检查模板ID。', 'type' => 'string', 'example' => 'hct-pno8sisi******'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.OnlyPostPaidEipSupported', - 'errorMessage' => 'The operation is not allowed because of OnlyPostPaidEipSupported.', - ], - [ - 'errorCode' => 'Mismatch.ZoneIdAndVSwitchId', - 'errorMessage' => 'The ZoneId and VSwitchId are mismatched.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.Eip', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.Eip', - 'errorMessage' => 'The specified resource ResourceNotFound.Eip is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.CommonBandwidthPackage', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.CommonBandwidthPackage', - 'errorMessage' => 'The business status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.AddressTypeNotChanged', - 'errorMessage' => 'The operation is not allowed because of AddressTypeNotChanged.', - ], - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], + ['errorCode' => 'QuotaExceeded.HealthCheckTemplatesNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.CommonBandwidthPackage', - 'errorMessage' => 'The specified resource %s is not found.', - ], + 403 => [ + ['errorCode' => 'Forbidden.HealthCheckTemplate', 'errorMessage' => 'Authentication has failed for HealthCheckTemplate.', 'description' => '对HealthCheckTemplate鉴权失败'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"HealthCheckTemplateId\\": \\"hct-pno8sisi******\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n hct-1224334\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + 'title' => '创建健康检查模板', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateHealthCheckTemplate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/*'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => '变更负载均衡实例的网络类型配置', - 'description' => '前提条件:'."\n" - ."\n" - .'- 您已经创建应用型负载均衡实例,具体操作,请参见[CreateLoadBalancer](~~214358~~)。'."\n" - .'- 当您需要通过此接口将应用型负载均衡实例的网络类型由私网变为公网时,您需要先创建一个弹性公网IP。具体操作,请参见[AllocateEipAddress](~~120192~~)。'."\n" - ."\n" - .'使用说明:'."\n" - ."\n" - .'**UpdateLoadBalancerAddressTypeConfig**接口属于异步接口,即系统返回一个请求ID,但该应用型负载均衡实例的网络类型尚未变更成功,系统后台的变更任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询应用型负载均衡实例的网络类型的变更状态:'."\n" - .'- 当应用型负载均衡实例处于**Configuring**状态时,表示应用型负载均衡实例的网络类型正在变更中。'."\n" - .'- 当应用型负载均衡实例处于**Active**状态时,表示应用型负载均衡实例的网络类型变更成功。', ], - 'ListLoadBalancers' => [ - 'summary' => '查询实例配置', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateListener' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREslb6TP8T4', - ], + 'abilityTreeCode' => '186', + 'abilityTreeNodes' => ['FEATUREslbM7ALO6', 'FEATUREslbK3ZR0L', 'FEATUREslbN5IE4S'], ], 'parameters' => [ [ - 'name' => 'NextToken', + 'name' => 'LoadBalancerId', 'in' => 'query', - 'schema' => [ - 'title' => '用来标记当前开始读取的位置,置空表示从头开始。', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['title' => '负载均衡标识', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-n5qw04uq8vavfe****'], ], [ - 'name' => 'MaxResults', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '本次读取的最大数据记录数量,此参数为可选参数,取值1-100,用户传入为空时,默认为20。', - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值:**20**。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], [ - 'name' => 'ZoneId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '可用区ID', - 'description' => '应用型负载均衡实例所在的可用区ID。'."\n" - ."\n" - .'您可以通过调用[DescribeZones](~~189196~~)接口获取可用区ID对应的可用区信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou-a', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'LoadBalancerStatus', + 'name' => 'ListenerProtocol', 'in' => 'query', - 'schema' => [ - 'title' => '实例状态', - 'description' => '应用型负载均衡实例状态。取值:'."\n" - ."\n" - .'- **Inactive**: 已停止,监听不再转发流量。'."\n" - ."\n" - .'- **Active**::运行中。'."\n" - ."\n" - .'- **Provisioning**:创建中。'."\n" - ."\n" - .'- **Configuring**:变配中。'."\n" - ."\n" - .'- **CreateFailed**:创建失败,此时不会产生费用,实例只能被删除。系统默认清理最近1天创建失败的实例。', - 'type' => 'string', - 'required' => false, - 'example' => 'Active', - ], + 'schema' => ['title' => '监听协议', 'description' => '监听协议。'."\n" + ."\n" + .'取值:**HTTP**、**HTTPS**或**QUIC**。', 'type' => 'string', 'required' => true, 'example' => 'HTTP'], ], [ - 'name' => 'LoadBalancerBussinessStatus', + 'name' => 'ListenerPort', 'in' => 'query', - 'schema' => [ - 'title' => '实例业务状态', - 'description' => '应用型负载均衡的业务状态。取值:'."\n" - ."\n" - .'- **Abnormal**:异常。'."\n" - ."\n" - .'- **Normal**:正常。', - 'type' => 'string', - 'required' => false, - 'example' => 'Normal', - ], + 'schema' => ['title' => '监听端口', 'description' => '负载均衡实例前端使用的端口。'."\n" + ."\n" + .'取值:**1~65535**。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '80'], ], [ - 'name' => 'LoadBalancerIds', + 'name' => 'ListenerDescription', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '实例ID列表,N最大支持20', - 'description' => '实例ID列表。最多支持20个应用型负载均衡实例ID。', - 'type' => 'array', - 'items' => [ - 'description' => '实例的ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'alb-o9ulmq5hgn68jk****', - ], - 'required' => false, - 'maxItems' => 21, - 'minItems' => 1, - ], + 'schema' => ['title' => '监听描述', 'description' => '自定义监听名称。'."\n" + ."\n" + .'长度为2~256个字符,必须是中文和无害字符串中的字符,可包含中文、字母、数字、短划线(-)、正斜线(/)、半角句号(.)、下划线(_)。', 'type' => 'string', 'required' => false, 'example' => 'HTTP_80'], ], [ - 'name' => 'LoadBalancerNames', + 'name' => 'RequestTimeout', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '实例Name列表,N最大支持10', - 'description' => '实例名称列表。最多支持10个实例名称。', - 'type' => 'array', - 'items' => [ - 'description' => '实例名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'alb-instance-test', - ], - 'required' => false, - 'maxItems' => 11, - 'minItems' => 1, - ], + 'schema' => ['title' => '请求超时时间', 'description' => '指定请求超时时间。单位:秒。'."\n" + ."\n" + .'取值:**1~600**。'."\n" + ."\n" + .'默认值:**60**。'."\n" + ."\n" + .'如果在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,并给客户端返回` HTTP 504 `错误码。'."\n" + ."\n" + .'> 用户可以申请提升配额将请求超时时间提升至最大3600秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '60', 'default' => '60'], ], [ - 'name' => 'VpcIds', + 'name' => 'IdleTimeout', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => 'vpcId列表', - 'description' => '应用型负载均衡实例所属的VPC ID。最多支持10个VPC ID。', - 'type' => 'array', - 'items' => [ - 'description' => '应用型负载均衡实例所属的VPC ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp1b49rqrybk45nio****', - ], - 'required' => false, - 'maxItems' => 11, - 'minItems' => 1, + 'schema' => ['title' => '连接空闲超时时间', 'description' => '指定连接空闲超时时间。单位:秒。'."\n" + ."\n" + .'取值范围:**1~600**。'."\n" + ."\n" + .'默认值:**15**。'."\n" + ."\n" + .'如果在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到一下次请求来临时重新建立新的连接。'."\n" + ."\n" + .'> 用户可以申请提升配额将连接空闲超时时间提升至最大3600秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '3', 'default' => '15'], + ], + [ + 'name' => 'GzipEnabled', + 'in' => 'query', + 'schema' => ['title' => '是否开启Gzip压缩', 'description' => '是否开启`Gzip`压缩,对特定文件类型进行压缩。取值:'."\n" + ."\n" + .'- **true**(默认值):是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'Http2Enabled', + 'in' => 'query', + 'schema' => ['title' => '是否开启HTTP/2特性', 'description' => '是否开启`HTTP/2`特性。取值:'."\n" + .'- **true**(默认值):是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'SecurityPolicyId', + 'in' => 'query', + 'schema' => ['title' => '安全策略', 'description' => '安全策略ID。支持系统安全策略和自定义安全策略。'."\n" + ."\n" + .'默认值:**tls\\_cipher\\_policy\\_1_0**(系统安全策略)。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'required' => false, 'example' => 'tls_cipher_policy_1_0'], + ], + [ + 'name' => 'CaEnabled', + 'in' => 'query', + 'schema' => ['title' => '是否开启双向认证', 'description' => '是否开启双向认证。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**(默认值):不开启。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'XForwardedForConfig', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => 'XForward字段相关的配置', + 'description' => 'XForward字段配置信息。', + 'type' => 'object', + 'properties' => [ + 'XForwardedForClientCertClientVerifyAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertClientVerifyEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头名称,只有当**XForwardedForClientCertClientVerifyEnabled**的值为**true**的时候,该值才会生效;否则该值不会生效。'."\n" + ."\n" + .'取值:1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'required' => false, 'example' => 'test_client-verify-alias_123456'], + 'XForwardedForClientCertClientVerifyEnabled' => ['title' => '是否通过X-Forwarded-Clientcert-clientverify 头字段获取对访问负载均衡实例客户端证书的校验结果。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-clientverify`头字段获取对访问负载均衡实例客户端证书的校验结果。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'XForwardedForClientCertFingerprintAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertFingerprintEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头名称,只有当**XForwardedForClientCertFingerprintEnabled**的值为**true**时生效。'."\n" + ."\n" + .'取值:1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'required' => false, 'example' => 'test_finger-print-alias_123456'], + 'XForwardedForClientCertFingerprintEnabled' => ['title' => '是否通过X-Forwarded-Clientcert-fingerprint 头字段获取访问负载均衡实例客户端证书的指纹取值,HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-fingerprint`头字段获取访问负载均衡实例客户端证书的指纹取值。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'XForwardedForClientCertIssuerDNAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertIssuerDNEnabled的值为‘On’的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头名称,只有当**XForwardedForClientCertIssuerDNEnabled**的值为**true**的时候,此值才会生效。'."\n" + ."\n" + .'取值:1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'required' => false, 'example' => 'test_issue-dn-alias_123456'], + 'XForwardedForClientCertIssuerDNEnabled' => ['title' => '是否通过 X-Forwarded-Clientcert-issuerdn 头字段获取访问负载均衡实例客户端证书的发行者信息。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-issuerdn`头字段获取访问负载均衡实例客户端证书的发行者信息。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'XForwardedForClientCertSubjectDNAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertSubjectDNEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头名称,只有当**XForwardedForClientCertSubjectDNEnabled**的值为**true**时,此值才会生效。'."\n" + ."\n" + .'取值:1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'required' => false, 'example' => 'test_subject-dn-alias_123456'], + 'XForwardedForClientCertSubjectDNEnabled' => ['title' => '是否通过X-Forwarded-Clientcert-subjectdn 头字段获取访问负载均衡实例客户端证书的所有者信息。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-subjectdn`头字段获取访问负载均衡实例客户端证书的所有者信息。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'XForwardedForClientSrcPortEnabled' => ['title' => '是否通过X-Forwarded-Client-Port 头字段获取访问负载均衡实例客户端的端口。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Client-srcport`头字段获取访问负载均衡实例客户端的端口。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> HTTP和HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'XForwardedForEnabled' => ['title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP', 'description' => '是否通过`X-Forwarded-For`头字段获取来访者真实IP。取值:'."\n" + .'- **true**(默认值):是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 1. 配置**true**,**XForwardedForProcessingMode**默认取值**append**,支持修改为**remove**。'."\n" + .'> 2. 配置**false**,ALB将请求发送至后端服务之前保留`X-Forwarded-For`头字段,不做额外处理。'."\n" + .'> 3. HTTP和HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'XForwardedForProcessingMode' => ['description' => '处理`X-Forwarded-For`头字段的模式。只有当**XForwardedForEnabled**为**true**时,此值才会生效。取值:'."\n" + .'- **append**(默认值):附加。'."\n" + .'- **remove**:删除。'."\n" + ."\n" + .'> 1. 配置**append**,将请求发送至后端服务之前把最后一跳IP加入`X-Forwarded-For`头字段。'."\n" + .'> 2. 配置**remove**,请求发送至后端服务之前删除`X-Forwarded-For`标头,无论请求是否携带`X-Forwarded-For`头字段。'."\n" + .'> 3. HTTP和HTTPS监听支持此参数。', 'type' => 'string', 'required' => false, 'example' => 'append'], + 'XForwardedForProtoEnabled' => ['title' => '是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。', 'description' => '是否通过`X-Forwarded-Proto`头字段获取负载均衡实例的监听协议。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForSLBIdEnabled' => ['title' => '是否通过SLB-ID头字段获取负载均衡实例ID。', 'description' => '是否通过`SLB-ID`头字段获取负载均衡实例ID。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForSLBPortEnabled' => ['title' => '是否通过X-Forwarded-Port 头字段获取负载均衡实例的监听端口。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Port`头字段获取负载均衡实例的监听端口。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForClientSourceIpsEnabled' => ['description' => '是否允许ALB从X-Forwarded-For头字段中查找真实客户端IP。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> HTTP、HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForClientSourceIpsTrusted' => ['description' => '指定可信的代理IP。'."\n" + ."\n" + .'应用型负载均衡ALB会从后往前遍历`X-Forwarded-For`,选取第一个不在可信IP列表中的IP作为真实的客户端IP,该IP会被用于源IP限速。', 'type' => 'string', 'required' => false, 'example' => '10.1.1.0/24'], + 'XForwardedForHostEnabled' => ['description' => '是否开启通过`X-Forwarded-Host`头字段获取访问负载均衡实例客户端的域名。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + 'required' => false, ], ], [ - 'name' => 'Tag', + 'name' => 'QuicConfig', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => 'tag列表', - 'description' => '实例标签。', + 'title' => 'HTTPS启用QUIC时相关属性', + 'description' => '配置关联的QUIC监听。', + 'type' => 'object', + 'properties' => [ + 'QuicListenerId' => ['title' => '需要关联的QUIC监听ID,HTTPS监听时有效,QuicUpgradeEnabled为true时必选', 'description' => '需要关联的QUIC监听ID,HTTPS监听时有效,当**QuicUpgradeEnabled**为**true**时该参数必选。'."\n" + ."\n" + .'> 原始监听和关联的QUIC监听必须属于同一个ALB实例,并且此QUIC监听之前没有被关联过。', 'type' => 'string', 'required' => false, 'example' => 'lsn-o4u54y73wq7b******'], + 'QuicUpgradeEnabled' => ['title' => '是否开启quic升级,HTTPS监听时有效', 'description' => '是否开启QUIC升级。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + 'required' => false, + ], + ], + [ + 'name' => 'Certificates', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '监听默认服务器证书列表,N当前取值范围为1', + 'description' => '证书列表信息。', 'type' => 'array', 'items' => [ - 'description' => '实例标签结构。', + 'description' => '证书结构体。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'title' => '实例的标签键', - 'description' => '实例的标签键。最多支持输入20个标签键。一旦输入该值,则不允许为空字符串。'."\n" - ."\n" - .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'KeyTest', - ], - 'Value' => [ - 'title' => '实例的标签值', - 'description' => '实例的标签值。最多支持输入20个标签值。一旦输入该值,可以为空字符串。'."\n" - ."\n" - .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'alueTest', - ], + 'CertificateId' => ['title' => '正式标识', 'description' => '默认证书ID,目前仅支持添加 1 个默认服务器证书。'."\n" + ."\n" + .'> - 当**ListenerProtocol**参数取值为**HTTPS**或**QUIC**的时候,此参数为必填。'."\n" + .'> - 如需更多服务器证书,可在创建监听后调用[AssociateAdditionalCertificatesWithListener](~~2254830~~)配置扩展证书。', 'type' => 'string', 'required' => false, 'example' => '103705*******'], ], 'required' => false, ], 'required' => false, - 'maxItems' => 21, + 'maxItems' => 1, 'minItems' => 1, ], ], [ - 'name' => 'AddressType', + 'name' => 'CaCertificates', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '负载均衡的地址类型', - 'description' => '实例地址类型。取值:'."\n" - ."\n" - .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - ."\n" - .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', + 'title' => '监听默认CA证书列表,N当前取值范围为1', + 'description' => '监听配置的CA证书列表。目前仅支持添加1个CA证书。', + 'type' => 'array', + 'items' => [ + 'description' => '监听配置的CA证书结构。', + 'type' => 'object', + 'properties' => [ + 'CertificateId' => ['title' => '正式标识', 'description' => 'CA证书ID。'."\n" + ."\n" + .'> 当**CaEnabled**参数取值为**true**的时候,此参数为必填。', 'type' => 'string', 'required' => false, 'example' => '123157*******'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'Intranet', + 'maxItems' => 1, + 'minItems' => 1, ], ], [ - 'name' => 'PayType', + 'name' => 'DefaultActions', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '付费类型', - 'description' => '实例的计费类型。取值:'."\n" - ."\n" - .'**PostPay**(默认值):表示按量计费。', - 'type' => 'string', - 'required' => false, - 'example' => 'PostPay', + 'title' => '监听默认动作', + 'description' => '规则动作列表。', + 'type' => 'array', + 'items' => [ + 'description' => '规则动作列表。', + 'type' => 'object', + 'properties' => [ + 'ForwardGroupConfig' => [ + 'title' => '转发组', + 'description' => '转发动作对应的配置。最多支持添加20个转发动作对应的配置。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'title' => '服务器组列表', + 'description' => '转发目标服务器元组。', + 'type' => 'array', + 'items' => [ + 'description' => '转发目标服务器元组。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['title' => '服务器组ID', 'description' => '转发到的目的服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-8ilqs4axp6******'], + ], + 'required' => true, + ], + 'required' => true, + ], + ], + 'required' => true, + ], + 'Type' => ['title' => '动作类型', 'description' => '动作类型。最多支持添加1个动作类型。'."\n" + ."\n" + .'取值:**ForwardGroup**,表示转发至多个服务器组。', 'type' => 'string', 'required' => true, 'example' => 'ForwardGroup'], + ], + 'required' => true, + ], + 'required' => true, ], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '资源组ID', - 'description' => '企业资源组ID。', - 'type' => 'string', + '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, - 'example' => 'rg-acfmxazb4ph****', ], ], - [ - 'name' => 'AddressIpVersion', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '需要过滤的协议版本', - 'description' => '协议版本。取值:'."\n" - ."\n" - .'- **IPv4**:IPv4类型。'."\n" - .'- **DualStack**:双栈类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'IPv4', + 'title' => 'Schema of Response', + 'description' => '创建监听。', + 'type' => 'object', + 'properties' => [ + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'ListenerId' => ['title' => '监听标识', 'description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-o4u54y73wq7b******'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876*******'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ResourceAlreadyExist.Listener', 'errorMessage' => 'The specified resource %s is already exist.', 'description' => '同端口监听已存在。'."\n"], + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerListenersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ['errorCode' => 'OperationDenied.CrossLoadBalancerQUICListener', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'ResourceAlreadyAssociated.Listener', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => '资源%s已被关联。'], + ['errorCode' => 'ResourceQuotaExceeded.SecurityPolicyAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ['errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器组可被关联数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '后端服务器数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器添加到组已超额度限制。'], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'OperationDenied.ServerGroupProtocolNotSupport', 'errorMessage' => 'The operation is not allowed because of ServerGroupProtocolNotSupport.', 'description' => '操作被拒绝,原因是ServerGroupProtocolNotSupport。'], + ['errorCode' => 'OperationDenied.GRPCServerGroup', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是存在绑定本GRPC服务器组的监听没有启用HTTP2.0。'], + ['errorCode' => 'Mismatch.LoadBalancerEditionAndConnectionDrain', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => '参数%s和%s不匹配。'], + ['errorCode' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => '参数%s和%s不匹配。'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Invalid parameter, please check the parameter input.', 'description' => '无效参数,请检查参数输入。'], + ['errorCode' => 'OperationDenied.CACertificateCorrupted', 'errorMessage' => 'The CA certificate is corrupted.', 'description' => 'CA证书已经损坏'], + ], + 403 => [ + ['errorCode' => 'Forbidden.SecurityPolicy', 'errorMessage' => 'Authentication has failed for SecurityPolicy.', 'description' => '对SecurityPolicy鉴权失败'], + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ['errorCode' => 'Forbidden.Listener', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '监听鉴权失败。'], + ], [ - 'name' => 'Ipv6AddressType', - 'in' => 'query', - 'schema' => [ - 'title' => 'IPV6的地址网络类型', - 'description' => '应用型负载均衡的IPv6地址类型。取值:'."\n" - ."\n" - .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - ."\n" - .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', - 'required' => false, - 'example' => 'Intranet', + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], + ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], + ['errorCode' => 'ResourceNotFound.Certificate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '创建监听', + 'summary' => '创建监听。', + 'description' => '**CreateListener**接口属于异步接口,即系统返回一个请求ID,但该HTTP、HTTPS或QUIC监听尚未创建成功,系统后台的创建任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询HTTP、HTTPS或QUIC监听的创建状态:'."\n" + .'- 当HTTP、HTTPS或QUIC监听处于**Provisioning**状态时,表示HTTP、HTTPS或QUIC监听正在创建中。'."\n" + .'- 当HTTP、HTTPS或QUIC监听处于**Running**状态时,表示HTTP、HTTPS或QUIC监听创建成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateListener', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'alb:ListenerProtocol', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"ListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n lsr-bp1bpn0kn908w4nbw****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + ], + 'CreateLoadBalancer' => [ + 'summary' => '在指定地域创建应用型负载均衡实例', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '194', + 'abilityTreeNodes' => ['FEATUREslbM7ALO6'], + ], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], + ], [ - 'name' => 'DNSName', + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建应用型负载均衡实例。检查项包括是否填写了必需参数、请求格式和业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => ['title' => '负载均衡实例的专有网络ID。', 'description' => '应用型负载均衡实例的专有网络ID。', 'type' => 'string', 'required' => true, 'example' => 'vpc-bp1b49rqrybk45nio****'], + ], + [ + 'name' => 'AddressType', + 'in' => 'query', + 'schema' => ['title' => '负载均衡的地址类型', 'description' => '应用型负载均衡的地址类型。取值:'."\n" + ."\n" + .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + ."\n" + .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'required' => true, 'example' => 'Internet'], + ], + [ + 'name' => 'LoadBalancerName', + 'in' => 'query', + 'schema' => ['title' => '名称', 'description' => '应用型负载均衡实例名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格。', 'type' => 'string', 'required' => false, 'example' => 'alb1'], + ], + [ + 'name' => 'DeletionProtectionEnabled', + 'in' => 'query', + 'schema' => ['title' => '是否开启删除保护', 'description' => '是否开启删除保护。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**(默认值):关闭。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'ModificationProtectionConfig', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'description' => 'DNS域名。', - 'type' => 'string', + 'title' => '负载均衡修改保护相关信息', + 'description' => '修改保护配置。', + 'type' => 'object', + 'properties' => [ + 'Reason' => ['title' => '设置修改保护状态的原因', 'description' => '输入开启修改保护的原因。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" + ."\n" + .'>仅在**Status**为**ConsoleProtection**时该参数有效且合法。', 'type' => 'string', 'required' => false, 'example' => 'Managed Instance'], + 'Status' => ['title' => '负载均衡修改保护状态', 'description' => '应用型负载均衡实例的修改保护状态。取值:'."\n" + ."\n" + .'- **NonProtection**:不开启修改保护。如有配置**Reason**,**Reason**会被强制置空。'."\n" + ."\n" + .'- **ConsoleProtection**:开启控制台修改保护。如有配置**Reason**,**Reason**可生效。'."\n" + ."\n" + .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', 'type' => 'string', 'required' => false, 'example' => 'ConsoleProtection'], + ], 'required' => false, - 'example' => 'alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com', ], ], - ], - 'responses' => [ - 200 => [ + [ + 'name' => 'ZoneMappings', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '应用型负载均衡实例配置信息。', - 'type' => 'object', - 'properties' => [ - 'LoadBalancers' => [ - 'title' => '实例列表', - 'description' => '应用型负载均衡实例列表。', - 'type' => 'array', - 'items' => [ - 'description' => '应用型负载均衡实例结构。', - 'type' => 'object', - 'properties' => [ - 'AccessLogConfig' => [ - 'title' => '访问日志属性', - 'description' => '访问日志配置结构。', - 'type' => 'object', - 'properties' => [ - 'LogProject' => [ - 'title' => '访问日志投递的logProject', - 'description' => '日志项目。', - 'type' => 'string', - 'example' => 'sls-setter', - ], - 'LogStore' => [ - 'title' => '删除保护开启时间', - 'description' => '日志存储。', - 'type' => 'string', - 'example' => 'test', - ], - ], - ], - 'AddressAllocatedMode' => [ - 'title' => '地址模式', - 'description' => '地址模式。取值 :'."\n" - ."\n" - .'- **Fixed**:固定IP模式,表示使用固定IP地址。'."\n" - ."\n" - .'- **Dynamic**:动态IP模式,表示每个可用区动态分配IP地址。', - 'type' => 'string', - 'example' => 'Fixed', - ], - 'AddressType' => [ - 'title' => '地址类型', - 'description' => '负载均衡的地址类型。取值:'."\n" - ."\n" - .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - ."\n" - .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', - 'example' => 'Intranet', - ], - 'BandwidthPackageId' => [ - 'title' => '带宽包ID', - 'description' => '公网类型实例关联的共享带宽包ID。', - 'type' => 'string', - 'example' => 'cbwp-bp1vevu8h3ieh****', - ], - 'CreateTime' => [ - 'title' => '资源创建时间', - 'description' => '资源创建时间。', - 'type' => 'string', - 'example' => '2022-07-02T02:49:05Z', - ], - 'DNSName' => [ - 'title' => 'DNS域名', - 'description' => 'DNS域名。', - 'type' => 'string', - 'example' => 'alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com', - ], - 'DeletionProtectionConfig' => [ - 'title' => '负载均衡删除保护相关信息', - 'description' => '删除保护配置。', - 'type' => 'object', - 'properties' => [ - 'Enabled' => [ - 'title' => '删除保护状态', - 'description' => '删除保护状态,取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - ."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'EnabledTime' => [ - 'title' => '删除保护开启时间', - 'description' => '开启删除保护时间。', - 'type' => 'string', - 'example' => '2022-08-02T02:49:05Z', - ], - ], - ], - 'LoadBalancerBillingConfig' => [ - 'title' => '计费相关属性', - 'description' => '负载均衡实例计费配置。', - 'type' => 'object', - 'properties' => [ - 'PayType' => [ - 'title' => '实例的计费类型', - 'description' => '计费类型。取值:'."\n" - ."\n" - .'**PostPay**:按量计费。', - 'type' => 'string', - 'example' => 'PostPay', - 'default' => 'PostPay', - ], - ], - ], - 'LoadBalancerBussinessStatus' => [ - 'title' => '实例业务状态', - 'description' => '负载均衡的业务状态。取值:'."\n" - ."\n" - .'- **Abnormal**:异常。'."\n" - ."\n" - .'- **Normal**:正常。', - 'type' => 'string', - 'example' => 'Normal', - ], - 'LoadBalancerEdition' => [ - 'title' => '负载均衡的版本', - 'description' => '负载均衡的版本,不同版本有不同功能限制和计费策略。取值:'."\n" - ."\n" - .'- **Basic**:基础版。'."\n" - ."\n" - .'- **Standard**:标准版。'."\n" - ."\n" - .'- **StandardWithWaf**:WAF增强版。'."\n" - ."\n", - 'type' => 'string', - 'example' => 'Standard', - ], - 'LoadBalancerId' => [ - 'title' => '负载均衡标识', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'example' => 'alb-o9ulmq5hgn68jk****', - ], - 'LoadBalancerName' => [ - 'title' => '实例名称', - 'description' => '负载均衡实例名称。', - 'type' => 'string', - 'example' => 'alb-instance-test', - ], - 'LoadBalancerOperationLocks' => [ - 'title' => '锁定的原因', - 'description' => '负载均衡操作锁配置。', - 'type' => 'array', - 'items' => [ - 'description' => '负载均衡操作锁结构。', - 'type' => 'object', - 'properties' => [ - 'LockReason' => [ - 'title' => '锁定的原因', - 'description' => '锁定的原因。在**LoadBalancerBussinessStatus**为**异常**时有效。', - 'type' => 'string', - ], - 'LockType' => [ - 'title' => '锁定的类型', - 'description' => '锁定的类型。取值 :'."\n" - ."\n" - .'- **SecurityLocked**:安全锁定。'."\n" - ."\n" - .'- **RelatedResourceLocked**:关联锁定。'."\n" - ."\n" - .'- **FinancialLocked**:欠费锁定。'."\n" - ."\n" - .'- **ResidualLocked**:残留锁定。', - 'type' => 'string', - 'example' => 'FinancialLocked', - ], - ], - ], - ], - 'LoadBalancerStatus' => [ - 'title' => '实例状态', - 'description' => '应用型负载均衡实例状态。取值:'."\n" - ."\n" - .'- **Inactive**: 已停止,表示实例监听不会再转发流量。'."\n" - ."\n" - .'- **Active**: 运行中。'."\n" - ."\n" - .'- **Provisioning**:创建中。'."\n" - ."\n" - .'- **Configuring**:变配中。'."\n" - ."\n" - .'- **CreateFailed**:创建失败。', - 'type' => 'string', - 'example' => 'Active', - ], - 'ModificationProtectionConfig' => [ - 'title' => '负载均衡修改保护相关信息', - 'description' => '修改保护配置。', - 'type' => 'object', - 'properties' => [ - 'Reason' => [ - 'title' => '设置修改保护状态的原因', - 'description' => '开启修改保护的原因。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" - ."\n" - .'仅在**Status**为**ConsoleProtection**时返回。', - 'type' => 'string', - 'example' => 'Managed Instance', - ], - 'Status' => [ - 'title' => '负载均衡修改保护状态', - 'description' => '应用型负载均衡实例的修改保护状态。取值:'."\n" - ."\n" - .'- **NonProtection**:未开启修改保护。如有配置**Reason**,**Reason**会被强制置空。'."\n" - ."\n" - .'- **ConsoleProtection**:已开启控制台修改保护。如有配置**Reason**,**Reason**可生效。'."\n" - ."\n" - .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', - 'type' => 'string', - 'example' => 'ConsoleProtection', - ], - ], - ], - 'ResourceGroupId' => [ - 'title' => '企业资源组ID', - 'description' => '企业资源组ID。', - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - 'Tags' => [ - 'title' => '标签列表', - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签结构。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '实例的标签键', - 'description' => '实例的标签键。', - 'type' => 'string', - 'example' => 'KeyTest', - ], - 'Value' => [ - 'title' => '实例的标签值', - 'description' => '实例的标签值。', - 'type' => 'string', - 'example' => 'alueTest', - ], - ], - ], - ], - 'VpcId' => [ - 'title' => 'Vpc网络ID', - 'description' => '应用型负载均衡实例的专有网络ID。', - 'type' => 'string', - 'example' => 'vpc-bp1b49rqryhk45nio****', - ], - 'AddressIpVersion' => [ - 'title' => '协议版本', - 'description' => '协议版本。取值:'."\n" - ."\n" - .'- **IPv4**:IPv4类型。'."\n" - ."\n" - .'- **DualStack**:双栈类型。', - 'type' => 'string', - 'example' => 'DualStack', - ], - 'Ipv6AddressType' => [ - 'title' => 'IPV6地址类型', - 'description' => '应用型负载均衡IPv6的网络地址类型。取值:'."\n" - ."\n" - .'- **Internet**:公网。负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" - ."\n" - .'- **Intranet**:私网。负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', - 'type' => 'string', - 'example' => 'Intranet', - ], - 'SecurityGroupIds' => [ - 'description' => '应用型负载均衡实例加入的安全组。', - 'type' => 'array', - 'items' => [ - 'description' => '应用型负载均衡实例加入的安全组。', - 'type' => 'string', - 'example' => 'sg-2zejdtxxpu8c9tny****', - ], - ], - ], - ], - ], - 'MaxResults' => [ - 'title' => '本次请求所返回的最大记录条数。', - 'description' => '分批次查询时每次显示的条目数。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'NextToken' => [ - 'title' => '用来表示当前调用返回读取到的位置,空代表数据已经读取完毕。', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], - 'TotalCount' => [ - 'title' => '本次请求条件下的数据总量。', - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', + 'title' => '可用区及交换机映射列表', + 'description' => '可用区及交换机映射列表,最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', + 'type' => 'array', + 'items' => [ + 'description' => '可用区及交换机映射列表,最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['title' => '交换机标识', 'description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', 'type' => 'string', 'required' => true, 'example' => 'vsw-sersdf****'], + 'ZoneId' => ['title' => '可用区', 'description' => '可用区ID。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。'."\n" + .'您可以通过调用[DescribeZones](~~36064~~)接口获取可用区ID对应的可用区的信息。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a'], + 'AllocationId' => ['title' => '弹性公网IP实例ID', 'description' => '公网实例绑定的EIP实例ID。', 'type' => 'string', 'required' => false, 'example' => 'eip-bp1aedxso6u80u0qf****'], + 'EipType' => ['title' => '弹性公网IP类型', 'description' => '弹性公网IP的类型。取值:'."\n" + ."\n" + .'- Common(默认值):弹性公网IP。'."\n" + ."\n" + .'- Anycast:任播弹性公网IP。'."\n" + ."\n" + .'> ALB支持绑定Anycast EIP的地域,请参见[使用限制](~~460727~~)。', 'type' => 'string', 'required' => false, 'example' => 'Common'], + 'IntranetAddress' => ['description' => 'IPv4私网地址。', 'type' => 'string', 'required' => false, 'example' => '192.168.10.1'], ], + 'required' => false, ], + 'required' => true, + 'maxItems' => 10, + 'minItems' => 1, ], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"LoadBalancers\\": [\\n {\\n \\"AccessLogConfig\\": {\\n \\"LogProject\\": \\"sls-setter\\",\\n \\"LogStore\\": \\"test\\"\\n },\\n \\"AddressAllocatedMode\\": \\"Fixed\\",\\n \\"AddressType\\": \\"Intranet\\",\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"DNSName\\": \\"alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\",\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"EnabledTime\\": \\"2022-08-02T02:49:05Z\\"\\n },\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"LoadBalancerBussinessStatus\\": \\"Normal\\",\\n \\"LoadBalancerEdition\\": \\"Standard\\",\\n \\"LoadBalancerId\\": \\"alb-o9ulmq5hgn68jk****\\",\\n \\"LoadBalancerName\\": \\"alb-instance-test\\",\\n \\"LoadBalancerOperationLocks\\": [\\n {\\n \\"LockReason\\": \\"\\",\\n \\"LockType\\": \\"FinancialLocked\\"\\n }\\n ],\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"ModificationProtectionConfig\\": {\\n \\"Reason\\": \\"Managed Instance\\",\\n \\"Status\\": \\"ConsoleProtection\\"\\n },\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"alueTest\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqryhk45nio****\\",\\n \\"AddressIpVersion\\": \\"DualStack\\",\\n \\"Ipv6AddressType\\": \\"Intranet\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-2zejdtxxpu8c9tny****\\"\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"TotalCount\\": 100\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n sls-setter\\n test\\n \\n Fixed\\n Intranet\\n cbwp-bp1vevu8h3ieh****\\n 2022-07-02T02:49:05Z\\n alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\n \\n true\\n 2022-08-02T02:49:05Z\\n \\n \\n PostPay\\n \\n Normal\\n Standard\\n alb-o9ulmq5hgn68jk****\\n alb-instance-test\\n \\n 欠费\\n FinancialLocked\\n \\n Active\\n \\n 托管实例\\n ConsoleProtection\\n \\n rg-atstuj3rtop****\\n \\n KeyTest\\n alueTest\\n \\n vpc-bp1b49rqrybk45nio****\\n DualStack\\n Intranet\\n \\n 20\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 100\\n","errorExample":""}]', - 'title' => '查询负载均衡', - ], - 'DisableDeletionProtection' => [ - 'summary' => '关闭指定负载均衡实例的删除保护。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'AddressAllocatedMode', + 'in' => 'query', + 'schema' => ['title' => '地址模式', 'description' => '地址模式。取值 :'."\n" + ."\n" + .'- **Fixed**(默认值):固定IP模式,表示每个可用区分配固定IP地址。'."\n" + ."\n" + .'- **Dynamic**:动态IP模式,表示每个可用区动态分配IP地址。'."\n" + ."\n" + .'>自北京时间2025年2月25日00:00:002025年2月25日00:00:00 (UTC+8)起,通过本接口新建实例时,无论您指定何种模式,实际均创建为[ ALB升级实例](~~2864070~~),不再区分IP模式,分配的IP地址具备自动弹性能力;升级前的ALB实例不受影响。', 'type' => 'string', 'required' => false, 'example' => 'Fixed', 'default' => 'Fixed'], ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['title' => '资源组', 'description' => '企业资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], + ], + [ + 'name' => 'LoadBalancerEdition', + 'in' => 'query', + 'schema' => ['title' => '负载均衡的版本', 'description' => '应用型负载均衡的版本,不同版本有不同功能限制和计费策略。取值:'."\n" + ."\n" + .'- **Basic**:基础版。'."\n" + ."\n" + .'- **Standard**:标准版。'."\n" + ."\n" + .'- **StandardWithWaf**:WAF增强版。'."\n" + ."\n", 'type' => 'string', 'required' => true, 'example' => 'Standard'], + ], + [ + 'name' => 'LoadBalancerBillingConfig', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '幂等标识', - 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', + 'title' => '计费相关配置信息', + 'description' => '应用型负载均衡实例计费配置。', + 'type' => 'object', + 'properties' => [ + 'PayType' => ['title' => '实例的计费类型', 'description' => '实例的计费类型。'."\n" + ."\n" + .'仅取值**PostPay**:表示按量计费。', 'type' => 'string', 'required' => true, 'example' => 'PostPay', 'default' => 'PostPay'], + 'BandwidthPackageId' => ['title' => '共享带宽实例ID', 'description' => '公网类型实例关联的共享带宽包ID。', 'type' => 'string', 'required' => false, 'example' => 'cbwp-bp1vevu8h3ieh****'], + ], + 'required' => true, ], ], [ - 'name' => 'DryRun', + 'name' => 'AddressIpVersion', + 'in' => 'query', + 'schema' => ['title' => '协议版本', 'description' => '协议版本。取值:'."\n" + ."\n" + .'- **IPv4**:IPv4类型。'."\n" + .'- **DualStack**:双栈类型。', 'type' => 'string', 'required' => false, 'example' => 'IPv4'], + ], + [ + 'name' => 'Tag', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式和业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', - 'type' => 'boolean', + '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, - 'example' => 'true', ], ], [ - 'name' => 'ResourceId', + 'name' => 'SecurityGroupIds', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '实例id', - 'description' => '资源ID,此处为ALB实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-o9ulmq5hgn68jk****', + 'title' => '安全组ID列表', + 'description' => '安全组ID列表', + 'type' => 'array', + 'items' => [ + 'title' => '安全组ID列表', + 'description' => '安全组ID列表', + 'type' => 'object', + 'properties' => [ + 'SecurityGroupId' => ['title' => '安全组ID列表中的的ID', 'description' => '安全组ID列表中的的ID', 'type' => 'string', 'required' => false, 'example' => 'sg-gw82chzr7ru23iwbn9mu'], + ], + 'required' => false, + ], + 'required' => false, ], ], ], @@ -2750,159 +2030,57 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '关闭删除保护。', + 'description' => '创建负载均衡实例。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], + 'LoadBalancerId' => ['title' => '负载均衡实例标识', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'example' => 'alb-o9ulmq5hqn68jk****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], + ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource %s is not enough.', 'description' => '资源%s不足。'."\n"], + ['errorCode' => 'QuotaExceeded.LoadBalancersNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['errorCode' => 'Mismatch.ZoneIdAndVSwitchId', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => '%s和%s不匹配。'], + ['errorCode' => 'DuplicatedParam.ZoneId', 'errorMessage' => 'The param of ZoneId is duplicated.', 'description' => '参数ZoneId重复'], + ['errorCode' => 'OperationDenyed.ServiceLinkedRoleNotExist', 'errorMessage' => 'The service linked role AliyunServiceRoleForAlb does not exist.', 'description' => '用户账号未关联阿里云服务角色 AliyunServiceRoleForAlb'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'."\n"], ], - [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LoadBalancerId\\": \\"alb-o9ulmq5hqn68jk****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n alb-o9ulmq5hgn68jk****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => '创建应用型负载均衡实例', + 'description' => '**CreateLoadBalancer**接口属于异步接口,即系统返回一个实例ID,但该应用型负载均衡实例尚未创建成功,系统后台的创建任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询应用型负载均衡实例的创建状态:'."\n" + .'- 当应用型负载均衡实例处于**Provisioning**状态时,表示应用型负载均衡实例正在创建中。'."\n" + .'- 当应用型负载均衡实例处于**Active**状态时,表示应用型负载均衡实例创建成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'alb:AddressType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => '关闭删除保护', ], - 'EnableDeletionProtection' => [ - 'summary' => '开启指定资源的删除保护。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式和业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'schema' => [ - 'title' => '实例id', - 'description' => '资源ID,此处为ALB实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-o9ulmq5hgn68jk****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '开启删除保护功能。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => '开启删除保护', - ], - 'StartShiftLoadBalancerZones' => [ - 'summary' => '将可用区对应的EIP/VIP从域名解析中摘除。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateRule' => [ + 'summary' => '在指定监听下创建转发规则。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2911,558 +2089,625 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREslb9RALVR', - ], + 'abilityTreeCode' => '417', + 'abilityTreeNodes' => ['FEATUREslbM7ALO6'], ], 'parameters' => [ [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n", - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会移除可用区。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行修改。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'LoadBalancerId', + 'name' => 'ListenerId', 'in' => 'query', - 'schema' => [ - 'title' => '实例id', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-o9ulmq5hgn68jk****'."\n", - ], + 'schema' => ['title' => '监听标识', 'description' => '应用型负载均衡实例监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-l16uo9y******'], ], [ - 'name' => 'ZoneMappings', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '可用区及交换机映射列表', - 'description' => '可用区及交换机映射列表。'."\n" - ."\n" - .'> 一次调用最多支持移除一个可用区。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'title' => '交换机标识', - 'description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。', - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-bp1rmcrwg3erh1fh8****'."\n", - ], - 'ZoneId' => [ - 'title' => '可用区', - 'description' => '可用区ID,通过调用[DescribeZones](~~189196~~)接口获得。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou-a', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 1, - 'minItems' => 1, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.Eip', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.ZoneVSwitchChanged', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.ZoneMappingsNotChanged', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.ZoneVSwitchNotExist', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.EniStatusNotSupport', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.OnlyFixedAddressAllocatedModeSupported', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.ConfigLastActiveZoneNotSupport', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationFailed.ShiftLoadBalancerZonesFailed', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceNotEnough.VSwitchIp', - 'errorMessage' => 'The specified resource %s is not enough.', - ], - [ - 'errorCode' => 'Mismatch.ZoneIdAndVSwitchId', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5A2CFF0E-5718-45B5-9D4D-70B3FF3898\\"\\n}","type":"json"}]', - 'title' => '把可用区的EIP/VIP从域名解析中摘除', - 'description' => '仅支持固定IP模式的ALB实例。'."\n" - .'当前ALB实例active状态的可用区数量为1时,不支持移除实例可用区。', - ], - 'CancelShiftLoadBalancerZones' => [ - 'summary' => '将可用区对应的EIP/VIP加回到域名解析中。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'由客户端生成该参数值,要保证在不同请求间唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'], ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREslbFTB0NK', - ], - ], - 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n\n" - .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n", - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建转发规则。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'DryRun', + 'name' => 'Priority', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会加回可用区。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行修改。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['title' => '转发规则优先级', 'description' => '规则优先级,取值范围:**1~10000**。值越小表示优先级越高。'."\n" + ."\n" + .'> 同一个监听内规则优先级必须唯一。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ - 'name' => 'LoadBalancerId', + 'name' => 'Direction', 'in' => 'query', - 'schema' => [ - 'title' => '实例id', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-o9ulmq5hgn68jk****'."\n", - ], + 'schema' => ['title' => '转发规则方向', 'description' => '转发规则的方向。取值:'."\n" + ."\n" + .'- **Request**(默认值):请求类型,对从客户端发送到ALB的报文进行条件匹配并进行相应的处理。'."\n" + ."\n" + .'- **Response**:响应类型,对从后端服务器组返回到ALB的报文进行条件匹配并进行相应的处理。'."\n" + ."\n" + .'> 基础版的ALB实例不支持**Response**类型。', 'type' => 'string', 'required' => false, 'example' => 'Request'], ], [ - 'name' => 'ZoneMappings', + 'name' => 'RuleActions', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '可用区及交换机映射列表', - 'description' => '可用区及交换机映射列表。'."\n" - ."\n" - .'> 一次调用最多支持加回一个可用区。', + 'title' => '转发规则动作', + 'description' => '转发规则动作列表。', 'type' => 'array', 'items' => [ + 'description' => '规则动作列表。', 'type' => 'object', 'properties' => [ - 'VSwitchId' => [ - 'title' => '交换机标识', - 'description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。', - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-bp1rmcrwg3erh1fh8****'."\n", - ], - 'ZoneId' => [ - 'title' => '可用区', - 'description' => '可用区ID,通过调用[DescribeZones](~~189196~~)接口获得。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou-a', + 'FixedResponseConfig' => [ + 'title' => '返回固定内容动作配置', + 'description' => '固定响应内容配置。'."\n" + ."\n", + 'type' => 'object', + 'properties' => [ + 'Content' => ['title' => '内容', 'description' => '返回的固定内容。最大支持存储1 KB,只支持ASCII字符。', 'type' => 'string', 'required' => false, 'example' => 'dssacav'], + 'ContentType' => ['title' => '内容类型', 'description' => '返回固定内容的格式。'."\n" + ."\n" + .'取值:**text/plain**、**text/css**、**text/html**、**application/javascript**或**application/json**。', 'type' => 'string', 'required' => false, 'example' => 'text/plain'], + 'HttpCode' => ['title' => 'HTTP响应码', 'description' => '返回的HTTP响应码,仅支持**2xx**、**4xx**、**5xx**数字型字符串,**x**为任意数字。', 'type' => 'string', 'required' => false, 'example' => '200'], + ], + 'required' => false, + ], + 'ForwardGroupConfig' => [ + 'title' => '转发组动作配置', + 'description' => '转发到的目的服务器组列表。一条转发规则中最多支持添加5个目的服务器组。'."\n", + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'title' => '转发到的目的服务器组列表', + 'description' => '转发到的目的服务器组列表。一条转发规则中最多支持添加5个目的服务器组。'."\n" + ."\n", + 'type' => 'array', + 'items' => [ + 'description' => '转发到的目的服务器组结构。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['title' => '服务器组标识', 'description' => '转发到的目的服务器组。', 'type' => 'string', 'required' => false, 'example' => 'sgp-k86c1ov501id6p****'], + 'Weight' => ['title' => '权重', 'description' => '权重。取值越大,权重越大,表示转发的访问请求更多。取值范围:**0**~**100**。'."\n" + ."\n" + .'- 目的服务器组数为1时,未指定权重时默认值为**100**。'."\n" + ."\n" + .'- 目的服务器组数大于1时,需要用户指定权重值。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '0', 'example' => '100'], + ], + 'required' => false, + ], + 'required' => false, + ], + 'ServerGroupStickySession' => [ + 'title' => '服务器组之间会话保持', + 'description' => '服务器组之间会话保持。', + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['title' => '是否开启会话保持', 'description' => '是否开启会话保持。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**(默认值):不开启。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'Timeout' => ['title' => '超时时间', 'description' => '超时时间。单位:秒。取值范围:**1**~**86400**。默认值:**1000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'InsertHeaderConfig' => [ + 'title' => '插入头部动作配置', + 'description' => '写入头字段配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'HTTP标头', 'description' => '插入的头字段名称,长度为1\\~40个字符,支持大小写字母a\\~z、数字、下划线(_)和短划线(-)。**InsertHeaderConfig**中的头字段名称不能重复。'."\n" + ."\n" + .'> 不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`、`x-forwarded-host`。', 'type' => 'string', 'required' => false, 'example' => 'key'], + 'Value' => ['title' => 'HTTP标头内容', 'description' => '插入的头字段内容。'."\n" + ."\n" + .'- **ValueType**取值为**SystemDefined**时取值如下:'."\n" + .' - **ClientSrcPort**:客户端端口。'."\n" + .' - **ClientSrcIp**:客户端IP地址。'."\n" + .' - **Protocol**:客户端请求的协议(HTTP或HTTPS)。'."\n" + .' - **SLBId**:应用型负载均衡实例ID。'."\n" + .' - **SLBPort**:应用型负载均衡实例监听端口。'."\n" + .'- **ValueType**取值为**UserDefined**时:您可自定义头字段内容,限制长度为1~128个字符,支持通配符星号(*)、半角问号(?)和ASCII码值`ch >= 32 && ch < 127`范围内的可打印字符,不支持`"`。开头和结尾不能为空格。结尾不能为`\\`。'."\n" + .'- **ValueType**取值为**ReferenceHeader**时:您可以引用请求头字段中的某一个字段,限制长度限制为1\\~128个字符,支持小写字母a\\~z、数字、短划线(-)和下划线(_)。', 'type' => 'string', 'required' => false, 'example' => 'UserDefined'], + 'ValueType' => ['title' => '取值类型', 'description' => '头字段内容类型。取值:'."\n" + ."\n" + .'- **UserDefined**:您自定义头字段内容。'."\n" + ."\n" + .'- **ReferenceHeader**:引用请求头中的某一个头字段内容。'."\n" + ."\n" + .'- **SystemDefined**:系统定义头字段内容。', 'type' => 'string', 'required' => false, 'example' => 'UserDefined'], + ], + 'required' => false, + ], + 'Order' => ['title' => '优先级', 'description' => '转发规则动作执行的顺序,取值范围:**1~50000**,按值从小到大执行动作。值不能为空,不能重复。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + 'RedirectConfig' => [ + 'title' => '重定向动作配置', + 'description' => '重定向配置。'."\n" + ."\n" + .'> **RedirectConfig**的参数,除了**httpCode**外,不能都使用默认值。', + 'type' => 'object', + 'properties' => [ + 'Host' => ['title' => '要跳转的主机地址', 'description' => '要跳转的主机地址。取值:'."\n" + .'- **${host}**(默认值):取此值时不支持和其他字符拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)、等号(=)、波浪线(~)、下划线(_)、加号(+)、反斜线(\\)、脱字号(^)、感叹号(!)、美元符号($)、and(&)、竖线(|)、半角圆括号(())、方括号(\\[\\])和半角问号(?)。'."\n" + .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-),最左侧`domainlable`允许是星号(*)。'."\n" + .' - 短划线(-)不能出现在其它域标签的开头或结尾。'."\n" + .' - 通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', 'type' => 'string', 'required' => false, 'example' => '${host}'], + 'HttpCode' => ['title' => '跳转方式', 'description' => '跳转方式。取值:**301**、**302**、**303**、**307**或**308**。', 'type' => 'string', 'required' => false, 'example' => '301'], + 'Path' => ['title' => '要跳转的路径', 'description' => '要跳转的路径。取值:'."\n" + .'- **${path}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1\\~128个字符,大小写敏感,支持通配符星号(*)和半角问号(?)作为通配符使用。'."\n" + .' - 必须以正斜线(/)开头,支持大小写字母、数字和特殊字符`$-_.+/&~@:\'*?`,不支持`“%#;!()[]^,”\\"`,同时支持通配符星号(*)和半角问号(?)。', 'type' => 'string', 'required' => false, 'example' => '/test'], + 'Port' => ['title' => '要跳转的端口', 'description' => '要跳转的端口。'."\n" + .'- **${port}**(默认值):该取值不支持和其他字符同时使用。'."\n" + .'- 其他取值:**1~63335**。', 'type' => 'string', 'required' => false, 'example' => '10'], + 'Protocol' => ['title' => '要跳转的协议', 'description' => '要跳转的协议。取值:'."\n" + .'- **${protocol}**(默认值):取该值时仅支持单独使用,不支持修改或与其他字符拼接使用。'."\n" + .'- **HTTP**'."\n" + .'- **HTTPS**'."\n" + .'> '."\n" + .'> - HTTPS监听仅支持跳转HTTPS协议。'."\n" + .'> - HTTP监听支持跳转HTTP和HTTPS协议。', 'type' => 'string', 'required' => false, 'example' => 'HTTP'], + 'Query' => ['title' => '要跳转的查询字符串', 'description' => '要跳转的查询字符串。'."\n" + .'- **${query}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1\\~128个字符。'."\n" + .' - 支持可见字符,不支持空格和 `#[]{}\\|<>"`。如果是字母则必须是小写字母。', 'type' => 'string', 'required' => false, 'example' => '${query}'], + ], + 'required' => false, + ], + 'RewriteConfig' => [ + 'title' => '内部重定向动作配置', + 'description' => '重写配置。'."\n" + ."\n" + .'> 同一个转发规则配置多个动作时,**RewriteConfig**动作使用时必须配置**ForwardGroup**的动作类型。', + 'type' => 'object', + 'properties' => [ + 'Host' => ['title' => '主机名', 'description' => '内部跳转的目的主机地址。取值:'."\n" + .'- **${host}**(默认值):该取值不支持和其他字符拼接。'."\n" + ."\n" + .'- 其他取值,字符格式限制如下:'."\n" + ."\n" + .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)、等号(=)、波浪线(~)、下划线(_)、加号(+)、反斜线(\\)、脱字号(^)、感叹号(!)、美元符号($)、and(&)、竖线(|)、半角圆括号(())、方括号(\\[\\])和半角问号(?)。'."\n" + ."\n" + .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + ."\n" + .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-),最左侧`domainlable`允许是星号(*)。'."\n" + ."\n" + .' - 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com'], + 'Path' => ['title' => '路径', 'description' => '要跳转的路径。取值:'."\n" + .'- **${path}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1\\~128个字符,大小写敏感,支持通配符星号(*)和半角问号(?)作为通配符使用。'."\n" + .' - 必须以正斜线(/)开头,支持大小写字母、数字和特殊字符`$-_.+/&~@:\'*?`,不支持`“%#;!()[]^,”\\"`,同时支持通配符星号(*)和半角问号(?)。', 'type' => 'string', 'required' => false, 'example' => '/tsdf'], + 'Query' => ['title' => '查询', 'description' => '内部跳转的查询字符串。'."\n" + .'- **${query}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1\\~128个字符。'."\n" + .' - 支持可见字符,不支持空格和 `#[]{}\\|<>"`。如果是字母则必须是小写字母。', 'type' => 'string', 'required' => false, 'example' => '${query}'], + ], + 'required' => false, + ], + 'Type' => ['title' => '转发规则动作类型', 'description' => '动作类型。取值:'."\n" + ."\n" + .'- **ForwardGroup**:转发至多个虚拟服务器组。'."\n" + ."\n" + .'- **Redirect**:重定向。'."\n" + ."\n" + .'- **FixedResponse**:返回固定内容。'."\n" + ."\n" + .'- **Rewrite**:重写。'."\n" + ."\n" + .'- **InsertHeader**:写入头字段。'."\n" + ."\n" + .'- **RemoveHeader**:删除头字段。'."\n" + ."\n" + .'- **TrafficLimit**:流量限速。'."\n" + ."\n" + .'- **TrafficMirror**:流量镜像。'."\n" + ."\n" + .'- **Cors**:跨域。'."\n" + ."\n\n" + .'> 一个转发规则必须包含有一条**ForwardGroup**(转发至)、**Redirect**(重定向)或**FixedResponse**(返回固定响应)转发动作,与其他类型转发动作并存时,必须放在最后执行。', 'type' => 'string', 'required' => true, 'example' => 'ForwardGroup'], + 'TrafficLimitConfig' => [ + 'title' => '流量限速', + 'description' => '流量限速。', + 'type' => 'object', + 'properties' => [ + 'QPS' => ['description' => '每秒请求次数。取值范围:**1~1000000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + 'PerIpQps' => ['description' => '单IP每秒请求次数。 取值范围:**1 ~ 1000000**。'."\n" + ."\n" + .'> 如果同时配置**QPS**参数,**PerIpQps**参数的取值必须小于**QPS**参数的取值。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80'], + ], + 'required' => false, + ], + 'TrafficMirrorConfig' => [ + 'title' => '流量镜像', + 'description' => '流量镜像。', + 'type' => 'object', + 'properties' => [ + 'TargetType' => ['title' => '镜像目标类型', 'description' => '镜像的目标类型。取值:'."\n" + .'- **ForwardGroupMirror**:表示镜像至服务器组。', 'type' => 'string', 'required' => false, 'example' => 'ForwardGroupMirror'], + 'MirrorGroupConfig' => [ + 'title' => '镜像至服务器组', + 'description' => '流量镜像至服务器组。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'description' => '流量镜像至服务器组。', + 'type' => 'array', + 'items' => [ + 'description' => '流量镜像至服务器组。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => false, 'example' => 'sgp-00mkgijak0w4qgz9****'], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'RemoveHeaderConfig' => [ + 'title' => '去除HTTP标头', + 'description' => '去除HTTP头部配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'HTTP标头键', 'description' => '去除的头字段名称,长度为1~40个字符,支持大小写字母a~z、数字、下划线(_)和短划线(-)。头字段名称不能重复用于RemoveHeader中。'."\n" + ."\n" + .'- 请求方向(Direction取值为Request):不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`、`x-forwarded-host`。'."\n" + .'- 响应方向(Direction取值为Response):响应方向不允许将头名称设置为以下字段(不区分大小写):`connection`、`upgrade`、`content-length`、`transfer-encoding`。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + 'required' => false, + ], + 'CorsConfig' => [ + 'title' => '跨域', + 'description' => '跨域。', + 'type' => 'object', + 'properties' => [ + 'AllowOrigin' => [ + 'title' => '允许的访问来源', + 'description' => '允许的访问来源列表。支持只配置一个元素`*`,或配置一个或多个值。'."\n" + .'- 单个值必须以`http://`或者`https://`开头,后边加一个正确的域名或一级泛域名。(例:`http://*.test.abc.example.com`)'."\n" + .'- 单个值可以不加端口,也可以指定端口,端口范围:**1**~**65535**。', + 'type' => 'array', + 'items' => ['description' => '允许访问的来源。', 'type' => 'string', 'required' => false, 'example' => 'http://example.com'], + 'required' => false, + ], + 'AllowMethods' => [ + 'title' => '选择跨域访问时允许的HTTP方法', + 'description' => '选择跨域访问时允许的HTTP方法。', + 'type' => 'array', + 'items' => ['description' => '选择跨域访问时允许的HTTP方法。取值:'."\n" + ."\n" + .'- **GET**。'."\n" + .'- **POST**。'."\n" + .'- **PUT**。'."\n" + .'- **DELETE**。'."\n" + .'- **HEAD**。'."\n" + .'- **OPTIONS**。'."\n" + .'- **PATCH**。', 'type' => 'string', 'required' => false, 'example' => 'GET'], + 'required' => false, + ], + 'AllowHeaders' => [ + 'title' => '允许跨域的Header列表', + 'description' => '允许跨域的Header列表。', + 'type' => 'array', + 'items' => ['description' => '允许跨域的Header。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', 'type' => 'string', 'required' => false, 'example' => 'test_123'], + 'required' => false, + ], + 'ExposeHeaders' => [ + 'title' => '允许暴露的Header列表', + 'description' => '允许暴露的Header列表。', + 'type' => 'array', + 'items' => ['description' => '允许暴露的Header。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', 'type' => 'string', 'required' => false, 'example' => 'test_123'], + 'required' => false, + ], + 'AllowCredentials' => ['title' => '是否允许携带凭证信息', 'description' => '是否允许携带凭证信息。取值:'."\n" + ."\n" + .'- **on**:是。'."\n" + .'- **off**:否。', 'type' => 'string', 'required' => false, 'example' => 'on'], + 'MaxAge' => ['title' => '预检请求在浏览器的最大缓存时间', 'description' => '预检请求在浏览器的最大缓存时间,单位:秒。'."\n" + ."\n" + .'取值范围:**-1**~**172800**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1000'], + ], + 'required' => false, ], ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 1, - 'minItems' => 1, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n", - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.Eip', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.ZoneVSwitchChanged', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.ZoneMappingsNotChanged', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.ZoneVSwitchNotExist', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.EniStatusNotSupport', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.OnlyFixedAddressAllocatedModeSupported', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationFailed.CancelShiftLoadBalancerZonesFailed', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceNotEnough.VSwitchIp', - 'errorMessage' => 'The specified resource %s is not enough.', - ], - [ - 'errorCode' => 'Mismatch.ZoneIdAndVSwitchId', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5A2CFF0E-5718-45B5-9D4D-70B3FF3898\\\\n\\"\\n}","type":"json"}]', - 'title' => '把可用区的EIP/VIP加到DNS中', - 'description' => '仅支持固定IP模式的ALB实例。调用本接口时,您已通过StartShiftLoadBalancerZones接口或控制台移除ALB实例的某个可用区。', - ], - 'EnableLoadBalancerIpv6Internet' => [ - 'summary' => '将双栈应用型负载均衡实例的IPv6私网变更为IPv6公网。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '幂等参数', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => '预校验', - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会开启负载均衡ALB的IPv6公网。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'LoadBalancerId', - 'in' => 'query', - 'schema' => [ - 'title' => '实例ID', - 'description' => '应用型负载均衡实例的ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-o2cvudgo6rlqz7****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BB920797-D70E-567F-8098-55A861DD7912', - ], - 'JobId' => [ - 'title' => '异步任务ID', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '4a6e3ad4-ef08-4ab1-b332-fa621cfe****', - ], + 'required' => true, ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.NonDualStackInstance', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.Ipv6InternetInstance', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', + 'required' => true, + 'maxItems' => 100, + 'minItems' => 1, ], ], [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BB920797-D70E-567F-8098-55A861DD7912\\",\\n \\"JobId\\": \\"4a6e3ad4-ef08-4ab1-b332-fa621cfe****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BB920797-D70E-567F-8098-55A861DD7912\\n 4a6e3ad4-ef08-4ab1-b332-fa621cfe****\\n","errorExample":""}]', - 'title' => '开启负载均衡IPv6公网', - 'description' => '### 前提条件'."\n" - ."\n" - .'已创建双栈ALB实例,调用[CreateLoadBalancer](~~214358~~)接口将**AddressIpVersion**设置为**DualStack**。'."\n" - ."\n" - .'> **AddressIpVersion**设置为**DualStack**时:'."\n" - .'> - **AddressType**设置为**Internet**表示ALB实例拥有IPv4公网和IPv6私网访问能力。'."\n" - .'> - **AddressType**设置为**Intranet**表示ALB实例拥有IPv4私网和IPv6私网访问能力。'."\n" - ."\n" - .'### 使用说明'."\n" - .'- 变更成功后,**Ipv6AddressType**类型将变为**Internet**,ALB实例IPv6地址即具备公网能力,后续该ALB实例下变配或者弹性产生的新的弹性网卡ENI(Elastic Network Interface)也会自动开启公网能力,您可以通过调用[GetLoadBalancerAttribute](~~214362~~)接口查看**Ipv6AddressType**的取值。'."\n" - ."\n" - .'- **EnableLoadBalancerIpv6Internet**接口属于异步接口,即系统返回一个请求ID,但该ALB实例的IPv6私网尚未变更为IPv6公网,系统后台的变更任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询ALB实例IPv6网络的变更状态:'."\n" - ."\n" - .' - 当应用型负载均衡处于**Configuring**状态时,表示ALB实例的IPv6私网正在变更为IPv6公网。'."\n" - ."\n" - .' - 当应用型负载均衡处于**Active**状态时,表示ALB实例的IPv6私网变更IPv6公网成功。', - ], - 'DisableLoadBalancerIpv6Internet' => [ - 'summary' => '将双栈应用型负载均衡实例的IPv6公网变更为IPv6私网。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'ClientToken', + 'name' => 'RuleConditions', 'in' => 'query', - 'allowEmptyValue' => false, + 'style' => 'flat', 'schema' => [ - 'title' => '幂等参数', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3', + 'title' => '转发规则条件', + 'description' => '转发规则条件列表。', + 'type' => 'array', + 'items' => [ + 'description' => '转发规则条件。', + 'type' => 'object', + 'properties' => [ + 'CookieConfig' => [ + 'title' => 'Cookie条件配置', + 'description' => 'Cookie配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => 'Cookie键值对列表', + 'description' => 'Cookie值列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'Cookie值结构体。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'Cookie条件键', 'description' => 'Cookie键。'."\n" + .'- 支持1\\~100个字符。'."\n" + .'- 支持可见字符和通配符星号(*)和半角问号(?),如果是字母必须为小写字母。'."\n" + .'- 不支持空格和`;#[]{}\\|<>&"`。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'Value' => ['title' => 'Cookie条件值', 'description' => 'Cookie值。'."\n" + ."\n" + .'- 支持1\\~100个字符。'."\n" + .'- 支持可见字符和通配符星号(*)和半角问号(?),如果是字母必须为小写字母。'."\n" + .'- 不支持空格和`;#[]{}\\|<>&"`。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 50, + ], + ], + 'required' => false, + ], + 'HeaderConfig' => [ + 'title' => 'HTTP标头条件配置', + 'description' => '头字段配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'HTTP标头键', 'description' => '头字段键。'."\n" + ."\n" + .'- 支持1\\~40个字符。'."\n" + .'- 支持字母a~z、数字、短划线(-)和下划线(_)。'."\n" + .'- 不支持Cookie和Host。', 'type' => 'string', 'required' => false, 'example' => 'Port'], + 'Values' => [ + 'title' => 'HTTP标头值列表', + 'description' => '头字段值列表。', + 'type' => 'array', + 'items' => ['description' => 'HTTP标头值列表。同一个转发规则条件内头字段值不能重复。'."\n" + .'- 支持1\\~128个字符。'."\n" + .'- 支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、星号(*)和半角问号(?)。不支持`"`。'."\n" + .'- 开头和结尾不能为空格。结尾不能为`\\`。', 'type' => 'string', 'required' => false, 'example' => '5006'], + 'required' => false, + 'maxItems' => 50, + ], + ], + 'required' => false, + ], + 'HostConfig' => [ + 'title' => '主机名条件配置', + 'description' => '主机配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '主机名列表', + 'description' => '主机名列表。', + 'type' => 'array', + 'items' => ['description' => '主机名。一个转发规则条件中只能有一个主机名,并且取值不能重复。'."\n" + ."\n" + .'- 主机名长度为3\\~128个字符,支持小写字母a~z、数字0~9、短划线(-)、半角句号(.)、星号(*)、等号(=)、波浪线(~)、下划线(_)、加号(+)、反斜线(\\)、脱字号(^)、感叹号(!)、美元符号($)、and(&)、竖线(|)、半角圆括号(())、方括号(\\[\\])和半角问号(?)。'."\n" + ."\n" + .'- 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + ."\n" + .'- 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-),最左侧`domainlable`允许是星号(*)。'."\n" + ."\n" + .'- 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。'."\n" + ."\n" + .'- 对于<精确匹配和通配符>的输入框,首字符不可以为波浪线(~)。'."\n" + .'- 对于正则的输入框(<正则匹配(不区分大小写)>,首字符不可以为星号(*)。', 'type' => 'string', 'required' => false, 'example' => 'www.example.edu'], + 'required' => false, + 'maxItems' => 50, + ], + ], + 'required' => false, + ], + 'MethodConfig' => [ + 'title' => 'HTTP请求方法条件配置', + 'description' => '请求方法配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => 'HTTP请求方法列表', + 'description' => '请求方法列表。', + 'type' => 'array', + 'items' => ['description' => '请求方法。'."\n" + ."\n" + .'取值:**HEAD**、**GET**、**POST**、**OPTIONS**、**PUT**、**PATCH**、**DELETE**。', 'type' => 'string', 'required' => false, 'example' => 'PUT'], + 'required' => false, + 'maxItems' => 10, + ], + ], + 'required' => false, + ], + 'PathConfig' => [ + 'title' => '路径条件配置', + 'description' => '转发路径配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '路径条件列表', + 'description' => '转发路径列表。', + 'type' => 'array', + 'items' => ['description' => '转发路径。取值范围:'."\n" + .'- 长度为1\\~128个字符,大小写敏感,支持星号(*)和半角问号(?)作为通配符使用。'."\n" + ."\n" + .'- 非正则表达式的URL ,必须以正斜线(/)开头,支持字母、数字和特殊字符`$-_.+/&~@:\'*?`,不支持`“%#;!()[]^,”\\"`,支持星号(*)和半角问号(?)作为通配符使用。'."\n" + ."\n" + .'- 正则表达式的URL ,必须以~开头,支持大小写字母、数字和特殊字符`.-_/=?~^*$:()[]+|`。', 'type' => 'string', 'required' => false, 'example' => '/test'], + 'required' => false, + 'maxItems' => 50, + ], + ], + 'required' => false, + ], + 'QueryStringConfig' => [ + 'title' => '查询字符串条件配置', + 'description' => '查询字符串配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '查询字符串条件键值对列表', + 'description' => '查询字符串列表。', + 'type' => 'array', + 'items' => [ + 'description' => '查询字符串。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '查询字符串条件键', 'description' => '查询字符串键。'."\n" + ."\n" + .'- 长度为1\\~100个字符。'."\n" + .'- 支持可见字符、通配符星号(*)和半角问号(?),如果是字母则必须为小写字母。不支持空格和`#[]{}\\|<>&"`。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'Value' => ['title' => '查询字符串条件值', 'description' => '查询字符串值。'."\n" + ."\n" + .'- 长度为1\\~128个字符。'."\n" + .'- 支持小写字母、可见字符和通配符星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&"`。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 50, + ], + ], + 'required' => false, + ], + 'ResponseStatusCodeConfig' => [ + 'title' => '返回状态码条件', + 'description' => '响应状态码配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '返回状态码条件', + 'description' => '响应状态码列表。', + 'type' => 'array', + 'items' => ['description' => '响应状态码。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'ResponseHeaderConfig' => [ + 'title' => '返回HTTP标头', + 'description' => '标头条件配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '返回HTTP标头键', 'description' => '头字段键。'."\n" + .'- 长度为1~40个字符。'."\n" + .'- 支持字母a~z、数字、短划线(-)和下划线(_)。'."\n" + .'- 不支持Cookie和Host。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'Values' => [ + 'title' => '返回HTTP标头值', + 'description' => '头字段值列表。', + 'type' => 'array', + 'items' => ['description' => '头字段值。'."\n" + ."\n" + .'- 长度为1~128个字符。'."\n" + .'- 支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、小写字母以及通配符星号(*)和半角问号(?)。不支持`"`。'."\n" + .'- 开头和结尾不能为空格。结尾不能为`\\`。', 'type' => 'string', 'required' => false, 'example' => '50006'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'Type' => ['title' => '条件类型', 'description' => '转发规则类型。取值:'."\n" + ."\n" + .'- **Host**:主机。'."\n" + ."\n" + .'- **Path**:路径。'."\n" + ."\n" + .'- **Header**:HTTP头字段。'."\n" + ."\n" + .'- **QueryString**:查询字符串。'."\n" + ."\n" + .'- **Method**:请求方法。'."\n" + ."\n" + .'- **Cookie**:Cookie。'."\n" + ."\n" + .'- **SourceIp**:源IP。'."\n" + ."\n" + .'- **ResponseHeader**:响应HTTP头字段。'."\n" + ."\n" + .'- **ResponseStatusCode**: 响应状态码。', 'type' => 'string', 'required' => true, 'example' => 'Host'], + 'SourceIpConfig' => [ + 'title' => '基于源IP业务流量匹配', + 'description' => '基于源IP业务流量匹配配置。当**Type**为**SourceIP**时必选且有效。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '基于源IP业务流量匹配', + 'description' => '基于源IP业务流量匹配列表。', + 'type' => 'array', + 'items' => ['description' => '添加一个或多个IP地址或者IP地址段。'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/32'], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + 'required' => true, + ], + 'required' => true, + 'maxItems' => 100, + 'minItems' => 1, ], ], [ - 'name' => 'DryRun', + 'name' => 'RuleName', 'in' => 'query', - 'schema' => [ - 'title' => '预校验', - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会关闭应用型负载均衡实例的IPv6公网。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '转发规则名称', 'description' => '转发规则名称。 '."\n" + .'- 长度为2\\~128个英文或中文字符。'."\n" + .'- 必须以字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格。', 'type' => 'string', 'required' => true, 'example' => 'rule-doc'], ], [ - 'name' => 'LoadBalancerId', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '实例ID', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-chugtlrj1iusjh****', + '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, ], ], ], @@ -3470,387 +2715,79 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '返回数据结构体。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7D866E37-1123-5160-AFF1-BDAF5EB86A8A', - ], - 'JobId' => [ - 'title' => '异步任务ID', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => 'd12871a6-ebb2-41f3-8d74-d9f452bb****', - ], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540750'], + 'RuleId' => ['title' => '转发规则标识', 'description' => '转发规则ID。', 'type' => 'string', 'example' => 'rule-a3x3pg1yohq3lq****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.NonDualStackInstance', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.Ipv6IntranetInstance', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'OperationDenied.GRPCServerGroup', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是存在绑定本GRPC服务器组的监听没有启用HTTP2.0。'], + ['errorCode' => 'Conflict.Priority', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => '优先级冲突,已经存在相同配置'], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerRulesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '转发规则数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器组可被关联数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '后端服务器数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器添加到组已超额度限制。'], + ['errorCode' => 'QuotaExceeded.RuleWildcardsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'."\n"], + ['errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '转发规则条件数已超额度限制。'."\n"], + ['errorCode' => 'QuotaExceeded.RuleActionsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'."\n"], + ['errorCode' => 'Mismatch.Protocol', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'OperationDenied.RewriteMissingForwardGroup', 'errorMessage' => 'The operation is not allowed because of RewriteMissingForwardGroup.', 'description' => '操作被拒绝,原因是RewriteMissingForwardGroup。'], + ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified listener is being configured, please try again later.', 'description' => '资源正在变配中,请稍后重试。'], + ['errorCode' => 'OperationDenied.MirrorActionSupportHttpGroupOnly', 'errorMessage' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.', 'description' => '操作被拒绝,原因是流量镜像动作只支持HTTP类型的服务器组。'], + ['errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', 'description' => '操作被禁止,原因:必须是相同的协议'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7D866E37-1123-5160-AFF1-BDAF5EB86A8A\\",\\n \\"JobId\\": \\"d12871a6-ebb2-41f3-8d74-d9f452bb****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7D866E37-1123-5160-AFF1-BDAF5EB86A8A\\n d12871a6-ebb2-41f3-8d74-d9f452bb****\\n","errorExample":""}]', - 'title' => '关闭负载均衡IPv6公网', - 'description' => '### 前提条件'."\n" - ."\n" - .'已创建双栈ALB实例,调用[CreateLoadBalancer](~~214358~~)接口将**AddressIpVersion**设置为**DualStack**。'."\n" - ."\n" - .'> **AddressIpVersion**设置为**DualStack**时:'."\n" - .' - **AddressType**设置为**Internet**表示ALB实例拥有IPv4公网和IPv6私网访问能力。'."\n" - .' - **AddressType**设置为**Intranet**表示ALB实例拥有IPv4私网和IPv6私网访问能力。'."\n" - ."\n" - .'### 使用说明'."\n" - ."\n" - .'- 变更成功后,**Ipv6AddressType**类型将变为**Intranet**,ALB实例IPv6地址即具备私网能力,后续该ALB实例下变配或者弹性产生的新的弹性网卡ENI(Elastic Network Interface)也会默认具备私网能力。您可以通过调用[GetLoadBalancerAttribute](~~214362~~)接口查看**Ipv6AddressType**的取值。'."\n" - ."\n" - .'- **DisableLoadBalancerIpv6Internet**接口属于异步接口,即系统返回一个请求ID,但该ALB实例的IPv6公网尚未变更为IPv6私网,系统后台的变更任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询ALB实例IPv6网络的变更状态:'."\n" - ."\n" - .' - 当应用型负载均衡处于**Configuring**状态时,表示ALB实例的IPv6公网正在变更为IPv6私网。'."\n" - ."\n" - .' - 当应用型负载均衡处于**Active**状态时,表示ALB实例的IPv6公网变更IPv6私网成功。', - ], - 'LoadBalancerJoinSecurityGroup' => [ - 'summary' => '为应用型负载均衡实例绑定已创建的安全组。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'abilityTreeCode' => '171521', - 'abilityTreeNodes' => [ - 'FEATUREslbKS6M4D', - 'FEATUREslb39XGK4', - ], - ], - 'parameters' => [ - [ - 'name' => 'SecurityGroupIds', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '安全组ID集合。', - 'type' => 'array', - 'items' => [ - 'description' => '安全组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sg-m5e7xkprgt1pi1ik****', - ], - 'required' => true, - 'maxItems' => 10, - ], - ], - [ - 'name' => 'LoadBalancerId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-h7kcw4g4nnvtqp****', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => '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' => '创建结果', - 'description' => '创建结果', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'description' => '异步任务ID', - 'type' => 'string', - 'example' => '8fe81f25-79a0-4fa0-9036-f2601fda****', - ], - 'RequestId' => [ - 'description' => '请求ID', - 'type' => 'string', - 'example' => 'D3B9AE45-F5DB-58E3-A4B5-EE58F1EC****', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.SecurityGroup', - 'errorMessage' => 'The specified resource of %s is already associated.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.SecurityGroupNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'OperationDenied.SecurityGroupNotSupport', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.LbAssociatedAclCanNotJoinSecurityGroup', - 'errorMessage' => 'The operation is not allowed because of loadBalancer associated acl can not join security group.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.SecurityGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Alb::2020-06-16::ListAsynJobs', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 20, + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"8fe81f25-79a0-4fa0-9036-f2601fda****\\",\\n \\"RequestId\\": \\"D3B9AE45-F5DB-58E3-A4B5-EE58F1EC****\\"\\n}","type":"json"}]', - 'title' => '负载均衡实例加入安全组', - 'description' => '- 安全组功能默认不开放,如需使用,请向商务经理申请。'."\n" - ."\n" - .'- 请确保您已创建安全组。创建安全组,请参见[CreateSecurityGroup](~~2679843~~)。'."\n" - ."\n" - .'- 一个应用型负载均衡实例最多支持加入 4 个安全组。'."\n" - ."\n" - .'- 您可以通过[GetLoadBalancerAttribute](~~2254835~~)接口查询实例绑定的安全组。'."\n" - ."\n" - .'- LoadBalancerJoinSecurityGroup 属于异步接口,即系统返回一个请求 ID,但该应用型负载均衡实例绑定安全组尚未成功,系统后台的绑定任务仍在进行。您可以调用 [ListAsynJobs](~~2254893~~) 查询安全组的绑定状态:'."\n" + 'title' => '创建转发规则', + 'description' => '调用该接口创建转发规则时,请注意以下事项:'."\n" + .'- 配置**Redirect**转发动作时,除了**HttpCode**参数外,其余参数不能全部配置为默认值。'."\n" + .'- 同一个转发规则配置多个转发动作时,**Rewrite**转发动作必须配置**ForwardGroup**的动作类型。'."\n" ."\n" - .' - 当任务状态处于 Succeeded 时,表示安全组绑定成功。'."\n" + .'- **CreateRule**接口属于异步接口,即系统返回一个实例ID,但该转发规则尚未创建成功,系统后台的创建任务仍在进行。您可以调用[ListRules](~~214379~~)查询转发规则的创建状态:'."\n" + .' - 当转发规则处于**Provisioning**状态时,表示转发规则正在创建中。'."\n" + .' - 当转发规则处于**Available**状态时,表示转发规则创建成功。'."\n" ."\n" - .' - 当任务状态处于 Processing 时,表示安全组正在绑定中,在该状态下,您只能执行查询操作,不能执行其他操作。', - ], - 'LoadBalancerLeaveSecurityGroup' => [ - 'summary' => '为应用型负载均衡实例解绑安全组。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'abilityTreeCode' => '171520', - 'abilityTreeNodes' => [ - 'FEATUREslbKS6M4D', - 'FEATUREslb39XGK4', - ], - ], - 'parameters' => [ - [ - 'name' => 'SecurityGroupIds', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '安全组ID集合。', - 'type' => 'array', - 'items' => [ - 'description' => '安全组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sg-1nmf15kvwj37g2g1****', - ], - 'required' => true, - 'maxItems' => 10, - ], - ], - [ - 'name' => 'LoadBalancerId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-iv9gj3spak6fbj****', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式和业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回**http_2xx**状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n\n" - .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => '创建结果', - 'description' => '创建结果', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID', - 'type' => 'string', - 'example' => 'EC0C96E4-7CCB-599C-9329-3A5DB6FF****', - ], - 'JobId' => [ - 'description' => '异步任务ID', - 'type' => 'string', - 'example' => '51c5b627-3500-487c-b17d-5cc583f0****', - ], + .'- 一条转发规则最多支持添加的条件数(**RuleConditions**)和动作数(**RuleActions**)如下:'."\n" + .' - 条件数:基础版5条,标准版10条,WAF增强版10条。'."\n" + .' - 动作数:基础版3条,标准版5条,WAF增强版5条。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.SecurityGroupNotSupport', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceNotAssociated.SecurityGroup', - 'errorMessage' => 'The specified resource of %s is not associated.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.SecurityGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Alb::2020-06-16::ListAsynJobs', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 20, - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC0C96E4-7CCB-599C-9329-3A5DB6FF****\\",\\n \\"JobId\\": \\"51c5b627-3500-487c-b17d-5cc583f0****\\"\\n}","type":"json"}]', - 'title' => '负载均衡实例移出安全组', - 'description' => '- LoadBalancerLeaveSecurityGroup 接口属于异步接口,即系统返回一个请求 ID,但该应用型负载均衡实例的安全组尚未解绑成功,系统后台的解绑任务仍在进行。您可以调用 [ListAsynJobs](~~2254893~~) 查询安全组的解绑状态:'."\n" - ."\n" - .' - 当任务状态处于 Succeeded 时,表示安全组解绑成功。'."\n" - ."\n" - .' - 当任务状态处于 Processing 时,表示安全组正在解绑中,在该状态下,您只能执行查询操作,不能执行其他操作。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540750\\",\\n \\"RuleId\\": \\"rule-a3x3pg1yohq3lq****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540750\\n rule-a3x3pg1yohq3lq****\\n","errorExample":""}]', ], - 'CreateListener' => [ - 'summary' => '创建监听。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateRules' => [ + 'summary' => '批量创建转发规则。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3860,2094 +2797,633 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', - 'abilityTreeCode' => '186', - 'abilityTreeNodes' => [ - 'FEATUREslbM7ALO6', - 'FEATUREslbK3ZR0L', - 'FEATUREslbN5IE4S', - ], + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '170', + 'abilityTreeNodes' => ['FEATUREslbBIWWMH', 'FEATUREslbTXOYED', 'FEATUREslbQCCQ6L', 'FEATUREslb4T90LL', 'FEATUREslbIT4IYN', 'FEATUREslbA51OGD', 'FEATUREslbUBPZWI', 'FEATUREslbGVK35E', 'FEATUREslbYG3GCF', 'FEATUREslbRBR9GZ', 'FEATUREslbMWZQWL', 'FEATUREslbJCYSIV', 'FEATUREslbY93SFN', 'FEATUREslbVUMBEO', 'FEATUREslbZ4XFTS', 'FEATUREslb2Q6O49'], + 'autoTest' => true, ], 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'ListenerId', 'in' => 'query', - 'schema' => [ - 'title' => '负载均衡标识', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-n5qw04uq8vavfe****', - ], + 'schema' => ['title' => '监听标识', 'description' => '应用型负载均衡实例监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-l16uo9y******'], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - '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' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建多条转发规则。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行创建。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'ListenerProtocol', - 'in' => 'query', - 'schema' => [ - 'title' => '监听协议', - 'description' => '监听协议。'."\n" - ."\n" - .'取值:**HTTP**、**HTTPS**或**QUIC**。', - 'type' => 'string', - 'required' => true, - 'example' => 'HTTP', - ], - ], - [ - 'name' => 'ListenerPort', - 'in' => 'query', - 'schema' => [ - 'title' => '监听端口', - 'description' => '负载均衡实例前端使用的端口。'."\n" - ."\n" - .'取值:**1~65535**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '80', - ], - ], - [ - 'name' => 'ListenerDescription', - 'in' => 'query', - 'schema' => [ - 'title' => '监听描述', - 'description' => '自定义监听名称。'."\n" - ."\n" - .'长度为2~256个字符,必须是中文和无害字符串中的字符,可包含中文、字母、数字、短划线(-)、正斜线(/)、半角句号(.)、下划线(_)。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP_80', - ], - ], - [ - 'name' => 'RequestTimeout', - 'in' => 'query', - 'schema' => [ - 'title' => '请求超时时间', - 'description' => '指定请求超时时间。单位:秒。'."\n" - ."\n" - .'取值:**1~180**。'."\n" - ."\n" - .'默认值:**60**。'."\n" - ."\n" - .'如果在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,并给客户端返回` HTTP 504 `错误码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '60', - 'default' => '60', - ], - ], - [ - 'name' => 'IdleTimeout', - 'in' => 'query', - 'schema' => [ - 'title' => '连接空闲超时时间', - 'description' => '指定连接空闲超时时间。单位:秒。'."\n" - ."\n" - .'取值范围:**1~60**。'."\n" - ."\n" - .'默认值:**15**。'."\n" - ."\n" - .'如果在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到一下次请求来临时重新建立新的连接。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '3', - 'default' => '15', - ], - ], - [ - 'name' => 'GzipEnabled', - 'in' => 'query', - 'schema' => [ - 'title' => '是否开启Gzip压缩', - 'description' => '是否开启`Gzip`压缩,对特定文件类型进行压缩。取值:'."\n" - ."\n" - .'- **true**(默认值):是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'Http2Enabled', - 'in' => 'query', - 'schema' => [ - 'title' => '是否开启HTTP/2特性', - 'description' => '是否开启`HTTP/2`特性。取值:'."\n" - .'- **true**(默认值):是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'SecurityPolicyId', - 'in' => 'query', - 'schema' => [ - 'title' => '安全策略', - 'description' => '安全策略ID。支持系统安全策略和自定义安全策略。'."\n" - ."\n" - .'默认值:**tls\\_cipher\\_policy\\_1_0**(系统安全策略)。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'tls_cipher_policy_1_0', - ], - ], - [ - 'name' => 'CaEnabled', - 'in' => 'query', - 'schema' => [ - 'title' => '是否开启双向认证', - 'description' => '是否开启双向认证。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**(默认值):不开启。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'XForwardedForConfig', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => 'XForward字段相关的配置', - 'description' => 'XForward字段配置信息。', - 'type' => 'object', - 'properties' => [ - 'XForwardedForClientCertClientVerifyAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertClientVerifyEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头名称,只有当**XForwardedForClientCertClientVerifyEnabled**的值为**true**的时候,该值才会生效;否则该值不会生效。'."\n" - ."\n" - .'取值:1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_client-verify-alias_123456', - ], - 'XForwardedForClientCertClientVerifyEnabled' => [ - 'title' => '是否通过X-Forwarded-Clientcert-clientverify 头字段获取对访问负载均衡实例客户端证书的校验结果。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-clientverify`头字段获取对访问负载均衡实例客户端证书的校验结果。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'XForwardedForClientCertFingerprintAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertFingerprintEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头名称,只有当**XForwardedForClientCertFingerprintEnabled**的值为**true**时生效。'."\n" - ."\n" - .'取值:1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_finger-print-alias_123456', - ], - 'XForwardedForClientCertFingerprintEnabled' => [ - 'title' => '是否通过X-Forwarded-Clientcert-fingerprint 头字段获取访问负载均衡实例客户端证书的指纹取值,HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-fingerprint`头字段获取访问负载均衡实例客户端证书的指纹取值。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'XForwardedForClientCertIssuerDNAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertIssuerDNEnabled的值为‘On’的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头名称,只有当**XForwardedForClientCertIssuerDNEnabled**的值为**true**的时候,此值才会生效。'."\n" - ."\n" - .'取值:1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_issue-dn-alias_123456', - ], - 'XForwardedForClientCertIssuerDNEnabled' => [ - 'title' => '是否通过 X-Forwarded-Clientcert-issuerdn 头字段获取访问负载均衡实例客户端证书的发行者信息。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-issuerdn`头字段获取访问负载均衡实例客户端证书的发行者信息。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'XForwardedForClientCertSubjectDNAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertSubjectDNEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头名称,只有当**XForwardedForClientCertSubjectDNEnabled**的值为**true**时,此值才会生效。'."\n" - ."\n" - .'取值:1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_subject-dn-alias_123456', - ], - 'XForwardedForClientCertSubjectDNEnabled' => [ - 'title' => '是否通过X-Forwarded-Clientcert-subjectdn 头字段获取访问负载均衡实例客户端证书的所有者信息。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-subjectdn`头字段获取访问负载均衡实例客户端证书的所有者信息。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'XForwardedForClientSrcPortEnabled' => [ - 'title' => '是否通过X-Forwarded-Client-Port 头字段获取访问负载均衡实例客户端的端口。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Client-srcport`头字段获取访问负载均衡实例客户端的端口。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> HTTP和HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'XForwardedForEnabled' => [ - 'title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP', - 'description' => '是否通过`X-Forwarded-For`头字段获取来访者真实IP。取值:'."\n" - .'- **true**(默认值):是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 1. 配置**true**,**XForwardedForProcessingMode**默认取值**append**,支持修改为**remove**。'."\n" - .'> 2. 配置**false**,ALB将请求发送至后端服务之前保留`X-Forwarded-For`头字段,不做额外处理。'."\n" - .'> 3. HTTP和HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'XForwardedForProcessingMode' => [ - 'description' => '处理`X-Forwarded-For`头字段的模式。只有当**XForwardedForEnabled**为**true**时,此值才会生效。取值:'."\n" - .'- **append**(默认值):附加。'."\n" - .'- **remove**:删除。'."\n" - ."\n" - .'> 1. 配置**append**,将请求发送至后端服务之前把最后一跳IP加入`X-Forwarded-For`头字段。'."\n" - .'> 2. 配置**remove**,请求发送至后端服务之前删除`X-Forwarded-For`标头,无论请求是否携带`X-Forwarded-For`头字段。'."\n" - .'> 3. HTTP和HTTPS监听支持此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'append', - ], - 'XForwardedForProtoEnabled' => [ - 'title' => '是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。', - 'description' => '是否通过`X-Forwarded-Proto`头字段获取负载均衡实例的监听协议。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForSLBIdEnabled' => [ - 'title' => '是否通过SLB-ID头字段获取负载均衡实例ID。', - 'description' => '是否通过`SLB-ID`头字段获取负载均衡实例ID。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForSLBPortEnabled' => [ - 'title' => '是否通过X-Forwarded-Port 头字段获取负载均衡实例的监听端口。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Port`头字段获取负载均衡实例的监听端口。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForClientSourceIpsEnabled' => [ - 'description' => '是否允许ALB从X-Forwarded-For头字段中查找真实客户端IP。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> HTTP、HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForClientSourceIpsTrusted' => [ - 'description' => '指定可信的代理IP。'."\n" - ."\n" - .'应用型负载均衡ALB会从后往前遍历`X-Forwarded-For`,选取第一个不在可信IP列表中的IP作为真实的客户端IP,该IP会被用于源IP限速。', - 'type' => 'string', - 'required' => false, - 'example' => '10.1.1.0/24', - ], - 'XForwardedForHostEnabled' => [ - 'description' => '是否开启通过`X-Forwarded-Host`头字段获取访问负载均衡实例客户端的域名。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - 'required' => false, - ], - ], - [ - 'name' => 'QuicConfig', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => 'HTTPS启用QUIC时相关属性', - 'description' => '配置关联的QUIC监听。', - 'type' => 'object', - 'properties' => [ - 'QuicListenerId' => [ - 'title' => '需要关联的QUIC监听ID,HTTPS监听时有效,QuicUpgradeEnabled为true时必选', - 'description' => '需要关联的QUIC监听ID,HTTPS监听时有效,当**QuicUpgradeEnabled**为**true**时该参数必选。'."\n" - ."\n" - .'> 原始监听和关联的QUIC监听必须属于同一个ALB实例,并且此QUIC监听之前没有被关联过。', - 'type' => 'string', - 'required' => false, - 'example' => 'lsn-o4u54y73wq7b******', - ], - 'QuicUpgradeEnabled' => [ - 'title' => '是否开启quic升级,HTTPS监听时有效', - 'description' => '是否开启QUIC升级。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - 'required' => false, - ], - ], - [ - 'name' => 'Certificates', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '监听默认服务器证书列表,N当前取值范围为1', - 'description' => '证书列表信息。', - 'type' => 'array', - 'items' => [ - 'description' => '证书结构体。', - 'type' => 'object', - 'properties' => [ - 'CertificateId' => [ - 'title' => '正式标识', - 'description' => '默认证书ID,目前仅支持添加 1 个默认服务器证书。'."\n" - ."\n" - .'> - 当**ListenerProtocol**参数取值为**HTTPS**或**QUIC**的时候,此参数为必填。'."\n" - .'> - 如需更多服务器证书,可在创建监听后调用[AssociateAdditionalCertificatesWithListener](~~2254830~~)配置扩展证书。', - 'type' => 'string', - 'required' => false, - 'example' => '103705*******', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 1, - 'minItems' => 1, - ], - ], - [ - 'name' => 'CaCertificates', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '监听默认CA证书列表,N当前取值范围为1', - 'description' => '监听配置的CA证书列表。目前仅支持添加1个CA证书。', - 'type' => 'array', - 'items' => [ - 'description' => '监听配置的CA证书结构。', - 'type' => 'object', - 'properties' => [ - 'CertificateId' => [ - 'title' => '正式标识', - 'description' => 'CA证书ID。'."\n" - ."\n" - .'> 当**CaEnabled**参数取值为**true**的时候,此参数为必填。', - 'type' => 'string', - 'required' => false, - 'example' => '123157*******', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 1, - 'minItems' => 1, - ], - ], - [ - 'name' => 'DefaultActions', - 'in' => 'query', + 'name' => 'Rules', + 'in' => 'formData', 'style' => 'flat', 'schema' => [ - 'title' => '监听默认动作', - 'description' => '规则动作列表。', + 'title' => '转发规则列表', + 'description' => '转发规则列表。', 'type' => 'array', 'items' => [ - 'description' => '规则动作列表。', + 'description' => '转发规则。', 'type' => 'object', 'properties' => [ - 'ForwardGroupConfig' => [ - 'title' => '转发组', - 'description' => '转发动作对应的配置。最多支持添加20个转发动作对应的配置。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupTuples' => [ - 'title' => '服务器组列表', - 'description' => '转发目标服务器元组。', - 'type' => 'array', - 'items' => [ - 'description' => '转发目标服务器元组。', + 'Priority' => ['title' => '转发规则优先级', 'description' => '转发规则优先级。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + 'RuleActions' => [ + 'title' => '转发规则动作', + 'description' => '转发规则动作列表。', + 'type' => 'array', + 'items' => [ + 'description' => '转发规则动作。', + 'type' => 'object', + 'properties' => [ + 'FixedResponseConfig' => [ + 'title' => '返回固定内容动作配置', + 'description' => '返回固定内容动作配置。', 'type' => 'object', 'properties' => [ - 'ServerGroupId' => [ - 'title' => '服务器组ID', - 'description' => '转发到的目的服务器组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-8ilqs4axp6******', - ], + 'Content' => ['title' => '内容', 'description' => '返回的固定内容。最大支持存储1 KB,只支持ASCII字符。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'ContentType' => ['title' => '内容类型', 'description' => '返回固定内容的格式。'."\n" + ."\n" + .'取值:**text/plain**、**text/css**、**text/html**、**application/javascript**或**application/json**。', 'type' => 'string', 'required' => false, 'example' => 'text/plain'], + 'HttpCode' => ['title' => 'HTTP响应码', 'description' => '返回的HTTP响应码,仅支持**2xx**、**4xx**、**5xx**数字型字符串,**x**为任意数字。', 'type' => 'string', 'required' => false, 'example' => '200'], ], - 'required' => true, + 'required' => false, ], - 'required' => true, - ], - ], - 'required' => true, - ], - 'Type' => [ - 'title' => '动作类型', - 'description' => '动作类型。最多支持添加1个动作类型。'."\n" - ."\n" - .'取值:**ForwardGroup**,表示转发至多个服务器组。', - 'type' => 'string', - 'required' => true, - 'example' => 'ForwardGroup', - ], - ], - 'required' => true, - ], - 'required' => true, - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - '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, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '创建监听。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'ListenerId' => [ - 'title' => '监听标识', - 'description' => '监听ID。', - 'type' => 'string', - 'example' => 'lsn-o4u54y73wq7b******', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876*******', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ResourceAlreadyExist.Listener', - 'errorMessage' => 'The specified resource %s is already exist.', - ], - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerListenersNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'OperationDenied.CrossLoadBalancerQUICListener', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.Listener', - 'errorMessage' => 'The specified resource %s is already associated.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.SecurityPolicyAttachedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'OperationDenied.ServerGroupProtocolNotSupport', - 'errorMessage' => 'The operation is not allowed because of ServerGroupProtocolNotSupport.', - ], - [ - 'errorCode' => 'OperationDenied.GRPCServerGroup', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'Mismatch.LoadBalancerEditionAndConnectionDrain', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Invalid parameter, please check the parameter input.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.SecurityPolicy', - 'errorMessage' => 'Authentication has failed for SecurityPolicy.', - ], - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], - [ - 'errorCode' => 'Forbidden.Listener', - 'errorMessage' => 'Authentication is failed for %s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.SecurityPolicy', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Certificate', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"ListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n lsr-bp1bpn0kn908w4nbw****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => '创建监听', - 'description' => '**CreateListener**接口属于异步接口,即系统返回一个请求ID,但该HTTP、HTTPS或QUIC监听尚未创建成功,系统后台的创建任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询HTTP、HTTPS或QUIC监听的创建状态:'."\n" - .'- 当HTTP、HTTPS或QUIC监听处于**Provisioning**状态时,表示HTTP、HTTPS或QUIC监听正在创建中。'."\n" - .'- 当HTTP、HTTPS或QUIC监听处于**Running**状态时,表示HTTP、HTTPS或QUIC监听创建成功。', - ], - 'GetListenerAttribute' => [ - 'summary' => '查询监听的详细信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '189', - 'abilityTreeNodes' => [ - 'FEATUREslbM7ALO6', - 'FEATUREslbK3ZR0L', - 'FEATUREslbN5IE4S', - ], - ], - 'parameters' => [ - [ - 'name' => 'ListenerId', - 'in' => 'query', - 'schema' => [ - 'title' => '监听标识', - 'description' => '监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-o4u54y73wq7b******', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '查询监听的详细信息。', - 'type' => 'object', - 'properties' => [ - 'AclConfig' => [ - 'title' => 'ACL相关配置信息', - 'description' => 'ACL配置结构。', - 'type' => 'object', - 'properties' => [ - 'AclRelations' => [ - 'title' => '监听绑定的访问策略组', - 'description' => '监听绑定的访问策略组ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '监听绑定的访问策略组结构。', - 'type' => 'object', - 'properties' => [ - 'AclId' => [ - 'title' => 'ACL标识', - 'description' => '监听绑定的访问策略组ID。', - 'type' => 'string', - 'example' => 'acl-doc****', + 'ForwardGroupConfig' => [ + 'title' => '转发组动作配置', + 'description' => '转发组动作配置。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'title' => '转发到的目的服务器组列表', + 'description' => '转发到的目的服务器组列表。', + 'type' => 'array', + 'items' => [ + 'description' => '转发到的目的服务器组。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['title' => '服务器组标识', 'description' => '服务器组标识。', 'type' => 'string', 'required' => false, 'example' => 'sgp-ffm94ovy7lqw******'], + 'Weight' => ['title' => '权重', 'description' => '权重。取值越大,权重越大,表示转发的访问请求更多。取值范围:**0**~**100**。'."\n" + ."\n" + .'- 目的服务器组数为1时,未指定权重时默认值为**100**。'."\n" + ."\n" + .'- 目的服务器组数大于1时,需要用户指定权重值。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '0', 'example' => '100'], + ], + 'required' => false, + ], + 'required' => false, + ], + 'ServerGroupStickySession' => [ + 'title' => '服务器组之间会话保持', + 'description' => '服务器组之间会话保持。', + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['title' => '是否开启会话保持', 'description' => '是否开启会话保持。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**(默认值):不开启。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'Timeout' => ['title' => '超时时间', 'description' => '超时时间。单位:秒。取值范围:**1**~**86400**。默认值:**1000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + ], + 'required' => false, + ], ], - 'Status' => [ - 'title' => 'ACL与监听关联的状态', - 'description' => 'ACL与监听关联的状态。取值:'."\n" + 'required' => false, + ], + 'InsertHeaderConfig' => [ + 'title' => '插入头部动作配置', + 'description' => '插入头部动作配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'HTTP标头', 'description' => '插入的头字段名称,长度为1\\~40个字符,支持大小写字母a\\~z、数字、下划线(_)和短划线(-)。**InsertHeaderConfig**中的头字段名称不能重复。'."\n" + ."\n" + .'> 不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`、`x-forwarded-host`。', 'type' => 'string', 'required' => false, 'example' => 'key'], + 'Value' => ['title' => 'HTTP标头内容', 'description' => '插入的头字段内容。'."\n" ."\n" - .'- **Associating**:关联中。'."\n" + .'- **ValueType**取值为**SystemDefined**时取值如下:'."\n" + .' - **ClientSrcPort**:客户端端口。'."\n" + .' - **ClientSrcIp**:客户端IP地址。'."\n" + .' - **Protocol**:客户端请求的协议(HTTP或HTTPS)。'."\n" + .' - **SLBId**:应用型负载均衡实例ID。'."\n" + .' - **SLBPort**:应用型负载均衡实例监听端口。'."\n" + .'- **ValueType**取值为**UserDefined**时:您可自定义头字段内容,限制长度为1~128个字符,支持通配符星号(*)、半角问号(?)和ASCII码值`ch >= 32 && ch < 127`范围内的可打印字符,不支持`"`。开头和结尾不能为空格。结尾不能为`\\`。'."\n" + .'- **ValueType**取值为**ReferenceHeader**时:您可以引用请求头字段中的某一个字段,限制长度限制为1\\~128个字符,支持小写字母a\\~z、数字、短划线(-)和下划线(_)。', 'type' => 'string', 'required' => false, 'example' => 'value'], + 'ValueType' => ['title' => '取值类型', 'description' => '头字段内容类型。取值:'."\n" ."\n" - .'- **Associated**:已关联。'."\n" + .'- **UserDefined**:您自定义头字段内容。'."\n" ."\n" - .'- **Dissociating**:解关联中。', - 'type' => 'string', - 'example' => 'Associating', + .'- **ReferenceHeader**:引用请求头中的某一个头字段内容。'."\n" + ."\n" + .'- **SystemDefined**:系统定义头字段内容。', 'type' => 'string', 'required' => false, 'example' => 'SystemDefined'], ], + 'required' => false, ], - ], - ], - 'AclType' => [ - 'title' => '访问控制类型', - 'description' => '访问控制类型。取值:'."\n" - ."\n" - .'- **White**:仅转发来自所选访问控制策略组中设置的IP地址或地址段的请求,白名单适用于应用只允许特定IP访问的场景。设置白名单存在一定业务风险。一旦设置白名单,就只有白名单中的IP可以访问负载均衡监听。'."\n" - ."\n" - .' 如果开启了白名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。'."\n" - ."\n" - .'- **Black**:来自所选访问控制策略组中设置的IP地址或地址段的所有请求都不会转发,黑名单适用于应用只限制某些特定IP访问的场景。'."\n" - ."\n" - .' 如果开启了黑名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。', - 'type' => 'string', - 'example' => 'White', - ], - ], - ], - 'Certificates' => [ - 'title' => '监听默认服务器证书列表,N当前取值范围为1', - 'description' => '证书列表。', - 'type' => 'array', - 'items' => [ - 'description' => '证书结构。', - 'type' => 'object', - 'properties' => [ - 'CertificateId' => [ - 'title' => '正式标识', - 'description' => '证书ID,当前仅支持服务器证书。', - 'type' => 'string', - 'example' => '123157*******', - ], - ], - ], - ], - 'CaCertificates' => [ - 'title' => '监听默认CA证书列表,N当前取值范围为1', - 'description' => 'CA证书列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CertificateId' => [ - 'title' => '正式标识', - 'description' => 'CA证书ID。', - 'type' => 'string', - 'example' => '139a00*****', - ], - 'Status' => [ - 'title' => '证书状态', - 'description' => '证书状态。', - 'type' => 'string', - 'example' => 'Associated', - ], - 'IsDefault' => [ - 'title' => '是否为默认证书', - 'description' => '是否为默认证书。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - 'CaEnabled' => [ - 'title' => '是否开启双向认证', - 'description' => '是否开启双向认证。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'DefaultActions' => [ - 'title' => '默认动作', - 'description' => '默认规则动作列表。', - 'type' => 'array', - 'items' => [ - 'description' => '默认规则动作结构。', - 'type' => 'object', - 'properties' => [ - 'ForwardGroupConfig' => [ - 'title' => '转发到服务器组', - 'description' => '转发动作对应的配置,类型为**ForwardGroup**时有效。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupTuples' => [ - 'title' => '服务器组列表', - 'description' => '转发目标服务器组。', - 'type' => 'array', - 'items' => [ - 'description' => '转发目标服务器组。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupId' => [ - 'title' => '服务器组ID', - 'description' => '转发到的目的服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-i5qt20******', - ], - ], - ], + 'Order' => ['title' => '优先级', 'description' => '转发规则动作执行的顺序,取值范围:**1~50000**,按值从小到大执行动作。值不能为空,不能重复。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + 'RedirectConfig' => [ + 'title' => '重定向动作配置', + 'description' => '重定向配置。'."\n" + ."\n" + .'> **RedirectConfig**的参数,除了**httpCode**外,不能都使用默认值。', + 'type' => 'object', + 'properties' => [ + 'Host' => ['title' => '要跳转的主机地址', 'description' => '要跳转的主机地址。取值:'."\n" + .'- **${host}**(默认值):取此值时不支持和其他字符拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)、等号(=)、波浪线(~)、下划线(_)、加号(+)、反斜线(\\)、脱字号(^)、感叹号(!)、美元符号($)、and(&)、竖线(|)、半角圆括号(())、方括号(\\[\\])和半角问号(?)。'."\n" + .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-),最左侧`domainlable`允许是星号(*)。'."\n" + .' - 短划线(-)不能出现在其它域标签的开头或结尾。'."\n" + .' - 通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', 'type' => 'string', 'required' => false, 'example' => '${host}'], + 'HttpCode' => ['title' => '跳转方式', 'description' => '跳转方式。取值:**301**、**302**、**303**、**307**或**308**。', 'type' => 'string', 'required' => false, 'example' => '301'], + 'Path' => ['title' => '要跳转的路径', 'description' => '要跳转的路径。取值:'."\n" + .'- **${path}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1\\~128个字符,大小写敏感,支持通配符星号(*)和半角问号(?)作为通配符使用。'."\n" + .' - 必须以正斜线(/)开头,支持大小写字母、数字和特殊字符`$-_.+/&~@:\'*?`,不支持`“%#;!()[]^,”\\"`,同时支持通配符星号(*)和半角问号(?)。', 'type' => 'string', 'required' => false, 'example' => '/'], + 'Port' => ['title' => '要跳转的端口', 'description' => '要跳转的端口。'."\n" + .'- **${port}**(默认值):该取值不支持和其他字符同时使用。'."\n" + .'- 其他取值:**1~63335**。', 'type' => 'string', 'required' => false, 'example' => '443'], + 'Protocol' => ['title' => '要跳转的协议', 'description' => '要跳转的协议。取值:'."\n" + .'- **${protocol}**(默认值):取该值时仅支持单独使用,不支持修改或与其他字符拼接使用。'."\n" + .'- **HTTP**'."\n" + .'- **HTTPS**'."\n" + .'> '."\n" + .'> - HTTPS监听仅支持跳转HTTPS协议。'."\n" + .'> - HTTP监听支持跳转HTTP和HTTPS协议。', 'type' => 'string', 'required' => false, 'example' => 'HTTPS'], + 'Query' => ['title' => '要跳转的查询字符串', 'description' => '要跳转的查询字符串。'."\n" + .'- **${query}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1\\~128个字符。'."\n" + .' - 支持可见字符,不支持空格和 `#[]{}\\|<>"`。如果是字母则必须是小写字母。', 'type' => 'string', 'required' => false, 'example' => '${query}'], ], + 'required' => false, ], - ], - 'Type' => [ - 'title' => '类型', - 'description' => '动作类型。'."\n" - ."\n" - .'取值:**ForwardGroup**,表示转发至多个服务器组。', - 'type' => 'string', - 'example' => 'ForwardGroup', - ], - ], - ], - ], - 'GzipEnabled' => [ - 'title' => '是否开启Gzip压缩', - 'description' => '是否开启Gzip压缩,对特定文件类型进行压缩。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Http2Enabled' => [ - 'title' => '是否开启HTTP/2特性', - 'description' => '是否开启HTTP/2特性。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'IdleTimeout' => [ - 'title' => '连接空闲超时时间', - 'description' => '指定连接空闲超时时间。单位:秒。'."\n" - ."\n" - .'如果在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到下一次请求来临时重新建立新的连接。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'ListenerDescription' => [ - 'title' => '监听描述', - 'description' => '自定义监听名称。', - 'type' => 'string', - 'example' => 'HTTP_80', - ], - 'ListenerId' => [ - 'title' => '监听标识', - 'description' => '监听ID。', - 'type' => 'string', - 'example' => 'lsn-o4u54y73wq7b******', - ], - 'ListenerPort' => [ - 'title' => '监听端口', - 'description' => '负载均衡实例前端使用的端口。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'ListenerProtocol' => [ - 'title' => '监听协议', - 'description' => '监听协议。取值:**HTTP**、**HTTPS**或**QUIC**。', - 'type' => 'string', - 'example' => 'HTTP', - ], - 'ListenerStatus' => [ - 'title' => '监听状态', - 'description' => '当前监听的状态。取值:'."\n" - ."\n" - .'- **Provisioning**:创建中。'."\n" - ."\n" - .'- **Running**:运行中。'."\n" - ."\n" - .'- **Configuring**:配置中。'."\n" - ."\n" - .'- **Stopped**:已停止。', - 'type' => 'string', - 'example' => 'Running', - ], - 'LoadBalancerId' => [ - 'title' => '负载均衡标识', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'example' => 'alb-bd6oylbckp6k9x****', - ], - 'LogConfig' => [ - 'title' => '监听访问日志相关配置', - 'description' => '日志配置信息。', - 'type' => 'object', - 'properties' => [ - 'AccessLogRecordCustomizedHeadersEnabled' => [ - 'title' => '访问日志是否开启携带自定义Header', - 'description' => '访问日志是否开启携带自定义头字段。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'AccessLogTracingConfig' => [ - 'title' => '访问日志Xtrace相关的配置', - 'description' => '访问日志Xtrace相关的配置信息。', - 'type' => 'object', - 'properties' => [ - 'TracingEnabled' => [ - 'title' => 'Xtrace功能状态', - 'description' => 'Xtrace功能状态。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" + 'RewriteConfig' => [ + 'title' => '内部重定向动作配置', + 'description' => '重写配置。'."\n" ."\n" - .'> 只有实例访问日志开关(AccessLogEnabled)打开时,才能设置为**true**。', - 'type' => 'boolean', - 'example' => 'true', + .'> 同一个转发规则配置多个动作时,**RewriteConfig**动作使用时必须配置**ForwardGroup**的动作类型。', + 'type' => 'object', + 'properties' => [ + 'Host' => ['title' => '主机名', 'description' => '内部跳转的目的主机地址。取值:'."\n" + .'- **${host}**(默认值):该取值不支持和其他字符拼接。'."\n" + ."\n" + .'- 其他取值,字符格式限制如下:'."\n" + ."\n" + .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)、等号(=)、波浪线(~)、下划线(_)、加号(+)、反斜线(\\)、脱字号(^)、感叹号(!)、美元符号($)、and(&)、竖线(|)、半角圆括号(())、方括号(\\[\\])和半角问号(?)。'."\n" + ."\n" + .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + ."\n" + .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-),最左侧`domainlable`允许是星号(*)。'."\n" + ."\n" + .' - 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', 'type' => 'string', 'required' => false, 'example' => 'www.rewrite.alb'], + 'Path' => ['title' => '路径', 'description' => '要跳转的路径。取值:'."\n" + .'- **${path}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1\\~128个字符,大小写敏感,支持通配符星号(*)和半角问号(?)作为通配符使用。'."\n" + .' - 必须以正斜线(/)开头,支持大小写字母、数字和特殊字符`$-_.+/&~@:\'*?`,不支持`“%#;!()[]^,”\\"`,同时支持通配符星号(*)和半角问号(?)。', 'type' => 'string', 'required' => false, 'example' => '/tea'], + 'Query' => ['title' => '查询', 'description' => '内部跳转的查询字符串。'."\n" + .'- **${query}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1\\~128个字符。'."\n" + .' - 支持可见字符,不支持空格和 `#[]{}\\|<>"`。如果是字母则必须是小写字母。', 'type' => 'string', 'required' => false, 'example' => '${query}'], + ], + 'required' => false, ], - 'TracingSample' => [ - 'title' => 'Xtrace功能状态', - 'description' => 'Xtrace的采样率。取值:1~10000。'."\n" - ."\n" - .'> **TracingEnabled**为**true**时,此值有效。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', + 'Type' => ['title' => '转发规则动作类型', 'description' => '动作类型。取值:'."\n" + ."\n" + .'- **ForwardGroup**:转发至多个虚拟服务器组。'."\n" + ."\n" + .'- **Redirect**:重定向。'."\n" + ."\n" + .'- **FixedResponse**:返回固定内容。'."\n" + ."\n" + .'- **Rewrite**:重写。'."\n" + ."\n" + .'- **InsertHeader**:写入头字段。'."\n" + ."\n" + .'- **RemoveHeader**:删除头字段。'."\n" + ."\n" + .'- **TrafficLimit**:流量限速。'."\n" + ."\n" + .'- **TrafficMirror**:流量镜像。'."\n" + ."\n" + .'- **Cors**:跨域。'."\n" + ."\n" + .'> 一个转发规则必须包含有一条**ForwardGroup**(转发至)、**Redirect**(重定向)或**FixedResponse**(返回固定响应)转发动作,与其他类型转发动作并存时,必须放在最后执行。', 'type' => 'string', 'required' => true, 'example' => 'ForwardGroup'], + 'TrafficLimitConfig' => [ + 'title' => '流量限速', + 'description' => '流量限速。', + 'type' => 'object', + 'properties' => [ + 'QPS' => ['description' => '每秒请求次数。取值范围:**1**~**1000000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5000'], + 'PerIpQps' => ['description' => '单IP每秒请求次数。 取值范围:**1 ~ 1000000**。'."\n" + ."\n" + .'> 如果同时配置**QPS**参数,**PerIpQps**参数的取值必须小于**QPS**参数的取值。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + ], + 'required' => false, ], - 'TracingType' => [ - 'title' => 'xtrace的类型', - 'description' => 'xtrace的类型。合法取值为**Zipkin**。'."\n" - ."\n" - .'> **TracingEnabled**为**true**时,此值有效。', - 'type' => 'string', - 'example' => 'Zipkin', + 'TrafficMirrorConfig' => [ + 'title' => '流量镜像', + 'description' => '流量镜像。', + 'type' => 'object', + 'properties' => [ + 'TargetType' => ['title' => '镜像目标类型', 'description' => '镜像的目标类型。取值:'."\n" + .'- **ForwardGroupMirror**:表示镜像至服务器组。', 'type' => 'string', 'required' => false, 'example' => 'ForwardGroupMirror'], + 'MirrorGroupConfig' => [ + 'title' => '镜像至服务器组', + 'description' => '镜像至服务器组', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'description' => '流量镜像至服务器组。', + 'type' => 'array', + 'items' => [ + 'description' => '流量镜像至服务器组。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => false, 'example' => 'sgp-u9cmf16iu69******'], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'RemoveHeaderConfig' => [ + 'title' => '去除HTTP标头', + 'description' => '去除HTTP标头', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'HTTP标头键', 'description' => '去除的头字段名称,长度为1~40个字符,支持大小写字母a~z、数字、下划线(_)和短划线(-)。头字段名称不能重复用于RemoveHeader中。'."\n" + ."\n" + .'- 请求方向(Direction取值为Request):不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`、`x-forwarded-host`。'."\n" + .'- 响应方向(Direction取值为Response):响应方向不允许将头名称设置为以下字段(不区分大小写):`connection`、`upgrade`、`content-length`、`transfer-encoding`。', 'type' => 'string', 'required' => false, 'example' => 'key'], + ], + 'required' => false, + ], + 'CorsConfig' => [ + 'title' => '跨域', + 'description' => '跨域。', + 'type' => 'object', + 'properties' => [ + 'AllowOrigin' => [ + 'title' => '允许的访问来源', + 'description' => '允许的访问来源。', + 'type' => 'array', + 'items' => ['description' => '允许的访问来源列表。支持只配置一个元素`*`,或配置一个或多个值。'."\n" + .'- 单个值必须以`http://`或者`https://`开头,后边加一个正确的域名或一级泛域名。(例:`http://*.test.abc.example.com`)'."\n" + .'- 单个值可以不加端口,也可以指定端口,端口范围:**1**~**65535**。', 'type' => 'string', 'required' => false, 'example' => 'http://www.test.com'], + 'required' => false, + ], + 'AllowMethods' => [ + 'title' => '选择跨域访问时允许的HTTP方法', + 'description' => '选择跨域访问时允许的HTTP方法。', + 'type' => 'array', + 'items' => ['description' => '选择跨域访问时允许的HTTP方法。取值:'."\n" + .'- **GET**。'."\n" + .'- **POST**。'."\n" + .'- **PUT**。'."\n" + .'- **DELETE**。'."\n" + .'- **HEAD**。'."\n" + .'- **OPTIONS**。'."\n" + .'- **PATCH**。', 'type' => 'string', 'required' => false, 'example' => 'GET'], + 'required' => false, + ], + 'AllowHeaders' => [ + 'title' => '允许跨域的Header列表', + 'description' => '允许跨域的Header列表。', + 'type' => 'array', + 'items' => ['description' => '允许跨域的Header列表。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', 'type' => 'string', 'required' => false, 'example' => 'AllowHeader'], + 'required' => false, + ], + 'ExposeHeaders' => [ + 'title' => '允许暴露的Header列表', + 'description' => '允许暴露的Header列表。', + 'type' => 'array', + 'items' => ['description' => '允许暴露的Header。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', 'type' => 'string', 'required' => false, 'example' => 'ExposeHeader'], + 'required' => false, + ], + 'AllowCredentials' => [ + 'title' => '是否允许携带凭证信息', + 'description' => '是否允许携带凭证信息。取值:'."\n" + ."\n" + .'- **on**:是。'."\n" + .'- **off**:否。', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => ['off' => 'off', 'on' => 'on'], + 'example' => 'on', + ], + 'MaxAge' => ['title' => '预检请求在浏览器的最大缓存时间', 'description' => '预检请求在浏览器的最大缓存时间,单位:秒。'."\n" + ."\n" + .'取值范围:**-1**~**172800**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '600'], + ], + 'required' => false, ], ], + 'required' => true, ], + 'required' => true, + 'maxItems' => 100, + 'minItems' => 1, ], - ], - 'QuicConfig' => [ - 'title' => 'HTTPS启用QUIC时相关属性', - 'description' => '启用关联QUIC监听时的配置信息。', - 'type' => 'object', - 'properties' => [ - 'QuicListenerId' => [ - 'title' => '需要关联的QUIC监听ID,HTTPS监听时有效,QuicUpgradeEnabled为true时必选', - 'description' => '需要关联的QUIC监听ID。**QuicUpgradeEnabled**为**true**时必选。HTTPS监听时有效。'."\n" - ."\n" - .'> 原始监听和关联的QUIC监听必须属于同一个ALB实例,并且此QUIC监听之前没有被关联过。', - 'type' => 'string', - 'example' => 'lsn-ek6ad66t****', - ], - 'QuicUpgradeEnabled' => [ - 'title' => '是否开启quic升级,HTTPS监听时有效', - 'description' => '是否开启QUIC升级。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听时有效。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF******', - ], - 'RequestTimeout' => [ - 'title' => '请求超时时间', - 'description' => '指定请求超时时间。单位:秒。'."\n" - ."\n" - .'如果在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回`HTTP 504`错误码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '34', - ], - 'SecurityPolicyId' => [ - 'title' => '安全策略', - 'description' => '安全策略。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'example' => 'tls_cipher_policy_1_1', - ], - 'XForwardedForConfig' => [ - 'title' => 'XForward字段相关的配置', - 'description' => 'XForward字段配置信息。', - 'type' => 'object', - 'properties' => [ - 'XForwardedForClientCertClientVerifyAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertClientVerifyEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头名称。只有当**XForwardedForClientCertClientVerifyEnabled**的值为**true**的时候,此值才会生效,否则该值不会生效。'."\n" - ."\n" - .'取值限制:长度为1\\~40字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'example' => 'test_client-verify-alias_123456', - ], - 'XForwardedForClientCertClientVerifyEnabled' => [ - 'title' => '是否通过X-Forwarded-Clientcert-clientverify 头字段获取对访问负载均衡实例客户端证书的校验结果。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-clientverify`头字段获取访问负载均衡实例客户端证书的校验结果。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForClientCertFingerprintAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertFingerprintEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头名称,只有当**XForwardedForClientCertFingerprintEnabled**的值为**true**时生效。'."\n" - ."\n" - .'取值限制:长度为1\\~40字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'example' => 'test_finger-print-alias_123456', - ], - 'XForwardedForClientCertFingerprintEnabled' => [ - 'title' => '是否通过X-Forwarded-Clientcert-fingerprint 头字段获取访问负载均衡实例客户端证书的指纹取值,HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-fingerprint`头字段获取访问负载均衡实例客户端证书的指纹取值。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForClientCertIssuerDNAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertIssuerDNEnabled的值为‘On’的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头名称,只有当**XForwardedForClientCertIssuerDNEnabled**的值为**true**的时候,此值才会生效。'."\n" - ."\n" - .'取值限制:长度为1\\~40字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'example' => 'test_issue-dn-alias_123456', - ], - 'XForwardedForClientCertIssuerDNEnabled' => [ - 'title' => '是否通过 X-Forwarded-Clientcert-issuerdn 头字段获取访问负载均衡实例客户端证书的发行者信息。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-issuerdn`头字段获取访问负载均衡实例客户端证书的发行者信息。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForClientCertSubjectDNAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertSubjectDNEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头名称,只有当**XForwardedForClientCertSubjectDNEnabled的**值为**true**时,此值才会生效。'."\n" - ."\n" - .'取值限制:长度为1\\~40字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'example' => 'test_subject-dn-alias_123456', - ], - 'XForwardedForClientCertSubjectDNEnabled' => [ - 'title' => '是否通过X-Forwarded-Clientcert-subjectdn 头字段获取访问负载均衡实例客户端证书的所有者信息。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-subjectdn`头字段获取访问负载均衡实例客户端证书的所有者信息。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForClientSrcPortEnabled' => [ - 'title' => '是否通过X-Forwarded-Client-Port 头字段获取访问负载均衡实例客户端的端口。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Client-Port`头字段获取访问负载均衡实例客户端的端口。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP和HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForEnabled' => [ - 'title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP', - 'description' => '是否通过`X-Forwarded-For`头字段获取来访者真实IP。取值:'."\n" - .'- **true**(默认值):是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 1. 配置**true**,**XForwardedForProcessingMode**默认取值**append**,支持修改为**remove**。'."\n" - .'> 2. 配置**false**,将请求发送至后端服务之前保留`X-Forwarded-For`头字段,不做额外处理。'."\n" - .'> 3. HTTP和HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForProcessingMode' => [ - 'description' => '处理`X-Forwarded-For`头字段的模式。只有当**XForwardedForEnabled**为**true**时,此值才会生效。取值:'."\n" - .'- **append**(默认值):附加。'."\n" - .'- **remove**:删除。'."\n" - ."\n" - .'> 1. 配置**append**,将请求发送至后端服务之前把最后一跳IP加入`X-Forwarded-For`头字段。'."\n" - .'> 2. 配置**remove**,将请求发送至后端服务之前删除`X-Forwarded-For`标头,无论请求是否携带`X-Forwarded-For`头字段。'."\n" - .'> 3. HTTP和HTTPS监听支持此参数。', - 'type' => 'string', - 'example' => 'append', - ], - 'XForwardedForProtoEnabled' => [ - 'title' => '是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。', - 'description' => '是否通过`X-Forwarded-Proto`头字段获取负载均衡实例的监听协议。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForSLBIdEnabled' => [ - 'title' => '是否通过SLB-ID头字段获取负载均衡实例ID。', - 'description' => '是否通过`SLB-ID`头字段获取负载均衡实例ID。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForSLBPortEnabled' => [ - 'title' => '是否通过X-Forwarded-Port 头字段获取负载均衡实例的监听端口。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Port`头字段获取负载均衡实例的监听端口。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForClientSourceIpsEnabled' => [ - 'description' => '是否允许ALB从X-Forwarded-For头字段中查找真实客户端IP。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP、HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'XForwardedForClientSourceIpsTrusted' => [ - 'description' => '指定可信的代理IP。'."\n" - ."\n" - .'应用型负载均衡ALB会从后往前遍历`X-Forwarded-For`,选取第一个不在可信IP列表中的IP作为真实的客户端IP,该IP会被用于源IP限速。', - 'type' => 'string', - 'example' => '10.1.1.0/24', - ], - 'XForwardedForHostEnabled' => [ - 'description' => '是否开启通过`X-Forwarded-Host`头字段获取访问负载均衡实例客户端的域名。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'example' => 'false', - ], - ], - ], - 'Tags' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签结构。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'example' => 'product', - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclConfig\\": {\\n \\"AclRelations\\": [\\n {\\n \\"AclId\\": \\"acl-doc****\\",\\n \\"Status\\": \\"Associating\\"\\n }\\n ],\\n \\"AclType\\": \\"White\\"\\n },\\n \\"Certificates\\": [\\n {\\n \\"CertificateId\\": \\"123157*******\\"\\n }\\n ],\\n \\"CaCertificates\\": [\\n {\\n \\"CertificateId\\": \\"139a00*****\\",\\n \\"Status\\": \\"Associated\\",\\n \\"IsDefault\\": true\\n }\\n ],\\n \\"CaEnabled\\": false,\\n \\"DefaultActions\\": [\\n {\\n \\"ForwardGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-i5qt20******\\"\\n }\\n ]\\n },\\n \\"Type\\": \\"ForwardGroup\\"\\n }\\n ],\\n \\"GzipEnabled\\": true,\\n \\"Http2Enabled\\": true,\\n \\"IdleTimeout\\": 2,\\n \\"ListenerDescription\\": \\"HTTP_80\\",\\n \\"ListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTP\\",\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"LoadBalancerId\\": \\"alb-bd6oylbckp6k9x****\\",\\n \\"LogConfig\\": {\\n \\"AccessLogRecordCustomizedHeadersEnabled\\": true,\\n \\"AccessLogTracingConfig\\": {\\n \\"TracingEnabled\\": true,\\n \\"TracingSample\\": 100,\\n \\"TracingType\\": \\"Zipkin\\"\\n }\\n },\\n \\"QuicConfig\\": {\\n \\"QuicListenerId\\": \\"lsn-ek6ad66t****\\",\\n \\"QuicUpgradeEnabled\\": true\\n },\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\",\\n \\"RequestTimeout\\": 34,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_1\\",\\n \\"XForwardedForConfig\\": {\\n \\"XForwardedForClientCertClientVerifyAlias\\": \\"test_client-verify-alias_123456\\",\\n \\"XForwardedForClientCertClientVerifyEnabled\\": true,\\n \\"XForwardedForClientCertFingerprintAlias\\": \\"test_finger-print-alias_123456\\",\\n \\"XForwardedForClientCertFingerprintEnabled\\": true,\\n \\"XForwardedForClientCertIssuerDNAlias\\": \\"test_issue-dn-alias_123456\\",\\n \\"XForwardedForClientCertIssuerDNEnabled\\": true,\\n \\"XForwardedForClientCertSubjectDNAlias\\": \\"test_subject-dn-alias_123456\\",\\n \\"XForwardedForClientCertSubjectDNEnabled\\": true,\\n \\"XForwardedForClientSrcPortEnabled\\": true,\\n \\"XForwardedForEnabled\\": true,\\n \\"XForwardedForProcessingMode\\": \\"append\\",\\n \\"XForwardedForProtoEnabled\\": true,\\n \\"XForwardedForSLBIdEnabled\\": true,\\n \\"XForwardedForSLBPortEnabled\\": true,\\n \\"XForwardedForClientSourceIpsEnabled\\": false,\\n \\"XForwardedForClientSourceIpsTrusted\\": \\"10.1.1.0/24\\",\\n \\"XForwardedForHostEnabled\\": false\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n acl-doc****\\n Associating\\n \\n White\\n \\n \\n 12315790212_166f8204689_1714763408_70998****\\n \\n \\n 139a00604bd-cn-east-hangzho****\\n Associated\\n true\\n \\n false\\n \\n \\n \\n rsp-cige6j****\\n \\n \\n ForwardGroup\\n \\n true\\n true\\n 2\\n HTTP_80\\n lsr-bp1bpn0kn908w4nbw****\\n 80\\n HTTP\\n Running\\n alb-bd6oylbckp6k9x****\\n \\n true\\n \\n true\\n 100\\n Zipkin\\n \\n \\n \\n lsn-333\\n true\\n \\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 34\\n tls_cipher_policy_1_1\\n \\n test_client-verify-alias_123456\\n true\\n test_finger-print-alias_123456\\n true\\n test_issue-dn-alias_123456\\n true\\n test_subject-dn-alias_123456\\n true\\n true\\n true\\n true\\n true\\n true\\n false\\n 10.1.1.0/24\\n \\n","errorExample":""}]', - 'title' => '查询监听器的属性', - ], - 'DeleteListener' => [ - 'summary' => '删除指定的监听。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'ListenerId', - 'in' => 'query', - 'schema' => [ - 'title' => '监听id', - 'description' => '应用型负载均衡实例的监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-o4u54y73wq7b******', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会删除应用型负载均衡的监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '删除监听。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceInUse.Listener', - 'errorMessage' => 'The specified resource %s is in use.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.Listener', - 'errorMessage' => 'The specified resource is being configured, please try again later.', - ], - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '删除监听', - 'description' => '**DeleteListener**接口属于异步接口,即系统返回一个请求ID,但该监听尚未删除成功,系统后台的删除任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询监听的删除状态:'."\n" - .'- 当监听器处于**Deleting**状态时,表示监听正在删除中。'."\n" - .'- 当查询不到该监听时,表示监听删除成功。', - ], - 'ListListeners' => [ - 'summary' => '查询指定地域的监听。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '190', - 'abilityTreeNodes' => [ - 'FEATUREslbM7ALO6', - 'FEATUREslbK3ZR0L', - 'FEATUREslbN5IE4S', - ], - ], - 'parameters' => [ - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'title' => '用来标记当前开始读取的位置,置空表示从头开始。', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I4FmYAXGKPd****', - ], - ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'title' => '本次读取的最大数据记录数量,此参数为可选参数,取值1-100,用户传入为空时,默认为20。', - 'description' => '本次读取的最大数据记录数量,此参数为可选参数。取值范围:**1~100**。入参为空时,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '50', - ], - ], - [ - 'name' => 'ListenerIds', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '监听ID列表,N最大支持20', - 'description' => '监听实例ID列表。最多支持20个监听ID。', - 'type' => 'array', - 'items' => [ - 'description' => '监听实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lsn-o4u54y73wq7b******', - ], - 'required' => false, - 'maxItems' => 20, - 'minItems' => 1, - ], - ], - [ - 'name' => 'LoadBalancerIds', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '实例ID列表,N最大支持20', - 'description' => '应用型负载均衡实例ID。最多支持20个实例ID。', - 'type' => 'array', - 'items' => [ - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'alb-bd6oylbckp6k9x****', - ], - 'required' => false, - 'maxItems' => 21, - 'minItems' => 1, - ], - ], - [ - 'name' => 'ListenerProtocol', - 'in' => 'query', - 'schema' => [ - 'title' => '监听协议', - 'description' => '需要过滤的监听协议。取值:'."\n" - ."\n" - .'- **HTTP**:协议类型为HTTP。'."\n" - .'- **HTTPS**:协议类型为HTTPS。'."\n" - .'- **QUIC**:协议类型为QUIC。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP', - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - '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, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '应用型负载均衡监听信息。', - 'type' => 'object', - 'properties' => [ - 'Listeners' => [ - 'title' => '监听列表', - 'description' => '应用型负载均衡监听列表。', - 'type' => 'array', - 'items' => [ - 'description' => '应用型负载均衡监听结构。', - 'type' => 'object', - 'properties' => [ - 'DefaultActions' => [ - 'title' => '默认动作', - 'description' => '默认规则动作列表。', - 'type' => 'array', - 'items' => [ - 'description' => '默认规则动作结构。', + 'RuleConditions' => [ + 'title' => '转发规则条件', + 'description' => '转发规则条件列表。', + 'type' => 'array', + 'items' => [ + 'description' => '转发规则条件。', + 'type' => 'object', + 'properties' => [ + 'CookieConfig' => [ + 'title' => 'Cookie条件配置', + 'description' => 'Cookie条件配置。', 'type' => 'object', 'properties' => [ - 'ForwardGroupConfig' => [ - 'title' => '转发到服务器组', - 'description' => '转发规则动作对应的配置。动作类型为**ForwardGroup**时有效。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupTuples' => [ - 'title' => '服务器组列表', - 'description' => '转发目标服务器组。', - 'type' => 'array', - 'items' => [ - 'description' => '转发目标服务器组。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupId' => [ - 'title' => '服务器组ID', - 'description' => '转发到的目的服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-i5qt20******', - ], - ], - ], + 'Values' => [ + 'title' => 'Cookie键值对列表', + 'description' => 'Cookie键值对列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'Cookie键值对。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'Cookie条件键', 'description' => 'Cookie条件键。'."\n" + ."\n" + .'- 支持 1~100 个字符。'."\n" + ."\n" + .'- 支持可见字符和通配符星号(*)和半角问号(?),如果是字母必须为小写字母。'."\n" + ."\n" + .'- 不支持空格和`;#[]{}\\|<>&"`。', 'type' => 'string', 'required' => false, 'example' => 'key'], + 'Value' => ['title' => 'Cookie条件值', 'description' => 'Cookie条件值。'."\n" + ."\n" + .'- 支持 1~100 个字符。'."\n" + ."\n" + .'- 支持可见字符和通配符星号(*)和半角问号(?),如果是字母必须为小写字母。'."\n" + ."\n" + .'- 不支持空格和`;#[]{}\\|<>&"`。', 'type' => 'string', 'required' => false, 'example' => 'value'], ], + 'required' => false, ], - ], - 'Type' => [ - 'title' => '类型', - 'description' => '动作类型。取值:**ForwardGroup**,表示转发至多个服务器组。', - 'type' => 'string', - 'example' => 'ForwardGroup', + 'required' => false, + 'maxItems' => 50, ], ], + 'required' => false, ], - ], - 'GzipEnabled' => [ - 'title' => '是否开启Gzip压缩', - 'description' => '是否开启Gzip压缩,对特定文件类型进行压缩。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Http2Enabled' => [ - 'title' => '是否开启HTTP/2特性', - 'description' => '是否开启HTTP/2特性。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'IdleTimeout' => [ - 'title' => '连接空闲超时时间', - 'description' => '指定连接空闲超时时间。单位:秒。取值范围:**1~60**。'."\n" - ."\n" - .'如果在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到接收到下一次请求时重新建立新的连接。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'ListenerDescription' => [ - 'title' => '监听描述', - 'description' => '自定义监听名称。', - 'type' => 'string', - 'example' => 'HTTP_80', - ], - 'ListenerId' => [ - 'title' => '监听标识', - 'description' => '监听ID。', - 'type' => 'string', - 'example' => 'lsn-o4u34y73wq7b******', - ], - 'ListenerPort' => [ - 'title' => '监听端口', - 'description' => '应用型负载均衡实例前端使用的端口。取值:**1~65535**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'ListenerProtocol' => [ - 'title' => '监听协议', - 'description' => '监听协议。取值:'."\n" - ."\n" - .'- **HTTP**:协议类型为HTTP。'."\n" - .'- **HTTPS**:协议类型为HTTPS。'."\n" - .'- **QUIC**:协议类型为QUIC。', - 'type' => 'string', - 'example' => 'HTTP', - ], - 'ListenerStatus' => [ - 'title' => '监听状态', - 'description' => '当前监听的状态,取值:'."\n" - ."\n" - .'- **Provisioning**:创建中。'."\n" - ."\n" - .'- **Running**:运行中。'."\n" - ."\n" - .'- **Configuring**:配置中。'."\n" - ."\n" - .'- **Stopped**:已停止。', - 'type' => 'string', - 'example' => 'Running', - ], - 'LoadBalancerId' => [ - 'title' => '负载均衡标识', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'example' => 'alb-bd6oylbckp6k9x****', - ], - 'LogConfig' => [ - 'title' => '监听访问日志相关配置', - 'description' => '日志配置。', - 'type' => 'object', - 'properties' => [ - 'AccessLogRecordCustomizedHeadersEnabled' => [ - 'title' => '访问日志是否开启携带自定义Header', - 'description' => '访问日志是否开启携带自定义头。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'AccessLogTracingConfig' => [ - 'title' => '访问日志Xtrace相关的配置', - 'description' => '访问日志Xtrace相关的配置信息。', - 'type' => 'object', - 'properties' => [ - 'TracingEnabled' => [ - 'title' => 'Xtrace功能状态', - 'description' => '是否开启Xtrace功能。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 只有实例访问日志开关**AccessLogEnabled**打开时,才能设置此参数为**true**。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'TracingSample' => [ - 'title' => 'Xtrace功能状态', - 'description' => 'Xtrace的采样率。取值:**1~10000**。'."\n" - ."\n" - .'> **TracingEnabled**为**true**时,此值有效。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'TracingType' => [ - 'title' => 'xtrace的类型', - 'description' => 'Xtrace类型,合法取值为**Zipkin**。'."\n" - ."\n" - .'> **TracingEnabled**为**true**时,此值有效。', - 'type' => 'string', - 'example' => 'Zipkin', - ], - ], - ], - ], - ], - 'QuicConfig' => [ - 'title' => 'HTTPS启用QUIC时相关属性', - 'description' => '启用关联QUIC监听时的配置信息。', - 'type' => 'object', - 'properties' => [ - 'QuicListenerId' => [ - 'title' => '需要关联的QUIC监听ID,HTTPS监听时有效,QuicUpgradeEnabled为true时必选', - 'description' => '需要关联的QUIC监听ID。**QuicUpgradeEnabled**为**true**时必选。HTTPS监听时有效。'."\n" + 'HeaderConfig' => [ + 'title' => 'HTTP标头条件配置', + 'description' => 'HTTP标头条件配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'HTTP标头键', 'description' => 'HTTP标头键。'."\n" ."\n" - .'> 原始监听和关联的QUIC监听必须属于同一个ALB实例,并且此QUIC监听之前没有被关联过。', - 'type' => 'string', - 'example' => 'lsn-o4u54y73wq7b******', - ], - 'QuicUpgradeEnabled' => [ - 'title' => '是否开启quic升级,HTTPS监听时有效', - 'description' => '是否开启QUIC升级。取值:'."\n" + .'- 支持 1~40 个字符。'."\n" ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" + .'- 支持字母 a~z、数字、短划线(-)和下划线(_)。'."\n" ."\n" - .'> 仅HTTPS监听时有效。', - 'type' => 'boolean', - 'example' => 'true', + .'- 不支持 Cookie 和 Host。', 'type' => 'string', 'required' => false, 'example' => 'port'], + 'Values' => [ + 'title' => 'HTTP标头值列表', + 'description' => 'HTTP标头值列表。', + 'type' => 'array', + 'items' => ['description' => 'HTTP标头值。同一个转发规则条件内头字段值不能重复。'."\n" + .'- 支持1\\~128个字符。'."\n" + .'- 支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、星号(*)和半角问号(?)。不支持`"`。'."\n" + .'- 开头和结尾不能为空格。结尾不能为`\\`。', 'type' => 'string', 'required' => false, 'example' => '5006'], + 'required' => false, + 'maxItems' => 50, + ], ], + 'required' => false, ], - ], - 'RequestTimeout' => [ - 'title' => '请求超时时间', - 'description' => '指定请求超时时间。单位:秒。取值:**1~180**。'."\n" - ."\n" - .'如果在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回`HTTP 504`错误码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '34', - ], - 'SecurityPolicyId' => [ - 'title' => '安全策略', - 'description' => '安全策略。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'example' => 'tls_cipher_policy_1_1', - ], - 'XForwardedForConfig' => [ - 'title' => 'XForward字段相关的配置', - 'description' => '`XForward`头字段配置信息。', - 'type' => 'object', - 'properties' => [ - 'XForwardedForClientCertClientVerifyAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertClientVerifyEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头字段名称,只有当**XForwardedForClientCertClientVerifyEnabled**的值为**true**的时候,此值才会生效;否则该值不会生效。'."\n" - ."\n" - .'取值限制:长度为1~40字符。支持字母a-z、数字、短划线(-)和下划线(_)。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'example' => 'test_client-verify-alias_123456', - ], - 'XForwardedForClientCertClientVerifyEnabled' => [ - 'title' => '是否通过X-Forwarded-Clientcert-clientverify 头字段获取对访问负载均衡实例客户端证书的校验结果。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-clientverify`头字段获取对访问负载均衡实例客户端证书的校验结果。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForClientCertFingerprintAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertFingerprintEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头名称,只有当**XForwardedForClientCertFingerprintEnabled**的值为**true**时生效。'."\n" - ."\n" - .'取值限制:长度为1~40字符。支持字母a-z、数字、短划线(-)和下划线(_)。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'example' => 'test_finger-print-alias_123456', - ], - 'XForwardedForClientCertFingerprintEnabled' => [ - 'title' => '是否通过X-Forwarded-Clientcert-fingerprint 头字段获取访问负载均衡实例客户端证书的指纹取值,HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-fingerprint`头字段获取访问负载均衡实例客户端证书的指纹取值。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForClientCertIssuerDNAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertIssuerDNEnabled的值为‘On’的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头名称,只有当**XForwardedForClientCertIssuerDNEnabled**的值为**true**的时候,此值才会生效。'."\n" - ."\n" - .'取值限制:长度为1~40字符。支持字母a-z、数字、短划线(-)和下划线(_)。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'example' => 'test_issue-dn-alias_123456', - ], - 'XForwardedForClientCertIssuerDNEnabled' => [ - 'title' => '是否通过 X-Forwarded-Clientcert-issuerdn 头字段获取访问负载均衡实例客户端证书的发行者信息。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-issuerdn`头字段获取访问负载均衡实例客户端证书的发行者信息。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForClientCertSubjectDNAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertSubjectDNEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头名称,只有当**XForwardedForClientCertSubjectDNEnabled**的值为**true**时,此值才会生效。'."\n" - ."\n" - .'取值限制:长度为1~40字符。支持字母a-z、数字、短划线(-)和下划线(_)。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'example' => 'test_subject-dn-alias_123456', - ], - 'XForwardedForClientCertSubjectDNEnabled' => [ - 'title' => '是否通过X-Forwarded-Clientcert-subjectdn 头字段获取访问负载均衡实例客户端证书的所有者信息。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-subjectdn`头字段获取访问负载均衡实例客户端证书的所有者信息。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForClientSrcPortEnabled' => [ - 'title' => '是否通过X-Forwarded-Client-Port 头字段获取访问负载均衡实例客户端的端口。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Client-Port`头字段获取访问负载均衡实例客户端的端口。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP和HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForEnabled' => [ - 'title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP', - 'description' => '是否通过`X-Forwarded-For`头字段获取来访者真实IP。取值:'."\n" - .'- **true**(默认值):是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 1. 配置**true**,**XForwardedForProcessingMode**默认取值**append**,支持修改为**remove**。'."\n" - .'> 2. 配置**false**,将请求发送至后端服务之前保留`X-Forwarded-For`头字段,不做额外处理。'."\n" - .'> 3. HTTP和HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForProcessingMode' => [ - 'description' => '处理`X-Forwarded-For`头字段的模式。只有当**XForwardedForEnabled**为**true**时,此值才会生效。取值:'."\n" - .'- **append**(默认值):附加。'."\n" - .'- **remove**:删除。'."\n" - ."\n" - .'> 1. 配置**append**,将请求发送至后端服务之前把最后一跳IP加入`X-Forwarded-For`头字段。'."\n" - .'> 2. 配置**remove**,将请求发送至后端服务之前删除`X-Forwarded-For`标头,无论请求是否携带`X-Forwarded-For`头字段。'."\n" - .'> 3. HTTP和HTTPS监听支持此参数。', - 'type' => 'string', - 'example' => 'append', - ], - 'XForwardedForProtoEnabled' => [ - 'title' => '是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。', - 'description' => '是否通过`X-Forwarded-Proto`头字段获取负载均衡实例的监听协议。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'XForwardedForSLBIdEnabled' => [ - 'title' => '是否通过SLB-ID头字段获取负载均衡实例ID。', - 'description' => '是否通过`SLB-ID`头字段获取负载均衡实例ID。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', + 'HostConfig' => [ + 'title' => '主机名条件配置', + 'description' => '主机名条件配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '主机名列表', + 'description' => '主机名列表。', + 'type' => 'array', + 'items' => ['description' => '主机名。一个转发规则条件中只能有一个主机名,并且取值不能重复。'."\n" + ."\n" + .'- 主机名长度为3\\~128个字符,支持小写字母a~z、数字0~9、短划线(-)、半角句号(.)、星号(*)、等号(=)、波浪线(~)、下划线(_)、加号(+)、反斜线(\\)、脱字号(^)、感叹号(!)、美元符号($)、and(&)、竖线(|)、半角圆括号(())、方括号(\\[\\])和半角问号(?)。'."\n" + ."\n" + .'- 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + ."\n" + .'- 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-),最左侧`domainlable`允许是星号(*)。'."\n" + ."\n" + .'- 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。'."\n" + ."\n" + .'- 对于<精确匹配和通配符>的输入框,首字符不可以为波浪线(~)。'."\n" + .'- 对于正则的输入框(<正则匹配(不区分大小写)>,首字符不可以为星号(*)。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com'], + 'required' => false, + 'maxItems' => 50, + ], ], - 'XForwardedForSLBPortEnabled' => [ - 'title' => '是否通过X-Forwarded-Port 头字段获取负载均衡实例的监听端口。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Port`头字段获取负载均衡实例的监听端口。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'example' => 'true', + 'required' => false, + ], + 'MethodConfig' => [ + 'title' => 'HTTP请求方法条件配置', + 'description' => 'HTTP请求方法条件配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => 'HTTP请求方法列表', + 'description' => 'HTTP请求方法列表。', + 'type' => 'array', + 'items' => ['description' => '请求方法。'."\n" + ."\n" + .'取值:**HEAD**、**GET**、**POST**、**OPTIONS**、**PUT**、**PATCH**或**DELETE**。', 'type' => 'string', 'required' => false, 'example' => 'PUT'], + 'required' => false, + 'maxItems' => 10, + ], ], - 'XForwardedForClientSourceIpsEnabled' => [ - 'description' => '是否允许ALB从X-Forwarded-For头字段中查找真实客户端IP。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP、HTTPS监听支持此参数。', - 'type' => 'boolean', - 'example' => 'false', + 'required' => false, + ], + 'PathConfig' => [ + 'title' => '路径条件配置', + 'description' => '路径条件配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '路径条件列表', + 'description' => '路径条件列表。', + 'type' => 'array', + 'items' => ['description' => '转发路径。取值范围:'."\n" + .'- 长度为1\\~128个字符,大小写敏感,支持星号(*)和半角问号(?)作为通配符使用。'."\n" + ."\n" + .'- 非正则表达式的URL ,必须以正斜线(/)开头,支持字母、数字和特殊字符`$-_.+/&~@:\'*?`,不支持`“%#;!()[]^,”\\"`,支持星号(*)和半角问号(?)作为通配符使用。'."\n" + ."\n" + .'- 正则表达式的URL ,必须以~开头,支持大小写字母、数字和特殊字符`.-_/=?~^*$:()[]+|`。', 'type' => 'string', 'required' => false, 'example' => '/test'], + 'required' => false, + 'maxItems' => 50, + ], ], - 'XForwardedForClientSourceIpsTrusted' => [ - 'description' => '指定可信的代理IP。'."\n" - ."\n" - .'应用型负载均衡ALB会从后往前遍历`X-Forwarded-For`,选取第一个不在可信IP列表中的IP作为真实的客户端IP,该IP会被用于源IP限速。', - 'type' => 'string', - 'example' => '10.1.1.0/24', + 'required' => false, + ], + 'QueryStringConfig' => [ + 'title' => '查询字符串条件配置', + 'description' => '查询字符串条件配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '查询字符串条件键值对列表', + 'description' => '查询字符串条件键值对列表。', + 'type' => 'array', + 'items' => [ + 'description' => '查询字符串条件键值对。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '查询字符串条件键', 'description' => '查询字符串条件键。'."\n" + .'- 长度为1\\~100个字符。'."\n" + .'- 支持可见字符、通配符星号(*)和半角问号(?),如果是字母则必须为小写字母。不支持空格和`#[]{}\\|<>&"`。', 'type' => 'string', 'required' => false, 'example' => 'key'], + 'Value' => ['title' => '查询字符串条件值', 'description' => '查询字符串条件值。'."\n" + ."\n" + .'- 长度为1\\~128个字符。'."\n" + .'- 支持小写字母、可见字符和通配符星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&"`。', 'type' => 'string', 'required' => false, 'example' => 'value'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 50, + ], ], - 'XForwardedForHostEnabled' => [ - 'description' => '是否开启通过`X-Forwarded-Host`头字段获取访问负载均衡实例客户端的域名。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'example' => 'false', + 'required' => false, + ], + 'ResponseHeaderConfig' => [ + 'title' => '返回HTTP标头', + 'description' => '响应HTTP标头配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '返回HTTP标头键', 'description' => '响应HTTP标头键。'."\n" + .'- 长度为1~40个字符。'."\n" + .'- 支持字母a~z、数字、短划线(-)和下划线(_)。'."\n" + .'- 不支持Cookie和Host。', 'type' => 'string', 'required' => false, 'example' => 'key'], + 'Values' => [ + 'title' => '返回HTTP标头值', + 'description' => '响应HTTP标头值列表。', + 'type' => 'array', + 'items' => ['description' => '响应HTTP标头值。'."\n" + .'- 长度为1~128个字符。'."\n" + .'- 支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、小写字母以及通配符星号(*)和半角问号(?)。不支持`"`。'."\n" + .'- 开头和结尾不能为空格。结尾不能为`\\`。', 'type' => 'string', 'required' => false, 'example' => 'value'], + 'required' => false, + ], ], + 'required' => false, ], - ], - 'Tags' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签结构。', + 'ResponseStatusCodeConfig' => [ + 'title' => '返回状态码条件', + 'description' => '响应状态码配置。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', - 'type' => 'string', - 'example' => 'env', + 'Values' => [ + 'title' => '返回状态码条件', + 'description' => '响应状态码列表。', + 'type' => 'array', + 'items' => ['description' => '响应状态码。', 'type' => 'string', 'required' => false, 'example' => '200'], + 'required' => false, ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', - 'type' => 'string', - 'example' => 'product', + ], + 'required' => false, + ], + 'Type' => [ + 'title' => '条件类型', + 'description' => '转发条件类型。取值:'."\n" + ."\n" + .'- Host:主机。'."\n" + ."\n" + .'- Path:路径。'."\n" + ."\n" + .'- Header:HTTP头字段。'."\n" + ."\n" + .'- QueryString:查询字符串。'."\n" + ."\n" + .'- Method:请求方法。'."\n" + ."\n" + .'- Cookie:Cookie。'."\n" + ."\n" + .'- SourceIp:源IP。'."\n" + ."\n" + .'- ResponseHeader:响应HTTP头字段。'."\n" + ."\n" + .'- ResponseStatusCode:响应状态码。', + 'type' => 'string', + 'required' => true, + 'enumValueTitles' => ['Cookie' => 'Cookie', 'Path' => 'Path', 'ResponseHeader' => 'ResponseHeader', 'SourceIp' => 'SourceIp', 'Header' => 'Header', 'ResponseStatusCode' => 'ResponseStatusCode', 'QueryString' => 'QueryString', 'Host' => 'Host', 'Method' => 'Method'], + 'example' => 'SourceIp', + ], + 'SourceIpConfig' => [ + 'title' => '基于源IP业务流量匹配', + 'description' => '基于源IP业务流量匹配。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '基于源IP业务流量匹配', + 'description' => '基于源IP业务流量匹配。', + 'type' => 'array', + 'items' => ['description' => '添加一个或多个IP地址或者IP地址段。'."\n" + ."\n" + .'一条转发规则中最多支持添加5条源IP。', 'type' => 'string', 'required' => false, 'example' => '192.168.XX.XX/32'], + 'required' => false, ], ], + 'required' => false, ], ], + 'required' => true, ], - ], - ], - 'MaxResults' => [ - 'title' => '本次请求所返回的最大记录条数。', - 'description' => '本次请求所返回的最大记录条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'NextToken' => [ - 'title' => '用来表示当前调用返回读取到的位置,空代表数据已经读取完毕。', - 'description' => '当前调用返回读取到的位置,设置为空代表数据已经读取完毕。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], - 'TotalCount' => [ - 'title' => '本次请求条件下的数据总量。', - 'description' => '本次请求条件下的数据总量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', + 'required' => true, + 'maxItems' => 100, + 'minItems' => 1, + ], + 'RuleName' => ['title' => '转发规则名称', 'description' => '转发规则名称。', 'type' => 'string', 'required' => true, 'example' => 'rule-443-64'], + 'Direction' => [ + 'title' => '转发规则方向', + 'description' => '转发规则方向。', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => ['Response' => 'Response', 'Request' => 'Request'], + 'example' => 'Request', + ], + 'Tag' => [ + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', 'type' => 'string', 'required' => false, 'example' => 'test_tag_key'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', 'type' => 'string', 'required' => false, 'example' => 'test_tag_value'], + ], + 'required' => false, + ], + 'required' => false, + ], ], + 'required' => true, ], - ], - ], - ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Listeners\\": [\\n {\\n \\"DefaultActions\\": [\\n {\\n \\"ForwardGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-i5qt20******\\"\\n }\\n ]\\n },\\n \\"Type\\": \\"ForwardGroup\\"\\n }\\n ],\\n \\"GzipEnabled\\": false,\\n \\"Http2Enabled\\": false,\\n \\"IdleTimeout\\": 3,\\n \\"ListenerDescription\\": \\"HTTP_80\\",\\n \\"ListenerId\\": \\"lsn-o4u34y73wq7b******\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTP\\",\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"LoadBalancerId\\": \\"alb-bd6oylbckp6k9x****\\",\\n \\"LogConfig\\": {\\n \\"AccessLogRecordCustomizedHeadersEnabled\\": true,\\n \\"AccessLogTracingConfig\\": {\\n \\"TracingEnabled\\": true,\\n \\"TracingSample\\": 100,\\n \\"TracingType\\": \\"Zipkin\\"\\n }\\n },\\n \\"QuicConfig\\": {\\n \\"QuicListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"QuicUpgradeEnabled\\": true\\n },\\n \\"RequestTimeout\\": 34,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_1\\",\\n \\"XForwardedForConfig\\": {\\n \\"XForwardedForClientCertClientVerifyAlias\\": \\"test_client-verify-alias_123456\\",\\n \\"XForwardedForClientCertClientVerifyEnabled\\": true,\\n \\"XForwardedForClientCertFingerprintAlias\\": \\"test_finger-print-alias_123456\\",\\n \\"XForwardedForClientCertFingerprintEnabled\\": true,\\n \\"XForwardedForClientCertIssuerDNAlias\\": \\"test_issue-dn-alias_123456\\",\\n \\"XForwardedForClientCertIssuerDNEnabled\\": true,\\n \\"XForwardedForClientCertSubjectDNAlias\\": \\"test_subject-dn-alias_123456\\",\\n \\"XForwardedForClientCertSubjectDNEnabled\\": true,\\n \\"XForwardedForClientSrcPortEnabled\\": true,\\n \\"XForwardedForEnabled\\": true,\\n \\"XForwardedForProcessingMode\\": \\"append\\",\\n \\"XForwardedForProtoEnabled\\": true,\\n \\"XForwardedForSLBIdEnabled\\": true,\\n \\"XForwardedForSLBPortEnabled\\": true,\\n \\"XForwardedForClientSourceIpsEnabled\\": false,\\n \\"XForwardedForClientSourceIpsTrusted\\": \\"10.1.1.0/24\\",\\n \\"XForwardedForHostEnabled\\": false\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n \\n \\n rsp-cige6j****\\n \\n \\n ForwardGroup\\n \\n false\\n false\\n 3\\n HTTP_80\\n lsr-bp1bpn0kn908w4nbw****\\n 80\\n HTTP\\n Running\\n alb-bd6oylbckp6k9x****\\n \\n true\\n \\n true\\n 100\\n Zipkin\\n \\n \\n \\n lsr-bp1bpn908w4nbw****\\n true\\n \\n 34\\n tls_cipher_policy_1_1\\n \\n test_client-verify-alias_123456\\n true\\n test_finger-print-alias_123456\\n true\\n test_issue-dn-alias_123456\\n true\\n test_subject-dn-alias_123456\\n true\\n true\\n true\\n true\\n true\\n true\\n false\\n 10.1.1.0/24\\n \\n \\n 50\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 1000\\n","errorExample":""}]', - 'title' => '查询监听', - ], - 'StartListener' => [ - 'summary' => '启动指定的监听。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'ListenerId', - 'in' => 'query', - 'schema' => [ - 'title' => '监听id', - 'description' => '应用型负载均衡实例监听的ID。', - 'type' => 'string', 'required' => true, - 'example' => 'lsn-o4u54y73wq7b******', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会启动监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码**DryRunOperation**。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'maxItems' => 100, + 'minItems' => 1, ], ], ], @@ -5955,20 +3431,25 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '启动监听。', + 'description' => '创建多条转发规则。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF******', + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'], + 'RuleIds' => [ + 'title' => '转发规则标识列表', + 'description' => '转发规则列表。', + 'type' => 'array', + 'items' => [ + 'description' => '转发规则列表。', + 'type' => 'object', + 'properties' => [ + 'RuleId' => ['title' => '转发规则标识', 'description' => '转发规则ID。', 'type' => 'string', 'example' => 'rule-a3x3pg1yohq3lq****'], + 'Priority' => ['title' => '转发规则优先级', 'description' => '转发规则优先级,取值范围:**1~10000**。值越小表示优先级越高。'."\n" + ."\n" + .'> 同一个监听内规则优先级必须唯一。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + ], + ], ], ], ], @@ -5976,46 +3457,61 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.Listener', - 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', - ], + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'OperationDenied.GRPCServerGroup', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是存在绑定本GRPC服务器组的监听没有启用HTTP2.0。'], + ['errorCode' => 'Conflict.Priority', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => '优先级冲突,已经存在相同配置'], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerRulesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '转发规则数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器组可被关联数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '后端服务器数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器添加到组已超额度限制。'], + ['errorCode' => 'QuotaExceeded.RuleWildcardsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'."\n"], + ['errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '转发规则条件数已超额度限制。'."\n"], + ['errorCode' => 'QuotaExceeded.RuleActionsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'."\n"], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'Mismatch.Protocol', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'OperationDenied.RewriteMissingForwardGroup', 'errorMessage' => 'The operation is not allowed because of RewriteMissingForwardGroup.', 'description' => '操作被拒绝,原因是RewriteMissingForwardGroup。'], + ['errorCode' => 'OperationDenied.MirrorActionSupportHttpGroupOnly', 'errorMessage' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.', 'description' => '操作被拒绝,原因是流量镜像动作只支持HTTP类型的服务器组。'], + ['errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', 'description' => '操作被禁止,原因:必须是相同的协议'], ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Alb::2020-06-16::ListAsynJobs', 'callbackInterval' => 1000, 'maxCallbackTimes' => 60], + 'title' => '批量创建转发规则', + 'description' => '调用该接口创建转发规则时,请注意以下事项:'."\n" + .'- 配置**Redirect**转发动作时,除了**HttpCode**参数外,其余参数不能都配置默认值。'."\n" + .'- 同一个转发规则配置多个转发动作时,**Rewrite**转发动作必须配置**ForwardGroup**的动作类型。'."\n" + .'- **CreateRules**接口属于异步接口,即系统返回一个实例ID,但该多条转发规则尚未创建成功,系统后台的创建任务仍在进行。您可以调用[ListRules](~~214379~~)查询多条转发规则的创建状态:'."\n" + .' - 当多条转发规则处于**Provisioning**状态时,表示多条转发规则正在创建中。'."\n" + .' - 当多条转发规则处于**Available**状态时,表示多条转发规则创建成功。'."\n" + .'- 一条转发规则最多支持添加的条件数(**RuleConditions**)和动作数(**RuleActions**)如下:'."\n" + .' - 条件数:基础版5条,标准版10条,WAF增强版10条。'."\n" + .' - 动作数:基础版3条,标准版5条,WAF增强版5条。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '启动监听', - 'description' => '**StartListener**接口属于异步接口,即系统返回一个请求ID,但该监听尚未启动成功,系统后台的启动任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询监听的启动状态:'."\n" - .'- 当监听处于**Configuring**状态时,表示监听正在启动中。'."\n" - .'- 当监听处于**Running**状态时,表示监听启动成功。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"RuleIds\\": [\\n {\\n \\"RuleId\\": \\"rule-a3x3pg1yohq3lq****\\",\\n \\"Priority\\": 10\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n \\n rule-a3x3pg1yohq3lq****\\n 10\\n \\n","errorExample":""}]', ], - 'StopListener' => [ - 'summary' => '停止指定的监听。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateSecurityPolicy' => [ + 'summary' => '在指定地域创建自定义安全策略。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6024,48 +3520,123 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', + 'abilityTreeCode' => '172', + 'abilityTreeNodes' => ['FEATUREslbAYSA83'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'ListenerId', + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['title' => '幂等标识', 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP_2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'TLSVersions', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '监听id', - 'description' => '应用型负载均衡实例的监听ID。', - 'type' => 'string', + 'title' => 'tls版本', + 'description' => '支持的TLS协议版本列表', + 'type' => 'array', + 'items' => ['description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。', 'type' => 'string', 'required' => true, 'example' => 'TLSv1.0'], 'required' => true, - 'example' => 'lsn-o4u54y73wq7b******', ], ], [ - 'name' => 'ClientToken', + 'name' => 'ResourceGroupId', 'in' => 'query', + 'schema' => ['title' => '资源组id', 'description' => '资源组ID', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], + ], + [ + 'name' => 'SecurityPolicyName', + 'in' => 'query', + 'schema' => ['title' => '安全策略名称', 'description' => '安全策略名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格。', 'type' => 'string', 'required' => true, 'example' => 'test-secrity'], + ], + [ + 'name' => 'Ciphers', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', + 'title' => '加密套件', + 'description' => '支持的加密套件列表', + 'type' => 'array', + 'items' => ['description' => '支持的加密套件,具体依赖**TLSVersions**的取值。'."\n" + ."\n" + .'Cipher只要被任何一个传入的**TLSVersions**支持即可。'."\n" + ."\n" + .'> 选择了TLSv1.3,那么Cipher列表必须包含TLSv1.3支持的Cipher。'."\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-RSA-CHACHA20-POLY1305'."\n" + .' - ECDHE-ECDSA-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' => true, 'example' => ' ECDHE-ECDSA-AES128-SHA'], + 'required' => true, + 'minItems' => 1, ], ], [ - 'name' => 'DryRun', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会停止监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', - 'type' => 'boolean', + '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, - 'example' => 'true', ], ], ], @@ -6073,67 +3644,41 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '停止监听。', + 'description' => '返回数据结构', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'], + 'SecurityPolicyId' => ['title' => '安全策略id', 'description' => '安全策略ID', 'type' => 'string', 'example' => 'sp-9cdjz6o8ha70******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.Listener', - 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', - ], + ['errorCode' => 'QuotaExceeded.SecurityPoliciesNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\",\\n \\"SecurityPolicyId\\": \\"sp-9cdjz6o8ha70******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n scp-bp1bpn0kn9****\\n","errorExample":""}]', + 'title' => '创建自定义安全策略', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '停止监听', - 'description' => '**StopListener**接口属于异步接口,即系统返回一个请求ID,但该监听尚未停止成功,系统后台的停止任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询监听的停止状态:'."\n" - .'- 当监听处于**Configuring**状态时,表示监听正在停止中。'."\n" - .'- 当监听处于**Stopped**状态时,表示监听停止运行成功。', ], - 'UpdateListenerAttribute' => [ - 'summary' => '更新监听的配置,如名称、默认动作等。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateServerGroup' => [ + 'summary' => '在指定地域创建服务器组。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6142,632 +3687,415 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '187', - 'abilityTreeNodes' => [ - 'FEATUREslbM7ALO6', - 'FEATUREslbK3ZR0L', - 'FEATUREslbN5IE4S', - ], + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '163', + 'abilityTreeNodes' => ['FEATUREslbULKWF1'], ], 'parameters' => [ [ - 'name' => 'ListenerId', + 'name' => 'ServerGroupName', 'in' => 'query', - 'schema' => [ - 'title' => '监听标识', - 'description' => '应用型负载均衡实例监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-o4u54y73wq7b******', - ], + 'schema' => ['title' => '服务器组名称', 'description' => '服务器组名称。长度为2~128个字符,必须以大小写字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格。', 'type' => 'string', 'required' => true, 'example' => 'test'], ], [ - 'name' => 'ClientToken', + 'name' => 'ServerGroupType', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', - ], + 'schema' => ['title' => '服务器组类型', 'description' => '服务器组类型。取值:'."\n" + ."\n" + .'- **Instance**(默认值):服务器类型,该类型服务器组支持添加**Ecs**、**Eni**、**Eci**实例。'."\n" + ."\n" + .'- **Ip**:IP地址类型,该类型服务器组支持添加IP地址类型的后端服务器。'."\n" + ."\n" + .'- **Fc**:函数计算类型,该类型支持添加函数计算类型的后端服务器。', 'type' => 'string', 'required' => false, 'example' => 'Instance'], ], [ - 'name' => 'DryRun', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求。取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会更新监听的配置。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => 'VpcId', 'description' => 'VPC实例ID。只有该VPC下的服务器可以加入到该服务器组。'."\n" + ."\n" + .'> **ServerGroupType**取值为**Instance**或**Ip**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp15zdkdt37pq72zv****'], ], [ - 'name' => 'ListenerDescription', + 'name' => 'Scheduler', 'in' => 'query', - 'schema' => [ - 'title' => '监听描述', - 'description' => '自定义监听名称。'."\n" - ."\n" - .'长度为2\\~256个字符,可包含英文字母、数字、中文、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP_80', - ], + 'schema' => ['title' => '调度策略', 'description' => '调度算法。取值:'."\n" + ."\n" + .'- **Wrr**(默认值):加权轮询,权重值越高的后端服务器,被轮询到的概率也越高。'."\n" + ."\n" + .'- **Wlc**:加权最小连接数,除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的概率也越高。'."\n" + ."\n" + .'- **Sch**:一致性哈希,相同哈希因子计算结果的请求将会调度到相同的后端服务器。不配置**UchConfig**参数时,默认哈希因子为源IP,相同源IP地址的请求会分发到同一台后端服务器;配置了**UchConfig**参数时,哈希因子为URL参数,相同URL参数的请求会分发到同一台后端服务器。'."\n" + ."\n\n" + .'> **ServerGroupType**取值为**Instance**或**Ip**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'Wrr'], ], [ - 'name' => 'RequestTimeout', + 'name' => 'Protocol', 'in' => 'query', - 'schema' => [ - 'title' => '请求超时时间', - 'description' => '指定请求超时时间。单位:秒。取值范围:**1~180**。'."\n" - ."\n" - .'如果在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回`HTTP 504`错误码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '3', - ], + 'schema' => ['title' => '后端协议类型', 'description' => '后端协议。取值:'."\n" + ."\n" + .'- **HTTP**(默认值):支持关联HTTPS、HTTP和QUIC监听。'."\n" + ."\n" + .'- **HTTPS**:支持关联HTTPS监听。'."\n" + ."\n" + .'- **gRPC**:关联HTTPS和QUIC监听。'."\n" + ."\n" + .'> **ServerGroupType**取值为**Fc**时,无需配置后端协议。', 'type' => 'string', 'required' => false, 'example' => 'HTTP'], ], [ - 'name' => 'IdleTimeout', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'title' => '连接空闲超时时间', - 'description' => '指定连接空闲超时时间。单位:秒。取值范围:**1~60**。'."\n" - ."\n" - .'如果在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到下一次请求来临时重新建立新的连接。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '15', - ], + 'schema' => ['title' => '资源组id', 'description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rsop****'], ], [ - 'name' => 'GzipEnabled', + 'name' => 'HealthCheckConfig', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '是否开启Gzip压缩', - 'description' => '是否开启Gzip压缩,对特定文件类型进行压缩。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'title' => '健康检查配置', + 'description' => '健康检查相关配置。', + 'type' => 'object', + 'properties' => [ + 'HealthCheckConnectPort' => ['title' => '健康检查端口', 'description' => '健康检查的后端服务器的端口。'."\n" + ."\n" + .'取值范围: **0**~**65535**。'."\n" + ."\n" + .'默认值:**0**,表示使用后端服务器的端口进行健康检查。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '65535', 'minimum' => '0', 'example' => '80', 'default' => '0'], + 'HealthCheckEnabled' => ['title' => '是否启用健康检查', 'description' => '是否开启健康检查,取值:'."\n" + ."\n" + .'- **true**:开启'."\n" + ."\n" + .'- **false**:不开启'."\n" + ."\n" + .'> **ServerGroupType**取值为**Instance**或**Ip**时,默认开启健康检查。**ServerGroupType**取值为**Fc**时,默认不开启健康检查。', 'type' => 'boolean', 'required' => true, 'example' => 'true'], + 'HealthCheckHost' => ['title' => '健康检查域名', 'description' => '健康检查域名。'."\n" + ."\n" + .'- **使用后端服务器的内网IP**(默认):使用后端服务器的内网IP地址作为健康检查的域名。'."\n" + ."\n" + .'- **指定特定域名**:输入一个域名。'."\n" + ."\n" + .' - 长度限制为1~80个字符。'."\n" + ."\n" + .' - 可包含小写字母、数字、短划线(-)和半角句号(.)。'."\n" + ."\n" + .' - 至少包含一个半角句号(.),半角句号(.)不能出现在开头或结尾。'."\n" + ."\n" + .' - 最右侧的域标签,只能包含字母,不能包含数字或短划线(-)。'."\n" + ."\n" + .' - 短划线(-)不能出现在开头或结尾。'."\n" + ."\n" + .'> 只有**HealthCheckProtocol**设置为**HTTP**、**HTTPS**或**gRPC**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com'], + 'HealthCheckCodes' => [ + 'title' => '健康检查正常的状态码', + 'description' => '健康检查正常的状态码列表。', + 'type' => 'array', + 'items' => ['title' => '健康检查正常的状态码', 'description' => '健康检查正常的状态码。'."\n" + ."\n\n" + .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http\\_2xx**(默认值)、 **http\\_3xx**、**http\\_4xx**和**http\\_5xx**。多个状态码用半角逗号(,)分隔。'."\n" + ."\n" + .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**,默认值:**0**。支持范围输入,最多支持20个范围值。多个范围值使用半角逗号(,)隔开。'."\n" + ."\n" + .'> **HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'http_2xx'], + 'required' => false, + ], + 'HealthCheckHttpVersion' => ['title' => '健康检查HTTP协议版本', 'description' => '健康检查HTTP协议版本,取值:**HTTP1.0**或**HTTP1.1**(默认值)。'."\n" + ."\n" + .'> 只有**HealthCheckProtocol**设置为**HTTP**或**HTTPS**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'HTTP1.1', 'default' => 'HTTP1.1'], + 'HealthCheckInterval' => ['title' => '健康检查间隔', 'description' => '健康检查的时间间隔。单位:秒。'."\n" + ."\n" + .'取值范围:**1**~**50**。'."\n" + ."\n" + .'默认值:**2**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '2', 'default' => '2'], + 'HealthCheckMethod' => ['title' => '健康检查方法', 'description' => '健康检查方法,取值:'."\n" + ."\n" + .'- **GET**:如果响应报文长度超过8K,会被截断,但不会影响健康检查结果的判定。'."\n" + ."\n" + .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" + ."\n" + .'- **HEAD**(默认值):HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" + ."\n" + .'> 只有**HealthCheckProtocol**设置为**HTTP**或**HTTPS**或**gRPC**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'HEAD'], + 'HealthCheckPath' => ['title' => '健康检查Path', 'description' => '健康检查的转发规则路径。'."\n" + ."\n" + .'长度为1~80个字符,只能使用字母、数字、字符`-/.%?#&=`以及扩展字符`_;~!()*[]@$^:\',+`。 URL必须以正斜线(/)开头。'."\n" + ."\n" + .'> 只有**HealthCheckProtocol**设置为**HTTP**或**HTTPS**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => '/test/index.html'], + 'HealthCheckProtocol' => ['title' => '健康检查协议类型', 'description' => '健康检查协议,取值:'."\n" + ."\n" + .'- **HTTP**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" + ."\n" + .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" + ."\n" + .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" + ."\n" + .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', 'type' => 'string', 'required' => false, 'example' => 'HTTP', 'default' => 'HTTP'], + 'HealthCheckTimeout' => ['title' => '健康检查超时时间', 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端服务器在指定的时间内没有正确响应,则判定为健康检查失败。单位:秒。'."\n" + ."\n" + .'取值范围:**1**~**300**。'."\n" + ."\n" + .'默认值:**5**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '300', 'minimum' => '1', 'example' => '5', 'default' => '5'], + 'HealthyThreshold' => ['title' => '健康检查成功判定阈值', 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n" + ."\n" + .'取值范围:**2**~**10**。'."\n" + ."\n" + .'默认值:**3**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10', 'minimum' => '2', 'example' => '3', 'default' => '3'], + 'UnhealthyThreshold' => ['title' => '健康检查不成功判定阈值', 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n" + ."\n" + .'取值范围:**2**~**10**。'."\n" + ."\n" + .'默认值:**3**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10', 'minimum' => '2', 'example' => '3', 'default' => '3'], + ], + 'required' => true, + 'example' => 'rg-123', + ], ], [ - 'name' => 'Http2Enabled', + 'name' => 'StickySessionConfig', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '是否开启HTTP/2特性', - 'description' => '是否开启HTTP/2特性。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" + 'title' => '会话保持配置', + 'description' => '会话保持配置结构体。'."\n" ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', + .'> **ServerGroupType**取值为**Instance**或**Ip**时,该参数生效。', + 'type' => 'object', + 'properties' => [ + 'Cookie' => ['title' => '服务器上配置的Cookie', 'description' => '服务器上配置的Cookie。'."\n" + ."\n" + .'长度为1~200个字符,只能包含ASCII英文字母和数字字符,不能包含半角逗号(,)、半角分号(;)或空格,也不能以美元符号($)开头。'."\n" + ."\n" + .'> 当**StickySessionEnabled**为**true**且**StickySessionType**为**server**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'B490B6EBF6F3CD402E515D22BCDA****'], + 'CookieTimeout' => ['title' => '服务器上配置的Cookie', 'description' => 'Cookie超时时间。单位:秒。'."\n" + ."\n" + .'取值范围:**1**~**86400**。'."\n" + ."\n" + .'默认值:**1000**。'."\n" + ."\n" + .'> 当**StickySessionEnabled**为**true**且**StickySessionType**为**Insert**时,该参数生效。'."\n" + ."\n\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '86400', 'minimum' => '1', 'example' => '1000', 'default' => '1000'], + 'StickySessionEnabled' => ['title' => '是否启用会话保持', 'description' => '是否启用会话保持,取值:'."\n" + ."\n" + .'- **true**:开启'."\n" + .'- **false**:不开启。'."\n" + ."\n" + .'> **ServerGroupType**取值为**Instance**或**Ip**时,该参数生效。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'StickySessionType' => ['title' => '会话保持类型', 'description' => 'Cookie的处理方式。取值:'."\n" + ."\n" + .'- **Insert**(默认值):植入Cookie。'."\n" + .'客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP或HTTPS响应报文中插入SERVERID),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。'."\n" + ."\n" + .'- **Server**:重写Cookie。'."\n" + .'负载均衡发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器。'."\n" + ."\n" + .'> 当**StickySessionEnabled**的值为**true**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'Insert', 'default' => 'Insert'], + ], 'required' => false, - 'example' => 'true', ], ], [ - 'name' => 'SecurityPolicyId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '安全策略', - 'description' => '安全策略,支持系统安全策略和自定义安全策略。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'tls_cipher_policy_1_0', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CAF0E-5718-45B5-9D4D-70B******'], ], [ - 'name' => 'CaEnabled', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '是否开启双向认证', - 'description' => '是否开启双向认证。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建服务器组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'XForwardedForConfig', + 'name' => 'Ipv6Enabled', + 'in' => 'query', + 'schema' => ['title' => '是否开启Ipv6', 'description' => '是否开启Ipv6', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'UpstreamKeepaliveEnabled', + 'in' => 'query', + 'schema' => ['title' => '是否开启后端长链接', 'description' => '是否开启后端长链接。'."\n" + ."\n" + .'- **true**:开启'."\n" + .'- **false**(默认值):不开启。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'ServiceName', + 'in' => 'query', + 'schema' => ['title' => '服务器名称', 'description' => '仅适用于ALB Ingress场景,表示服务器组对应的`K8s Service`名称。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'UchConfig', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => 'XForward字段相关的配置', - 'description' => 'XForwardedFor相关属性配置。', + 'title' => 'url一致性hash参数配置', + 'description' => 'url一致性hash参数配置。', 'type' => 'object', 'properties' => [ - 'XForwardedForClientCertClientVerifyAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertClientVerifyEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头字段名称,只有当**XForwardedForClientCertClientVerifyEnabled**的值为**true**时,此值才会生效。'."\n" - ."\n" - .'取值限制:长度1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_client-verify-alias_123456', - ], - 'XForwardedForClientCertClientVerifyEnabled' => [ - 'title' => '是否通过X-Forwarded-Clientcert-clientverify 头字段获取对访问负载均衡实例客户端证书的校验结果。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-clientverify`头字段获取对访问负载均衡实例客户端证书的校验结果。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForClientCertFingerprintAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertFingerprintEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头字段名称,只有当**XForwardedForClientCertFingerprintEnabled**的值为**true**时生效。'."\n" - ."\n" - .'取值限制:长度为1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_finger-print-alias_123456', - ], - 'XForwardedForClientCertFingerprintEnabled' => [ - 'title' => '是否通过X-Forwarded-Clientcert-fingerprint 头字段获取访问负载均衡实例客户端证书的指纹取值,HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-fingerprint`头字段获取访问负载均衡实例客户端证书的指纹取值。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForClientCertIssuerDNAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertIssuerDNEnabled的值为‘On’的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头字段名称,只有当**XForwardedForClientCertIssuerDNEnabled**的值为**true**时才生效。'."\n" - ."\n" - .'取值限制:长度为1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_issue-dn-alias_123456', - ], - 'XForwardedForClientCertIssuerDNEnabled' => [ - 'title' => '是否通过 X-Forwarded-Clientcert-issuerdn 头字段获取访问负载均衡实例客户端证书的发行者信息。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-issuerdn`头字段获取访问负载均衡实例客户端证书的发行者信息。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForClientCertSubjectDNAlias' => [ - 'title' => '自定义HEADER头名称,只有当XForwardedForClientCertSubjectDNEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', - 'description' => '自定义头字段名称,只有当**XForwardedForClientCertSubjectDNEnabled**的值为**true**时才生效。'."\n" - ."\n" - .'取值限制:长度为1\\~40字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_subject-dn-alias_123456', - ], - 'XForwardedForClientCertSubjectDNEnabled' => [ - 'title' => '是否通过X-Forwarded-Clientcert-subjectdn 头字段获取访问负载均衡实例客户端证书的所有者信息。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Clientcert-subjectdn`头字段获取访问负载均衡实例客户端证书的所有者信息。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForClientSrcPortEnabled' => [ - 'title' => '是否通过X-Forwarded-Client-Port 头字段获取访问负载均衡实例客户端的端口。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Client-srcport`头字段获取访问负载均衡实例客户端的端口。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP和HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForEnabled' => [ - 'title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP', - 'description' => '是否通过`X-Forwarded-For`头字段获取来访者真实IP。取值:'."\n" - .'- **true**(默认值):是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 1. 配置**true**,**XForwardedForProcessingMode**默认取值**append**,支持修改为**remove**。'."\n" - .'> 2. 配置**false**,将请求发送至后端服务之前保留`X-Forwarded-For`头字段,不做额外处理。'."\n" - .'> 3. HTTP和HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'XForwardedForProcessingMode' => [ - 'description' => '处理`X-Forwarded-For`头字段的模式。只有当**XForwardedForEnabled**为**true**时,此值才会生效。取值:'."\n" - .'- **append**(默认值):附加。'."\n" - .'- **remove**:删除。'."\n" - ."\n" - .'> 1. 配置**append**,将请求发送至后端服务之前把最后一跳IP加入`X-Forwarded-For`头字段。'."\n" - .'> 2. 配置**remove**,将请求发送至后端服务之前删除`X-Forwarded-For`标头,无论请求是否携带`X-Forwarded-For`头字段。'."\n" - .'> 3. HTTP和HTTPS监听支持此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'append', - ], - 'XForwardedForProtoEnabled' => [ - 'title' => '是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。', - 'description' => '是否通过`X-Forwarded-Proto`头字段获取负载均衡实例的监听协议。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForSLBIdEnabled' => [ - 'title' => '是否通过SLB-ID头字段获取负载均衡实例ID。', - 'description' => '是否通过`SLB-ID`头字段获取负载均衡实例ID。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForSLBPortEnabled' => [ - 'title' => '是否通过X-Forwarded-Port 头字段获取负载均衡实例的监听端口。HTTPS监听有效。', - 'description' => '是否通过`X-Forwarded-Port`头字段获取负载均衡实例的监听端口。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForClientSourceIpsEnabled' => [ - 'description' => '是否允许ALB从X-Forwarded-For头字段中查找真实客户端IP。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> HTTP、HTTPS监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'XForwardedForClientSourceIpsTrusted' => [ - 'description' => '指定可信的代理IP。'."\n" - ."\n" - .'应用型负载均衡ALB会从后往前遍历`X-Forwarded-For`,选取第一个不在可信IP列表中的IP作为真实的客户端IP,该IP会被用于源IP限速。', - 'type' => 'string', - 'required' => false, - 'example' => '10.1.1.0/24', - ], - 'XForwardedForHostEnabled' => [ - 'description' => '是否开启通过`X-Forwarded-Host`头字段获取访问负载均衡实例客户端的域名。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> HTTP、HTTPS和QUIC监听支持此参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'Type' => ['title' => '参数类型', 'description' => '参数类型。只能填**QueryString**。', 'type' => 'string', 'required' => true, 'example' => 'QueryString'], + 'Value' => ['title' => '一致性hash参数值', 'description' => '一致性hash参数值。', 'type' => 'string', 'required' => true, 'example' => 'abc'], ], 'required' => false, ], ], [ - 'name' => 'QuicConfig', + 'name' => 'ConnectionDrainConfig', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => 'HTTPS启用QUIC时相关属性', - 'description' => '启用关联QUIC监听时的配置信息。', + 'description' => '连接优雅中断相关配置。'."\n" + ."\n" + .'开启连接优雅中断,在移除后端服务器或者健康检查失败后,负载均衡使现有连接在一定时间内正常传输。'."\n" + ."\n" + .'>'."\n" + .'> - 基础版实例不支持开启连接优雅中断,仅标准版、WAF增强版实例支持。'."\n" + .'> - 服务器类型、IP类型服务器组支持连接优雅中断,函数计算类型不支持。', 'type' => 'object', 'properties' => [ - 'QuicListenerId' => [ - 'title' => '需要关联的QUIC监听ID,HTTPS监听时有效,QuicUpgradeEnabled为true时必选', - 'description' => '需要关联的QUIC监听ID。**QuicUpgradeEnabled**值为**true**时必选。HTTPS监听时有效。'."\n" - ."\n" - .'> 原始监听和关联的QUIC监听必须属于同一个ALB实例,并且此QUIC监听之前没有被关联过。', - 'type' => 'string', - 'required' => false, - 'example' => 'lsn-333', - ], - 'QuicUpgradeEnabled' => [ - 'title' => '是否开启quic升级,HTTPS监听时有效', - 'description' => '是否开启QUIC升级。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅HTTPS监听时有效。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'ConnectionDrainEnabled' => ['description' => '是否开启连接优雅中断。'."\n" + ."\n" + .'- **true**:开启'."\n" + .'- **false**:关闭(默认值)', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'ConnectionDrainTimeout' => ['description' => '连接优雅中断超时时间。'."\n" + ."\n" + .'取值范围:**0**~**900**。'."\n" + ."\n" + .'默认值:**300**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '300'], ], 'required' => false, ], ], [ - 'name' => 'Certificates', + 'name' => 'SlowStartConfig', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '监听默认服务器证书列表,N当前取值范围为1', - 'description' => '证书列表。', - 'type' => 'array', - 'items' => [ - 'description' => '证书结构。', - 'type' => 'object', - 'properties' => [ - 'CertificateId' => [ - 'title' => '正式标识', - 'description' => '默认证书ID,目前仅支持添加 1 个默认服务器证书。'."\n" - ."\n" - .'> - 监听协议类型为**HTTPS**或**QUIC**时,此参数为必填。'."\n" - .'> - 如需更多服务器证书,可在创建监听后调用[AssociateAdditionalCertificatesWithListener](~~2254830~~)配置扩展证书。', - 'type' => 'string', - 'required' => false, - 'example' => '123157******', - ], - ], - 'required' => false, + 'description' => '慢启动相关配置。'."\n" + ."\n" + .'开启慢启动后,将会在设定的时间段内对新添加到后端服务器组的后端服务器进行预热,转发到该服务器的请求数量线性增加。'."\n" + ."\n" + .'> '."\n" + .'> - 基础版实例不支持开启慢启动,仅标准版、WAF增强版实例支持。'."\n" + .'> - 服务器类型、IP类型服务器组支持配置慢启动,函数计算类型不支持。'."\n" + .'> - 慢启动仅在后端调度算法是加权轮询算法时可开启。', + 'type' => 'object', + 'properties' => [ + 'SlowStartEnabled' => ['description' => '是否开启慢启动。'."\n" + ."\n" + .'- **true**:开启'."\n" + .'- **false**:关闭(默认值)', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'SlowStartDuration' => ['description' => '慢启动持续时间。'."\n" + ."\n" + .'取值范围:**30**~**900**。'."\n" + ."\n" + .'默认值:**30**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], ], 'required' => false, - 'maxItems' => 2, - 'minItems' => 1, ], ], [ - 'name' => 'CaCertificates', + 'name' => 'Tag', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '监听默认CA证书列表,N当前取值范围为1', - 'description' => 'CA证书列表。目前仅支持添加1个CA证书。', + 'description' => '标签。', 'type' => 'array', 'items' => [ - 'description' => 'CA证书结构。', + 'description' => '标签结构。', 'type' => 'object', 'properties' => [ - 'CertificateId' => [ - 'title' => '正式标识', - 'description' => 'CA证书ID。'."\n" - ."\n" - .'> 当**CaEnabled**参数取值为**true**的时候,此参数为必填。', - 'type' => 'string', - 'required' => false, - 'example' => '123359******', - ], + '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' => 1, - 'minItems' => 1, ], ], [ - 'name' => 'DefaultActions', + 'name' => 'CrossZoneEnabled', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '监听默认动作', - 'description' => '默认规则动作列表。', - 'type' => 'array', - 'items' => [ - 'description' => '默认规则动作结构。', - 'type' => 'object', - 'properties' => [ - 'ForwardGroupConfig' => [ - 'title' => '转发组', - 'description' => '转发动作对应的配置,**Type**类型为**ForwardGroup**时必填且有效。最多支持添加20个转发动作对应的配置。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupTuples' => [ - 'title' => '服务器组列表', - 'description' => '转发目标服务器元组列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发目标服务器元组结构。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupId' => [ - 'title' => '服务器组ID', - 'description' => '转发到的目的服务器组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-i5qt20******', - ], - ], - 'required' => false, - ], - 'required' => true, - ], - ], - 'required' => false, - ], - 'Type' => [ - 'title' => '动作类型', - 'description' => '动作类型。最多支持添加1个动作类型。'."\n" - ."\n" - .'取值:**ForwardGroup**,表示转发至多个服务器组。', - 'type' => 'string', - 'required' => true, - 'example' => 'ForwardGroup', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - ], - 'responses' => [ - 200 => [ + 'schema' => ['description' => '服务器组是否开启跨AZ负载均衡。取值:'."\n" + ."\n" + .'- **true**:开启(默认值)'."\n" + ."\n" + .'- **false**:关闭'."\n" + ."\n" + .'> '."\n" + .'> - 基础版实例不支持绑定关闭跨AZ负载均衡的服务器组,仅标准版、WAF 增强版实例支持。'."\n" + .'> - 服务器类型、IP 类型服务器组支持关闭跨AZ负载均衡,函数计算类型不支持。'."\n" + .'> - 关闭跨AZ负载均衡时,不支持开启会话保持。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'IpVersionAffinityMode', + 'in' => 'query', + 'schema' => ['title' => 'IP版本亲和模式', 'description' => 'IP版本亲和模式', 'type' => 'string', 'required' => false, 'example' => 'Affinity'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构体。', + 'description' => '返回数据结构体', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF******', - ], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF******'], + 'ServerGroupId' => ['title' => '服务器组id', 'description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-8ilqs4axp6******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.CrossLoadBalancerQUICListener', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.Listener', - 'errorMessage' => 'The specified resource %s is already associated.', - ], - [ - 'errorCode' => 'OperationDenied.GRPCServerGroup', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.Certificate', - 'errorMessage' => 'The specified resource %s is already associated.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.SecurityPolicyAttachedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'OperationDenied.ServerGroupProtocolNotSupport', - 'errorMessage' => 'The operation is not allowed because of ServerGroupProtocolNotSupport.', - ], - [ - 'errorCode' => 'UnsupportedFeature.FullTraceHttps', - 'errorMessage' => 'The feature of FullTraceHttps is not supported for current instance.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.Listener', - 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', - ], - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Invalid parameter, please check the parameter input.', - ], + ['errorCode' => 'QuotaExceeded.ServerGroupsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['errorCode' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => '参数%s和%s不匹配。'], + ['errorCode' => 'Mismatch.ServerGroupSchedulerAndSlowStartEnable', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => '参数%s和%s不匹配。'], + ['errorCode' => 'QuotaExceeded.SlowStartDuration', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '参数%s超过配额限制,当前值%s,配额值%s。'], + ['errorCode' => 'UnsupportedFeature.SlowStart', 'errorMessage' => 'The feature of %s is not supported.', 'description' => '不支持%s特性。'], + ['errorCode' => 'Mismatch.LoadBalancerEditionAndConnectionDrain', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => '参数%s和%s不匹配。'], + ['errorCode' => 'QuotaExceeded.ConnectionDrainTimeout', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '参数%s超过配额限制,当前值%s,配额值%s。'], + ['errorCode' => 'UnsupportedFeature.ConnectionDrain', 'errorMessage' => 'The feature of %s is not supported.', 'description' => '不支持%s特性。'], + ['errorCode' => 'NotExist.ResourceGroup', 'errorMessage' => 'ResourceGroup does not exist.', 'description' => '资源组不存在'], + ['errorCode' => 'OperationDenied.VpcNotSupportIpv6', 'errorMessage' => 'The operation is not allowed because of VpcNotSupportIpv6.', 'description' => '不允许该操作,原因:当前VPC未开启IPv6功能'], + ['errorCode' => 'UnsupportedFeature.FcServerGroup', 'errorMessage' => 'Server groups of type FC are not supported.', 'description' => '不支持FC类型的服务器组'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Vpc', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'VPC不存在。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.SecurityPolicy', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Certificate', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => '创建服务器组', + 'description' => '**CreateServerGroup**接口属于异步接口,即系统返回一个请求ID,但该服务器组尚未创建成功,系统后台的创建任务仍在进行。您可以调用[ListServerGroups](~~213627~~)查询服务器组的创建状态:'."\n" + .'- 当服务器组处于**Creating**状态时,表示服务器组正在创建中。'."\n" + .'- 当服务器组处于**Available**状态时,表示服务器组创建成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'alb:ServerGroupProtocol', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '更新监听的配置', - 'description' => '**UpdateListenerAttribute**接口属于异步接口,即系统返回一个请求ID,但该监听的配置尚未更新成功,系统后台的更新任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询监听的配置的更新状态:'."\n" - .'- 当监听器处于**Configuring**状态时,表示监听的配置正在更新中。'."\n" - .'- 当监听器处于**Running**状态时,表示监听的配置更新成功。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\",\\n \\"ServerGroupId\\": \\"sgp-8ilqs4axp6******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n sg-atstuj3rtoptyui****\\n","errorExample":""}]', ], - 'UpdateListenerLogConfig' => [ - 'summary' => '更新监听日志相关属性,如访问日志等。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteAScripts' => [ + 'summary' => '删除可编程脚本。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6775,590 +4103,249 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ - [ - 'name' => 'ListenerId', - 'in' => 'query', - 'schema' => [ - 'title' => '监听标识', - 'description' => '应用型负载均衡实例监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-o4u54y73wq7b******', - ], - ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => 'f516e84e-fc0c-4c2d-a461-6cd77******'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会更新监听的日志配置。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回**HTTP_2xx**状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会删除可编程脚本。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'AccessLogRecordCustomizedHeadersEnabled', + 'name' => 'AScriptIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '是否开启携带自定义Header', - 'description' => '访问日志是否开启携带自定义头字段。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" + 'title' => '脚本id列表', + 'description' => '可编程脚本ID列表。', + 'type' => 'array', + 'items' => ['description' => '可编程脚本ID。'."\n" ."\n" - .'> 只有实例访问日志开关**AccessLogEnabled**打开时,才能设置此参数为**true**。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + .'一次最多支持删除4个可编程脚本。', 'type' => 'string', 'required' => true, 'example' => 'as-59hl7uu******'], + 'required' => true, + 'maxItems' => 10, + 'minItems' => 1, ], ], - [ - 'name' => 'AccessLogTracingConfig', - 'in' => 'query', - 'style' => 'flat', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '访问日志xtrace字段相关的配置', - 'description' => 'Xtrace配置信息。', + 'title' => 'Schema of Response', + 'description' => '删除可编程脚本。', 'type' => 'object', 'properties' => [ - 'TracingEnabled' => [ - 'title' => 'Xtrace功能状态', - 'description' => 'Xtrace功能状态。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。'."\n" - ."\n" - .'> 只有实例访问日志开关**AccessLogEnabled**打开时,才能设置此参数为**true**。', - 'type' => 'boolean', - 'required' => true, - 'example' => 'true', - ], - 'TracingSample' => [ - 'title' => 'xtrace的采样率', - 'description' => 'Xtrace采样率。'."\n" - ."\n" - .'取值范围:**1~10000**。'."\n" - ."\n" - .'> **TracingEnabled**为**true**时有效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - 'TracingType' => [ - 'title' => 'xtrace的类型', - 'description' => 'Xtrace类型,取值为**Zipkin**。'."\n" - ."\n" - .'> **TracingEnabled**为**true**时有效。', - 'type' => 'string', - 'required' => false, - 'example' => 'Zipkin', - ], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '03cf3fe1-ab37-479b-92a6-b481d762****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '1B7B7695-3596-50C8-B739-030C******'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ResourceNotFound.AScript', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'OperationDenied.CrossListenerAScripts', 'errorMessage' => 'The operation is not allowed because of %s', 'description' => '操作被拒绝,原因是%s。'], + ], + ], + 'title' => '删除可编程脚本', + 'description' => '**DeleteAScripts**接口属于异步接口,即系统返回一个请求ID,但可编程脚本尚未删除成功,系统后台的删除任务仍在进行。您可以调用[ListAScripts](~~472574~~)查询可编程脚本的删除状态:'."\n" + ."\n" + .'- 当可编程脚本处于**Deleting**状态时,表示可编程脚本正在删除中。'."\n" + ."\n" + .'- 当查询不到该可编程脚本时,表示该可编程脚本删除成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteAScripts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], - 'required' => false, ], ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"03cf3fe1-ab37-479b-92a6-b481d762****\\",\\n \\"RequestId\\": \\"1B7B7695-3596-50C8-B739-030C******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 03cf3fe1-ab37-479b-92a6-b481d762****\\n 1B7B7695-3596-50C8-B739-030C6C685E61\\n","errorExample":""}]', + ], + 'DeleteAcl' => [ + 'summary' => '删除指定的访问控制。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => ['title' => '访问控制策略id', 'description' => 'ACL实例ID。', 'type' => 'string', 'required' => true, 'example' => 'acl-hp34s2h0xx1ht4nwo****'], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['title' => '幂等Token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => 'DryRun', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会删除访问控制。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '更新监听的日志配置。', + 'description' => '删除访问控制。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectBusinessStatus.LoadBalancer', - 'errorMessage' => 'The business status of %s [%s]  is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.AccessLogDisabled', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.Listener', - 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', - ], + ['errorCode' => 'ResourceInUse.Acl', 'errorMessage' => 'The specified resource %s is in use.', 'description' => '资源%s正在使用中。'], + ['errorCode' => 'IncorrectStatus.Acl', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '访问控制策略组ACL的当前状态不支持本次操作。'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', + 403 => [ + ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '访问控制鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '访问控制策略组ACL不存在。'], + ], + ], + 'title' => '删除访问控制', + 'description' => '**DeleteAcl**接口属于异步接口,即系统返回一个请求ID,但该访问控制尚未删除成功,系统后台的删除任务仍在进行。您可以调用[ListAcls](~~213617~~)查询访问控制的删除状态:'."\n" + .'- 当访问控制处于**Deleting**状态时,表示访问控制正在删除中。'."\n" + .'- 当查询不到该访问控制实例的状态时,表示访问控制删除成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '更新监听日志相关属性', - 'description' => '**UpdateListenerLogConfig**接口属于异步接口,即系统返回一个请求ID,但该监听的日志配置尚未更新成功,系统后台的更新任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询监听的日志配置的更新状态:'."\n" - .'- 当监听器处于**Configuring**状态时,表示监听的日志配置正在更新中。'."\n" - .'- 当监听器处于**Running**状态时,表示监听的日志配置更新成功。'."\n" - .'> 只有开启实例访问日志后,才能更新监听的日志配置。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', ], - 'GetListenerHealthStatus' => [ - 'summary' => '查询监听及其转发规则的健康检查状态。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteHealthCheckTemplates' => [ + 'summary' => '批量删除指定的健康检查模板。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'ListenerId', + 'name' => 'HealthCheckTemplateIds', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '监听Id', - 'description' => '实例的监听ID。', - 'type' => 'string', + 'title' => '健康检查模板Id列表', + 'description' => '健康检查模板ID列表,列表最多10条。', + 'type' => 'array', + 'items' => ['description' => '删除指定的健康检查模板ID。', 'type' => 'string', 'required' => false, 'example' => 'hct-bp1qjwo61pqz3ahltv****'], 'required' => true, - 'example' => 'lsn-o4u54y73wq7b******', - ], - ], - [ - 'name' => 'IncludeRule', - 'in' => 'query', - 'schema' => [ - 'title' => '是否包含转发规则健康检查结果', - 'description' => '是否包含转发规则的检查结果。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'example' => 'acl-123', + 'maxItems' => 10, + 'minItems' => 1, ], ], [ - 'name' => 'NextToken', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['title' => '幂等token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n\n" + .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******'], ], [ - 'name' => 'MaxResults', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => '分批次查询时每次显示的最大条目数。取值范围:**1**~**30**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['title' => 'dryRun', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式和业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回**http_2xx**状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '查询监听及其相应配置的转发规则的健康检查状态。', + 'description' => '删除健康检查模板。', 'type' => 'object', 'properties' => [ - 'ListenerHealthStatus' => [ - 'title' => '监听健康检查结果', - 'description' => '监听的服务器组健康检查状态列表。', - 'type' => 'array', - 'items' => [ - 'description' => '监听的服务器组健康检查状态结构。', - 'type' => 'object', - 'properties' => [ - 'ListenerId' => [ - 'title' => '监听Id', - 'description' => '实例的监听ID。', - 'type' => 'string', - 'example' => 'lsn-o4u54y73wq7b******', - ], - 'ListenerPort' => [ - 'title' => '监听的端口号', - 'description' => '监听的端口号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'ListenerProtocol' => [ - 'title' => '监听的协议', - 'description' => '监听的协议。', - 'type' => 'string', - 'example' => 'http', - ], - 'ServerGroupInfos' => [ - 'title' => '服务器组健康检查结果', - 'description' => '服务器组信息。', - 'type' => 'array', - 'items' => [ - 'description' => '服务器组信息。', - 'type' => 'object', - 'properties' => [ - 'HealthCheckEnabled' => [ - 'title' => '健康检查开启/关闭', - 'description' => '健康检查开启状态。取值: **on**,表示开启健康检查。', - 'type' => 'string', - 'example' => 'on', - ], - 'NonNormalServers' => [ - 'title' => '处于非正常状态的后端服务器', - 'description' => '非正常状态的后端服务器列表。', - 'type' => 'array', - 'items' => [ - 'description' => '非正常状态的后端服务器列表。', - 'type' => 'object', - 'properties' => [ - 'Port' => [ - 'title' => '后端服务器端口', - 'description' => '后端服务器端口。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '90', - ], - 'Reason' => [ - 'title' => 'status为非正常状态时的详细异常原因', - 'description' => '非正常状态的原因。', - 'type' => 'object', - 'properties' => [ - 'ActualResponse' => [ - 'title' => '后端实际的返回码信息', - 'description' => '后端服务器实际的返回码信息,例如,**302**。'."\n" - ."\n" - .'> **ReasonCode**为**RESPONSE_MISMATCH**才该返回值。', - 'type' => 'string', - 'example' => '302', - ], - 'ExpectedResponse' => [ - 'title' => '用户预期的后端返回码信息', - 'description' => '用户预期的后端服务器返回码信息。'."\n" - ."\n" - .'取值:**HTTP\\_2xx**、**HTTP\\_3xx**、**HTTP\\_4xx**和**HTTP\\_5xx**。多个返回码之间用半角逗号(,)分隔。'."\n" - ."\n" - .'> **ReasonCode**为**RESPONSE_MISMATCH**才返回该值。', - 'type' => 'string', - 'example' => 'HTTP_2xx', - ], - 'ReasonCode' => [ - 'title' => '失败reasonCode', - 'description' => '**Status**为异常状态时的详细原因。'."\n" - .'目前仅HTTP和HTTPS的监听与转发规则支持查看异常状态原因:'."\n" - .'- **CONNECT_TIMEOUT**:负载均衡健康检查时向后端服务器建立连接超时。'."\n" - ."\n" - .'- **CONNECT_FAILED**:负载均衡健康检查时向后端服务器建立连接失败。'."\n" - ."\n" - .'- **RECV_RESPONSE_FAILED**:负载均衡健康检查时从后端服务器接收响应失败。'."\n" - ."\n" - .'- **RECV_RESPONSE_TIMEOUT**:负载均衡健康检查时从后端服务器接收响应超时。'."\n" - ."\n" - .'- **SEND_REQUEST_FAILED**:负载均衡健康检查时向后端服务器发送请求失败。'."\n" - ."\n" - .'- **SEND_REQUEST_TIMEOUT**:负载均衡健康检查时向后端服务器发送请求超时。'."\n" - ."\n" - .'- **RESPONSE_FORMAT_ERROR**:负载均衡健康检查时从后端服务器接收响应格式错误。'."\n" - ."\n" - .'- **RESPONSE_MISMATCH**:负载均衡健康检查时从后端服务器接收的响应码与预期配置返回码不一致。', - 'type' => 'string', - 'example' => 'RESPONSE_MISMATCH', - ], - ], - ], - 'ServerId' => [ - 'title' => '后端服务器id', - 'description' => '后端服务器ID。', - 'type' => 'string', - 'example' => 'i-uf62h8v******', - ], - 'ServerIp' => [ - 'title' => '后端服务器Ip', - 'description' => '后端服务器IP。', - 'type' => 'string', - 'example' => '192.168.8.10', - ], - 'Status' => [ - 'title' => '健康检查状态', - 'description' => '健康检查状态。取值:'."\n" - ."\n" - .'- **Initial**:初始化中,表示负载均衡实例配置了健康检查,但查不到数据。'."\n" - ."\n" - .'- **Unhealthy**:异常,表示连续上报不健康的状态。'."\n" - ."\n" - .'- **Unused**:未使用,表示后端服务器的权重为0。'."\n" - ."\n" - .'- **Unavailable**:未开启,表示未开启健康检查。'."\n", - 'type' => 'string', - 'example' => 'Initial', - ], - ], - ], - ], - 'ServerGroupId' => [ - 'title' => '服务器组ID', - 'description' => '关联的服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-8ilqs4axp6******', - ], - 'ActionType' => [ - 'title' => '服务器组使用类型', - 'description' => '服务器组使用类型。取值:'."\n" - ."\n" - .'- **ForwardGroup**:转发至服务器组。'."\n" - .'- **TrafficMirror**:流量镜像至服务器组。', - 'type' => 'string', - 'example' => 'TrafficMirror', - ], - ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'title' => '请求Id', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876F******', - ], - 'RuleHealthStatus' => [ - 'title' => '转发规则健康检查结果', - 'description' => '转发规则的健康状态列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发规则的健康状态结构。', - 'type' => 'object', - 'properties' => [ - 'RuleId' => [ - 'title' => '转发规则ID', - 'description' => '转发规则ID。', - 'type' => 'string', - 'example' => 'rule-hp34s2h0xx1ht4nwo****', - ], - 'ServerGroupInfos' => [ - 'title' => '服务器组健康检查结果', - 'description' => '服务器组列表。', - 'type' => 'array', - 'items' => [ - 'description' => '服务器组结构。', - 'type' => 'object', - 'properties' => [ - 'HealthCheckEnabled' => [ - 'title' => '健康检查开启/关闭', - 'description' => '健康检查开启状态。取值: **on**,表示开启健康检查。', - 'type' => 'string', - 'example' => 'on', - ], - 'NonNormalServers' => [ - 'title' => '处于非正常状态的后端服务器', - 'description' => '非正常状态的后端服务器列表。', - 'type' => 'array', - 'items' => [ - 'description' => '非正常状态的后端服务器列表。', - 'type' => 'object', - 'properties' => [ - 'Port' => [ - 'title' => '后端服务器端口', - 'description' => '后端服务器端口。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '90', - ], - 'Reason' => [ - 'title' => 'status为非正常状态时的详细异常原因', - 'description' => '非正常状态的原因。', - 'type' => 'object', - 'properties' => [ - 'ActualResponse' => [ - 'title' => '后端实际的返回码信息', - 'description' => '后端服务器实际的返回码信息,例如,**302**。'."\n" - ."\n" - .'> **ReasonCode**为**RESPONSE_MISMATCH**才有值。', - 'type' => 'string', - 'example' => '302', - ], - 'ExpectedResponse' => [ - 'title' => '用户预期的后端返回码信息', - 'description' => '用户预期的后端服务器返回码信息。'."\n" - ."\n" - .'取值:**HTTP\\_2xx**、**HTTP\\_3xx**、**HTTP\\_4xx**和**HTTP\\_5xx**。多个返回码之间用半角逗号(,)分隔。'."\n" - ."\n" - .'> **ReasonCode**为**RESPONSE_MISMATCH**才有值。', - 'type' => 'string', - 'example' => 'HTTP_2xx', - ], - 'ReasonCode' => [ - 'title' => '失败reasonCode', - 'description' => '**Status**为异常状态时的详细原因。'."\n" - .'目前仅HTTP和HTTPS的监听与转发规则支持查看异常状态原因:'."\n" - .'- **CONNECT_TIMEOUT**:负载均衡健康检查时向后端服务器建立连接超时。'."\n" - ."\n" - .'- **CONNECT_FAILED**:负载均衡健康检查时向后端服务器建立连接失败。'."\n" - ."\n" - .'- **RECV_RESPONSE_FAILED**:负载均衡健康检查时从后端服务器接收响应失败。'."\n" - ."\n" - .'- **RECV_RESPONSE_TIMEOUT**:负载均衡健康检查时从后端服务器接收响应超时。'."\n" - ."\n" - .'- **SEND_REQUEST_FAILED**:负载均衡健康检查时向后端服务器发送请求失败。'."\n" - ."\n" - .'- **SEND_REQUEST_TIMEOUT**:负载均衡健康检查时向后端服务器发送请求超时。'."\n" - ."\n" - .'- **RESPONSE_FORMAT_ERROR**:负载均衡健康检查时从后端服务器接收响应格式错误。'."\n" - ."\n" - .'- **RESPONSE_MISMATCH**:负载均衡健康检查时从后端服务器接收的响应码与预期配置返回码不一致。', - 'type' => 'string', - 'example' => 'RESPONSE_MISMATCH', - ], - ], - ], - 'ServerId' => [ - 'title' => '后端服务器Id', - 'description' => '后端服务器ID。', - 'type' => 'string', - 'example' => 'i-uf62h8v******', - ], - 'ServerIp' => [ - 'title' => '后端服务器ID', - 'description' => '后端服务器组IP。', - 'type' => 'string', - 'example' => '192.168.2.11', - ], - 'Status' => [ - 'title' => '健康检查状态', - 'description' => '健康检查状态。取值:'."\n" - ."\n" - .'- **Initial**:初始化中,表示负载均衡实例配置了健康检查,但查不到数据。'."\n" - ."\n" - .'- **Unhealthy**:异常,表示连续上报不健康的状态。'."\n" - ."\n" - .'- **Unused**:未使用,表示后端服务器的权重为0或当您设置关闭跨AZ负载均衡,且后端服务器与ALB不在相同可用区。'."\n" - ."\n" - .'- **Unavailable**:未开启,表示未开启健康检查。', - 'type' => 'string', - 'example' => 'Initial', - ], - ], - ], - ], - 'ServerGroupId' => [ - 'title' => '服务器组ID', - 'description' => '关联的服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-8ilqs4axp6******', - ], - 'ActionType' => [ - 'title' => '服务器组使用类型', - 'description' => '服务器组使用类型。', - 'type' => 'string', - 'example' => 'TrafficMirror', - ], - ], - ], - ], - ], - ], - ], - 'NextToken' => [ - 'title' => '下一页标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], ], ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], + 400 => [ + ['errorCode' => 'IncorrectStatus.HealthCheckTemplate', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的状态无效。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + 'title' => '批量删除健康检查模板', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteHealthCheckTemplates', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#HealthCheckTemplatesId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ListenerHealthStatus\\": [\\n {\\n \\"ListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"http\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HealthCheckEnabled\\": \\"on\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Port\\": 90,\\n \\"Reason\\": {\\n \\"ActualResponse\\": \\"302\\",\\n \\"ExpectedResponse\\": \\"HTTP_2xx\\",\\n \\"ReasonCode\\": \\"RESPONSE_MISMATCH\\"\\n },\\n \\"ServerId\\": \\"i-uf62h8v******\\",\\n \\"ServerIp\\": \\"192.168.8.10\\",\\n \\"Status\\": \\"Initial\\"\\n }\\n ],\\n \\"ServerGroupId\\": \\"sgp-8ilqs4axp6******\\",\\n \\"ActionType\\": \\"TrafficMirror\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876F******\\",\\n \\"RuleHealthStatus\\": [\\n {\\n \\"RuleId\\": \\"rule-hp34s2h0xx1ht4nwo****\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HealthCheckEnabled\\": \\"on\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Port\\": 90,\\n \\"Reason\\": {\\n \\"ActualResponse\\": \\"302\\",\\n \\"ExpectedResponse\\": \\"HTTP_2xx\\",\\n \\"ReasonCode\\": \\"RESPONSE_MISMATCH\\"\\n },\\n \\"ServerId\\": \\"i-uf62h8v******\\",\\n \\"ServerIp\\": \\"192.168.2.11\\",\\n \\"Status\\": \\"Initial\\"\\n }\\n ],\\n \\"ServerGroupId\\": \\"sgp-8ilqs4axp6******\\",\\n \\"ActionType\\": \\"TrafficMirror\\"\\n }\\n ]\\n }\\n ],\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n lsr-bp1bpn0kn908w4nbw****\\n 80\\n http\\n \\n on\\n \\n 90\\n \\n 302\\n HTTP_2xx\\n RESPONSE_MISMATCH\\n \\n rg-bp1bfa08ex*****\\n 192.168.8.10\\n Initial\\n \\n vsp-bp1qjwo61pqz3ahltv****\\n TrafficMirror\\n \\n \\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n \\n rule-hp34s2h0xx1ht4nwo****\\n \\n on\\n \\n 90\\n \\n 302\\n HTTP_2xx\\n RESPONSE_MISMATCH\\n \\n rg-bp1bfa08ex****\\n 192.168.2.11\\n Initial\\n \\n vsp-bp1qjwo61pqz3ahlt****\\n TrafficMirror\\n \\n \\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n","errorExample":""}]', - 'title' => '查询健康检查', ], - 'AddServersToServerGroup' => [ - 'summary' => '向服务器组中添加后端服务器。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteListener' => [ + 'summary' => '删除指定的监听。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7366,275 +4353,83 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREslbULKWF1', - ], - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'ServerGroupId', + 'name' => 'ListenerId', 'in' => 'query', - 'schema' => [ - 'title' => '后端服务器Id', - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-atstuj3rtop****', - ], - ], - [ - 'name' => 'Servers', - 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'title' => '后端服务器列表', - 'description' => '后端服务器列表', - 'type' => 'array', - 'items' => [ - 'title' => '后端服务器', - 'description' => '后端服务器', - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'title' => '描述信息', - 'description' => '描述信息', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'Port' => [ - 'title' => '后端端口号', - 'description' => '后端端口号', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'docRequired' => false, - 'example' => '80', - ], - 'ServerId' => [ - 'title' => '后端服务器id', - 'description' => '后端服务器id', - 'type' => 'string', - 'required' => false, - 'example' => 'ecs-123', - ], - 'ServerIp' => [ - 'title' => '后端服务器ip', - 'description' => '后端服务器ip', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.1.1', - ], - 'ServerType' => [ - 'title' => '后端服务器类型', - 'description' => '后端服务器类型', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ecs', - ], - 'Weight' => [ - 'title' => '后端服务器权重', - 'description' => '后端服务器权重', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - 'RemoteIpEnabled' => [ - 'title' => '是否是远端ip', - 'description' => '是否是远端ip', - 'type' => 'boolean', - 'required' => false, - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 200, - 'minItems' => 1, - ], + 'schema' => ['title' => '监听id', 'description' => '应用型负载均衡实例的监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******'], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等Token', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '593B0448-D13E-4C56-AC0D-FDF0******', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => 'dryRun', - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会向服务器组中添加后端服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会删除应用型负载均衡的监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构体', + 'description' => '删除监听。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34******', - ], + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'IncorrectStatus.ServerGroup', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'Conflict.BackendServer', - 'errorMessage' => 'There is already %s having the same configuration with %s.', - ], - [ - 'errorCode' => 'OperationDenied.VpcVportNotFound', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'IncorrectStatus.Eni', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceInUse.IP', - 'errorMessage' => 'The specified resource %s is in use.', - ], - [ - 'errorCode' => 'OperationDenied.NoAvailableVSwitch', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.VgwVipNotFound', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.CloudBox', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'Mismatch.Type', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceInConfiguring', - 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', - ], - [ - 'errorCode' => 'DuplicatedParam.BackendServer', - 'errorMessage' => 'The param of %s is duplicated.', - ], - [ - 'errorCode' => 'OperationDenied.EciNotSupportJobType', - 'errorMessage' => 'The operation is not allowed because of eci not support job type.', - ], - [ - 'errorCode' => 'IllegalParam.ServerIp', - 'errorMessage' => 'The param of ServerIp is illegal.', - ], - [ - 'errorCode' => 'Mismatch.ServerType', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'ServiceUnavailable', - 'errorMessage' => 'The request has failed due to a temporary failure of the server.', - ], + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'ResourceInUse.Listener', 'errorMessage' => 'The specified resource %s is in use.', 'description' => '资源%s正在使用中。'."\n"], + ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource is being configured, please try again later.', 'description' => '资源正在变配中,请稍后重试。'], + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], ], 403 => [ - [ - 'errorCode' => 'Forbidden.ServerGroup', - 'errorMessage' => 'Authentication has failed for ServerGroup.', - ], + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ecs', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Eci', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Eni', - 'errorMessage' => 'The specified resource %s is not found.', + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + 'title' => '删除监听', + 'description' => '**DeleteListener**接口属于异步接口,即系统返回一个请求ID,但该监听尚未删除成功,系统后台的删除任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询监听的删除状态:'."\n" + .'- 当监听器处于**Deleting**状态时,表示监听正在删除中。'."\n" + .'- 当查询不到该监听时,表示监听删除成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '添加后端服务器', - 'description' => '**AddServersToServerGroup**接口属于异步接口,即系统返回一个请求ID,但该后端服务器尚未添加成功,系统后台的添加任务仍在进行。'."\n" - ."\n" - .'1. 您可以调用[ListServerGroups](~~213627~~)查询服务器组的状态:'."\n" - ."\n" - .'- 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n" - .'- 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n" - ."\n" - .'2. 您可以调用[ListServerGroupServers](~~213628~~)查询后端服务器的状态:'."\n" - ."\n" - .'- 当后端服务器处于**Adding**状态时,表示后端服务器正在加入服务器组。'."\n" - .'- 当后端服务器处于**Available**状态时,表示后端服务器运行中。', ], - 'CreateServerGroup' => [ - 'summary' => '在指定地域创建服务器组。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteLoadBalancer' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7643,689 +4438,354 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '163', - 'abilityTreeNodes' => [ - 'FEATUREslbULKWF1', - ], + 'abilityTreeNodes' => ['FEATUREslbM7ALO6'], ], 'parameters' => [ [ - 'name' => 'ServerGroupName', + 'name' => 'LoadBalancerId', 'in' => 'query', - 'schema' => [ - 'title' => '服务器组名称', - 'description' => '服务器组名称。长度为2~128个字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'schema' => ['title' => '实例id', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'], ], [ - 'name' => 'ServerGroupType', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '服务器组类型', - 'description' => '服务器组类型。取值:'."\n" - ."\n" - .'- **Instance**(默认值):服务器类型,该类型服务器组支持添加**Ecs**、**Eni**、**Eci**实例。'."\n" - ."\n" - .'- **Ip**:IP地址类型,该类型服务器组支持添加IP地址类型的后端服务器。'."\n" - ."\n" - .'- **Fc**:函数计算类型,该类型支持添加函数计算类型的后端服务器。', - 'type' => 'string', - 'required' => false, - 'example' => 'Instance', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ - 'name' => 'VpcId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => 'VpcId', - 'description' => 'VPC实例ID。只有该VPC下的服务器可以加入到该服务器组。'."\n" - ."\n" - .'> **ServerGroupType**取值为**Instance**或**Ip**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp15zdkdt37pq72zv****', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会删除应用型负载均衡实例。检查项包括是否填写了必需参数、请求格式和业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'Scheduler', + 'name' => 'RetainResourceType', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '调度策略', - 'description' => '调度算法。取值:'."\n" - ."\n" - .'- **Wrr**(默认值):加权轮询,权重值越高的后端服务器,被轮询到的概率也越高。'."\n" - ."\n" - .'- **Wlc**:加权最小连接数,除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的概率也越高。'."\n" - ."\n" - .'- **Sch**:一致性哈希,相同哈希因子计算结果的请求将会调度到相同的后端服务器。不配置**UchConfig**参数时,默认哈希因子为源IP,相同源IP地址的请求会分发到同一台后端服务器;配置了**UchConfig**参数时,哈希因子为URL参数,相同URL参数的请求会分发到同一台后端服务器。'."\n" - ."\n\n" - .'> **ServerGroupType**取值为**Instance**或**Ip**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'Wrr', + 'type' => 'array', + 'items' => ['type' => 'string', 'example' => 'eip'], ], ], - [ - 'name' => 'Protocol', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '后端协议类型', - 'description' => '后端协议。取值:'."\n" - ."\n" - .'- **HTTP**(默认值):支持关联HTTPS、HTTP和QUIC监听。'."\n" - ."\n" - .'- **HTTPS**:支持关联HTTPS监听。'."\n" - ."\n" - .'- **gRPC**:关联HTTPS和QUIC监听。'."\n" - ."\n" - .'> **ServerGroupType**取值为**Fc**时,无需配置后端协议。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP', + 'title' => 'Schema of Response', + 'description' => '删除应用型负载均衡实例。', + 'type' => 'object', + 'properties' => [ + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'OperationDenied.DeletionProtectionEnabled', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ], + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication has failed for LoadBalancer.', 'description' => '负载均衡操作鉴权失败'], + ], [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'title' => '资源组id', - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rsop****', + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '删除负载均衡实例', + 'summary' => '删除指定的负载均衡实例。', + 'description' => '**DeleteLoadBalancer**接口属于异步接口,即系统返回一个请求ID,但该应用型负载均衡实例尚未删除成功,系统后台的删除任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询应用型负载均衡实例的删除状态:'."\n" + .'- 当应用型负载均衡实例处于**Deleting**状态时,表示应用型负载均衡实例正在删除中。'."\n" + .'- 当查询不到指定的应用型负载均衡实例时,表示应用型负载均衡实例删除成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + ], + 'DeleteRule' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'HealthCheckConfig', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '健康检查配置', - 'description' => '健康检查相关配置。', - 'type' => 'object', - 'properties' => [ - 'HealthCheckConnectPort' => [ - 'title' => '健康检查端口', - 'description' => '健康检查的后端服务器的端口。'."\n" - ."\n" - .'取值范围: **0**~**65535**。'."\n" - ."\n" - .'默认值:**0**,表示使用后端服务器的端口进行健康检查。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '65535', - 'minimum' => '0', - 'example' => '80', - 'default' => '0', - ], - 'HealthCheckEnabled' => [ - 'title' => '是否启用健康检查', - 'description' => '是否开启健康检查,取值:'."\n" - ."\n" - .'- **true**:开启'."\n" - ."\n" - .'- **false**:不开启'."\n" - ."\n" - .'> **ServerGroupType**取值为**Instance**或**Ip**时,默认开启健康检查。**ServerGroupType**取值为**Fc**时,默认不开启健康检查。', - 'type' => 'boolean', - 'required' => true, - 'example' => 'true', - ], - 'HealthCheckHost' => [ - 'title' => '健康检查域名', - 'description' => '健康检查域名。'."\n" - ."\n" - .'- **使用后端服务器的内网IP**(默认):使用后端服务器的内网IP地址作为健康检查的域名。'."\n" - ."\n" - .'- **指定特定域名**:输入一个域名。'."\n" - ."\n" - .' - 长度限制为1~80个字符。'."\n" - ."\n" - .' - 可包含小写字母、数字、短划线(-)和半角句号(.)。'."\n" - ."\n" - .' - 至少包含一个半角句号(.),半角句号(.)不能出现在开头或结尾。'."\n" - ."\n" - .' - 最右侧的域标签,只能包含字母,不能包含数字或短划线(-)。'."\n" - ."\n" - .' - 短划线(-)不能出现在开头或结尾。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**设置为**HTTP**、**HTTPS**或**gRPC**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], - 'HealthCheckCodes' => [ - 'title' => '健康检查正常的状态码', - 'description' => '健康检查正常的状态码列表。', - 'type' => 'array', - 'items' => [ - 'title' => '健康检查正常的状态码', - 'description' => '健康检查正常的状态码。'."\n" - ."\n\n" - .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http\\_2xx**(默认值)、 **http\\_3xx**、**http\\_4xx**和**http\\_5xx**。多个状态码用半角逗号(,)分隔。'."\n" - ."\n" - .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**,默认值:**0**。支持范围输入,最多支持20个范围值。多个范围值使用半角逗号(,)隔开。'."\n" - ."\n" - .'> **HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'http_2xx', - ], - 'required' => false, - ], - 'HealthCheckHttpVersion' => [ - 'title' => '健康检查HTTP协议版本', - 'description' => '健康检查HTTP协议版本,取值:**HTTP1.0**或**HTTP1.1**(默认值)。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**设置为**HTTP**或**HTTPS**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP1.1', - 'default' => 'HTTP1.1', - ], - 'HealthCheckInterval' => [ - 'title' => '健康检查间隔', - 'description' => '健康检查的时间间隔。单位:秒。'."\n" - ."\n" - .'取值范围:**1**~**50**。'."\n" - ."\n" - .'默认值:**2**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '2', - 'default' => '2', - ], - 'HealthCheckMethod' => [ - 'title' => '健康检查方法', - 'description' => '健康检查方法,取值:'."\n" - ."\n" - .'- **GET**:如果响应报文长度超过8K,会被截断,但不会影响健康检查结果的判定。'."\n" - ."\n" - .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" - ."\n" - .'- **HEAD**(默认值):HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**设置为**HTTP**或**HTTPS**或**gRPC**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'HEAD', - ], - 'HealthCheckPath' => [ - 'title' => '健康检查Path', - 'description' => '健康检查的转发规则路径。'."\n" - ."\n" - .'长度为1~80个字符,只能使用字母、数字、字符`-/.%?#&=`以及扩展字符`_;~!()*[]@$^:\',+`。 URL必须以正斜线(/)开头。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**设置为**HTTP**或**HTTPS**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => '/test/index.html', - ], - 'HealthCheckProtocol' => [ - 'title' => '健康检查协议类型', - 'description' => '健康检查协议,取值:'."\n" - ."\n" - .'- **HTTP**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" - ."\n" - .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" - ."\n" - .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" - ."\n" - .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP', - 'default' => 'HTTP', - ], - 'HealthCheckTimeout' => [ - 'title' => '健康检查超时时间', - 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端服务器在指定的时间内没有正确响应,则判定为健康检查失败。单位:秒。'."\n" - ."\n" - .'取值范围:**1**~**300**。'."\n" - ."\n" - .'默认值:**5**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '300', - 'minimum' => '1', - 'example' => '5', - 'default' => '5', - ], - 'HealthyThreshold' => [ - 'title' => '健康检查成功判定阈值', - 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n" - ."\n" - .'取值范围:**2**~**10**。'."\n" - ."\n" - .'默认值:**3**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10', - 'minimum' => '2', - 'example' => '3', - 'default' => '3', - ], - 'UnhealthyThreshold' => [ - 'title' => '健康检查不成功判定阈值', - 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n" - ."\n" - .'取值范围:**2**~**10**。'."\n" - ."\n" - .'默认值:**3**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10', - 'minimum' => '2', - 'example' => '3', - 'default' => '3', - ], - ], - 'required' => true, - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ - 'name' => 'StickySessionConfig', + 'name' => 'DryRun', 'in' => 'query', - 'style' => 'flat', + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会删除一条转发规则。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => ['title' => '转发规则标识', 'description' => '转发规则ID。', 'type' => 'string', 'required' => true, 'example' => 'rule-doc****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '会话保持配置', - 'description' => '会话保持配置结构体。'."\n" - ."\n" - .'> **ServerGroupType**取值为**Instance**或**Ip**时,该参数生效。', + 'title' => 'Schema of Response', + 'description' => '删除一条转发规则。', 'type' => 'object', 'properties' => [ - 'Cookie' => [ - 'title' => '服务器上配置的Cookie', - 'description' => '服务器上配置的Cookie。'."\n" - ."\n" - .'长度为1~200个字符,只能包含ASCII英文字母和数字字符,不能包含半角逗号(,)、半角分号(;)或空格,也不能以美元符号($)开头。'."\n" - ."\n" - .'> 当**StickySessionEnabled**为**true**且**StickySessionType**为**server**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'B490B6EBF6F3CD402E515D22BCDA****', - ], - 'CookieTimeout' => [ - 'title' => '服务器上配置的Cookie', - 'description' => 'Cookie超时时间。单位:秒。'."\n" - ."\n" - .'取值范围:**1**~**86400**。'."\n" - ."\n" - .'默认值:**1000**。'."\n" - ."\n" - .'> 当**StickySessionEnabled**为**true**且**StickySessionType**为**Insert**时,该参数生效。'."\n" - ."\n\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '86400', - 'minimum' => '1', - 'example' => '1000', - 'default' => '1000', - ], - 'StickySessionEnabled' => [ - 'title' => '是否启用会话保持', - 'description' => '是否启用会话保持,取值:'."\n" - ."\n" - .'- **true**:开启'."\n" - .'- **false**:不开启。'."\n" - ."\n" - .'> **ServerGroupType**取值为**Instance**或**Ip**时,该参数生效。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'StickySessionType' => [ - 'title' => '会话保持类型', - 'description' => 'Cookie的处理方式。取值:'."\n" - ."\n" - .'- **Insert**(默认值):植入Cookie。'."\n" - .'客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP或HTTPS响应报文中插入SERVERID),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。'."\n" - ."\n" - .'- **Server**:重写Cookie。'."\n" - .'负载均衡发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器。'."\n" - ."\n" - .'> 当**StickySessionEnabled**的值为**true**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'Insert', - 'default' => 'Insert', - ], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'], ], - 'required' => false, ], ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CAF0E-5718-45B5-9D4D-70B******', + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.Rule', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '转发规则的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified listener is being configured, please try again later.', 'description' => '资源正在变配中,请稍后重试。'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Rule', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '删除转发规则', + 'summary' => '删除指定的转发规则。', + 'description' => '**DeleteRule**接口属于异步接口,即系统返回一个请求ID,但该转发规则尚未删除成功,系统后台的删除任务仍在进行。您可以调用[ListRules](~~214379~~)查询转发规则的删除状态:'."\n" + .'- 当转发规则处于**Deleting**状态时,表示转发规则正在删除中。'."\n" + .'- 当查询不到转发规则状态时,表示转发规则删除成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteRule', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'acs:ResourceTag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + ], + 'DeleteRules' => [ + 'summary' => '批量删除同一监听下的转发规则。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建服务器组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '185', + 'abilityTreeNodes' => ['FEATUREslbBIWWMH', 'FEATUREslbTXOYED', 'FEATUREslbQCCQ6L', 'FEATUREslb4T90LL', 'FEATUREslbIT4IYN', 'FEATUREslbA51OGD', 'FEATUREslbUBPZWI', 'FEATUREslbGVK35E', 'FEATUREslbYG3GCF', 'FEATUREslbRBR9GZ', 'FEATUREslbMWZQWL', 'FEATUREslbJCYSIV', 'FEATUREslbY93SFN', 'FEATUREslbVUMBEO', 'FEATUREslbZ4XFTS', 'FEATUREslb2Q6O49'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ [ - 'name' => 'Ipv6Enabled', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '是否开启Ipv6', - 'description' => '是否开启Ipv6', - 'type' => 'boolean', - 'required' => false, - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ - 'name' => 'UpstreamKeepaliveEnabled', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '是否开启后端长链接', - 'description' => '是否开启后端长链接。'."\n" - ."\n" - .'- **true**:开启'."\n" - .'- **false**(默认值):不开启。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会删除多条转发规则。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'ServiceName', + 'name' => 'RuleIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '服务器名称', - 'description' => '仅适用于ALB Ingress场景,表示服务器组对应的`K8s Service`名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'title' => '同一个监听下的转发规则标识列表', + 'description' => '转发规则列表。一次最多不能超过100条。', + 'type' => 'array', + 'items' => ['description' => '转发规则ID。', 'type' => 'string', 'required' => false, 'example' => 'rule-a3x3pg1yohq3lq****'], + 'required' => true, + 'maxItems' => 100, + 'minItems' => 1, ], ], - [ - 'name' => 'UchConfig', - 'in' => 'query', - 'style' => 'flat', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => 'url一致性hash参数配置', - 'description' => 'url一致性hash参数配置。', + 'title' => 'Schema of Response', + 'description' => '删除多条转发规则。', 'type' => 'object', 'properties' => [ - 'Type' => [ - 'title' => '参数类型', - 'description' => '参数类型。只能填**QueryString**。', - 'type' => 'string', - 'required' => true, - 'example' => 'QueryString', - ], - 'Value' => [ - 'title' => '一致性hash参数值', - 'description' => '一致性hash参数值。', - 'type' => 'string', - 'required' => true, - 'example' => 'abc', - ], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '7BED4F62-3E6E-5E4F-8C53-2D8CCE77F2ED'], ], - 'required' => false, ], ], - [ - 'name' => 'ConnectionDrainConfig', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '连接优雅中断相关配置。'."\n" - ."\n" - .'开启连接优雅中断,在移除后端服务器或者健康检查失败后,负载均衡使现有连接在一定时间内正常传输。'."\n" - ."\n" - .'>'."\n" - .'> - 基础版实例不支持开启连接优雅中断,仅标准版、WAF增强版实例支持。'."\n" - .'> - 服务器类型、IP类型服务器组支持连接优雅中断,函数计算类型不支持。', - 'type' => 'object', - 'properties' => [ - 'ConnectionDrainEnabled' => [ - 'description' => '是否开启连接优雅中断。'."\n" - ."\n" - .'- **true**:开启'."\n" - .'- **false**:关闭(默认值)', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'ConnectionDrainTimeout' => [ - 'description' => '连接优雅中断超时时间。'."\n" - ."\n" - .'取值范围:**0**~**900**。'."\n" - ."\n" - .'默认值:**300**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '300', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.Rule', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '转发规则的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'OperationDenied.CrossLoadBalancerRules', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ], + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.Rule', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Alb::2020-06-16::ListAsynJobs', 'callbackInterval' => 1000, 'maxCallbackTimes' => 60], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '批量删除转发规则', + 'description' => '**DeleteRules**接口属于异步接口,即系统返回一个请求ID,但该多条转发规则尚未删除成功,系统后台的删除任务仍在进行。您可以调用[ListRules](~~214379~~)查询多条转发规则的删除状态:'."\n" + .'- 当多条转发规则处于**Deleting**状态时,表示多条转发规则正在删除中。'."\n" + .'- 当查询不到多条转发规则的状态时,表示多条转发规则删除成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], - 'required' => false, ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"7BED4F62-3E6E-5E4F-8C53-2D8CCE77F2ED\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 7BED4F62-3E6E-5E4F-8C53-2D8CCE77F2ED\\n","errorExample":""}]', + ], + 'DeleteSecurityPolicy' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'SlowStartConfig', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '慢启动相关配置。'."\n" - ."\n" - .'开启慢启动后,将会在设定的时间段内对新添加到后端服务器组的后端服务器进行预热,转发到该服务器的请求数量线性增加。'."\n" - ."\n" - .'> '."\n" - .'> - 基础版实例不支持开启慢启动,仅标准版、WAF增强版实例支持。'."\n" - .'> - 服务器类型、IP类型服务器组支持配置慢启动,函数计算类型不支持。'."\n" - .'> - 慢启动仅在后端调度算法是加权轮询算法时可开启。', - 'type' => 'object', - 'properties' => [ - 'SlowStartEnabled' => [ - 'description' => '是否开启慢启动。'."\n" - ."\n" - .'- **true**:开启'."\n" - .'- **false**:关闭(默认值)', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'SlowStartDuration' => [ - 'description' => '慢启动持续时间。'."\n" - ."\n" - .'取值范围:**30**~**900**。'."\n" - ."\n" - .'默认值:**30**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', - ], - ], - 'required' => false, - ], + 'schema' => ['title' => '幂等标识', 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'], ], [ - 'name' => 'Tag', + 'name' => 'DryRun', 'in' => 'query', - '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, - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'CrossZoneEnabled', + 'name' => 'SecurityPolicyId', 'in' => 'query', - 'schema' => [ - 'description' => '服务器组是否开启跨AZ负载均衡。取值:'."\n" - ."\n" - .'- **true**:开启(默认值)'."\n" - ."\n" - .'- **false**:关闭'."\n" - ."\n" - .'> '."\n" - .'> - 基础版实例不支持绑定关闭跨AZ负载均衡的服务器组,仅标准版、WAF 增强版实例支持。'."\n" - .'> - 服务器类型、IP 类型服务器组支持关闭跨AZ负载均衡,函数计算类型不支持。'."\n" - .'> - 关闭跨AZ负载均衡时,不支持开启会话保持。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['title' => '安全策略Id', 'description' => '安全策略ID。', 'type' => 'string', 'required' => true, 'example' => 'sp-n0kn923****'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构体', + 'description' => '返回数据结构', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF******', - ], - 'ServerGroupId' => [ - 'title' => '服务器组id', - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-8ilqs4axp6******', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'QuotaExceeded.ServerGroupsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'Mismatch.ServerGroupSchedulerAndSlowStartEnable', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'QuotaExceeded.SlowStartDuration', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'UnsupportedFeature.SlowStart', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'Mismatch.LoadBalancerEditionAndConnectionDrain', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'QuotaExceeded.ConnectionDrainTimeout', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'UnsupportedFeature.ConnectionDrain', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'NotExist.ResourceGroup', - 'errorMessage' => 'ResourceGroup does not exist.', - ], - [ - 'errorCode' => 'OperationDenied.VpcNotSupportIpv6', - 'errorMessage' => 'The operation is not allowed because of VpcNotSupportIpv6.', - ], - [ - 'errorCode' => 'UnsupportedFeature.FcServerGroup', - 'errorMessage' => 'Server groups of type FC are not supported.', - ], + ['errorCode' => 'IncorrectStatus.SecurityPolicy', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的状态无效。'], + ['errorCode' => 'ResourceInUse.SecurityPolicy', 'errorMessage' => 'The specified resource %s is in use.', 'description' => '自定义安全策略正在使用中。'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Vpc', - 'errorMessage' => 'The specified resource %s is not found.', + 403 => [ + ['errorCode' => 'Forbidden.SecurityPolicy', 'errorMessage' => 'Authentication has failed for SecurityPolicy.', 'description' => '对SecurityPolicy鉴权失败'], + ], + [ + ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '删除安全策略', + 'summary' => '删除指定的自定义安全策略。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\",\\n \\"ServerGroupId\\": \\"sgp-8ilqs4axp6******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n sg-atstuj3rtoptyui****\\n","errorExample":""}]', - 'title' => '创建服务器组', - 'description' => '**CreateServerGroup**接口属于异步接口,即系统返回一个请求ID,但该服务器组尚未创建成功,系统后台的创建任务仍在进行。您可以调用[ListServerGroups](~~213627~~)查询服务器组的创建状态:'."\n" - .'- 当服务器组处于**Creating**状态时,表示服务器组正在创建中。'."\n" - .'- 当服务器组处于**Available**状态时,表示服务器组创建成功。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', ], 'DeleteServerGroup' => [ 'summary' => '删除指定的服务器组。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8333,49 +4793,29 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'ClientToken', 'in' => 'query', 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '幂等参数', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['title' => '幂等参数', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ 'name' => 'ServerGroupId', 'in' => 'query', - 'schema' => [ - 'title' => '服务器组id', - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-cige6j****', - ], + 'schema' => ['title' => '服务器组id', 'description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-cige6j****'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '是否DryRun', - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会删除服务器组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2XX状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['title' => '是否DryRun', 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会删除服务器组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2XX状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -8385,637 +4825,347 @@ 'description' => '返回数据结构体。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => 'job', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], + 'JobId' => ['title' => 'job', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.ServerGroup', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceInUse.ServerGroup', - 'errorMessage' => 'The specified resource %s is in use.', - ], - [ - 'errorCode' => 'ResourceInConfiguring', - 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', - ], + ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '服务器组状态无效。'], + ['errorCode' => 'ResourceInUse.ServerGroup', 'errorMessage' => 'The specified resource %s is in use.', 'description' => '资源%s正在使用中。'], + ['errorCode' => 'ResourceInConfiguring', 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', 'description' => '指定的资源在变更中,请稍后再试'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.ServerGroup', - 'errorMessage' => 'Authentication has failed for ServerGroup.', - ], + ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication has failed for ServerGroup.', 'description' => '对ServerGroup鉴权失败'], ], [ - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', 'title' => '删除服务器组', 'description' => '**DeleteServerGroup**接口属于异步接口,即系统返回一个请求ID,但该服务器组尚未删除成功,系统后台的删除任务仍在进行。您可以调用[ListServerGroups](~~213627~~)查询服务器组的删除状态:'."\n" .'- 当服务器组处于**Deleting**状态时,表示服务器组正在删除中。'."\n" .'- 当查询不到指定的服务器组时,表示服务器组删除成功。', - ], - 'UpdateServerGroupAttribute' => [ - 'summary' => '更新服务器组的配置,例如健康检查、会话保持、名称、调度算法和协议等。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + ], + 'DescribeCapacityReservation' => [ + 'summary' => '查询资源预留。', + 'path' => '', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '165', - 'abilityTreeNodes' => [ - 'FEATUREslbULKWF1', - 'FEATUREslbVRSQEA', - ], + 'abilityTreeNodes' => ['FEATUREslbEUW2CG'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'ServerGroupName', + 'name' => 'LoadBalancerId', 'in' => 'query', + 'schema' => ['title' => '应用型负载均衡实例ID。', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'."\n"], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => 'Acl名称', - 'description' => '服务器组名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字,半角句号(.),下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '请求id', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], + 'CapacityReservationState' => [ + 'title' => '容量预留状态', + 'description' => '容量预留状态。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AvailabilityZone' => ['title' => '资源可用区', 'description' => '可用区。', 'type' => 'string', 'example' => 'cn-hangzhou-k'], + 'EffectiveCapacityUnits' => ['title' => '有效的LCU容量', 'description' => '每小时有效预留LCU数量。', 'type' => 'number', 'format' => 'double', 'example' => '50.0'], + 'Status' => [ + 'description' => '资源预留状态。例如:'."\n" + ."\n" + .'* **Pending**:预留中'."\n" + .'* **Provisioned**:预留完成'."\n" + .'* **Failed**:预留失败'."\n" + .'* **Rebalancing**:重新平衡', + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => 'Provisioned', + ], + 'Reason' => ['description' => '当预留状态为Failed的时候,反馈失败原因。', 'type' => 'string', 'example' => 'INSUFFICIENT_CAPACITY'], + ], + 'description' => '', + ], + ], + 'DecreaseRequestsRemaining' => ['title' => '剩余降配、取消资源预留的次数', 'description' => '剩余降配、取消资源预留的次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'LastModifiedTime' => ['title' => '容量预留最后修改时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'description' => '上次资源预留的修改时间,格式为yyyy-MM-dd HH:mm:ss。', 'type' => 'string', 'example' => '2025-08-22 05:06:58'], + 'MinimumLoadBalancerCapacity' => [ + 'title' => '负载均衡请求的最小预留容量', + 'description' => '负载均衡请求的最小预留容量。', + 'type' => 'object', + 'properties' => [ + 'CapacityUnits' => ['title' => 'LCU数量', 'description' => 'LCU数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + ], + ], + ], ], ], + ], + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询资源预留', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"CapacityReservationState\\": [\\n {\\n \\"AvailabilityZone\\": \\"cn-hangzhou-k\\",\\n \\"EffectiveCapacityUnits\\": 50,\\n \\"Status\\": \\"Provisioned\\",\\n \\"Reason\\": \\"INSUFFICIENT_CAPACITY\\"\\n }\\n ],\\n \\"DecreaseRequestsRemaining\\": 2,\\n \\"LastModifiedTime\\": \\"2025-08-22 05:06:58\\",\\n \\"MinimumLoadBalancerCapacity\\": {\\n \\"CapacityUnits\\": 100\\n }\\n}","type":"json"}]', + ], + 'DescribeRegions' => [ + 'summary' => '查询ALB可用地域。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Scheduler', - 'in' => 'query', - 'schema' => [ - 'title' => '调度策略', - 'description' => '调度算法。取值:'."\n" - ."\n" - .'- **Wrr**:加权轮询,权重值越高的后端服务器,被轮询到的次数(概率)也越高。'."\n" - .'- **Wlc**:加权最小连接数,除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。'."\n" - .'- **Sch**:一致性哈希,相同哈希因子计算结果的请求将会调度到相同的后端服务器。不配置UchConfig参数时,默认哈希因子为源IP,相同源IP地址的请求会分发到同一台后端服务器;配置了UchConfig参数时,哈希因子为URL参数,相同URL参数的请求会分发到同一台后端服务器。', - 'type' => 'string', - 'required' => false, - 'example' => 'Wrr', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '203', + 'abilityTreeNodes' => ['FEATUREslbRXTOWD'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'AcceptLanguage', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******', - ], + 'schema' => ['title' => '语言', 'description' => '支持的语言。取值:'."\n" + ."\n" + .'- **zh-CN**(默认):中文'."\n" + ."\n" + .'- **en-US**:英文'."\n" + ."\n" + .'- **ja**:日文', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'default' => 'zh-CN'], ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会修改资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP `2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'HealthCheckConfig', - 'in' => 'query', - 'style' => 'flat', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '健康检查配置', - 'description' => '健康检查相关配置结构体。', + 'title' => 'Schema of Response', + 'description' => '返回数据的结构。', 'type' => 'object', 'properties' => [ - 'HealthCheckConnectPort' => [ - 'title' => '健康检查端口', - 'description' => '健康检查的后端服务器的端口。'."\n" - ."\n" - .'取值范围:**0**~**65535**。'."\n" - ."\n" - .'设置为**0**时代表使用后端服务器的端口进行健康检查。'."\n" - ."\n" - .'> 当前服务器组**HealthCheckEnabled**为**true**时,该参数配置生效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '65535', - 'minimum' => '0', - 'example' => '80', - ], - 'HealthCheckEnabled' => [ - 'title' => '是否启用健康检查', - 'description' => '是否启用健康检查,取值:'."\n" - .'- **true**:启用'."\n" - .'- **false**:不启用', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'HealthCheckHost' => [ - 'title' => '健康检查域名', - 'description' => '健康检查域名。'."\n" - ."\n" - .'- **使用后端服务器的内网IP**(默认):使用后端服务器的内网IP地址作为健康检查的域名。'."\n" - ."\n" - .'- **指定特定域名**:输入一个域名。'."\n" - ."\n" - .' - 长度限制为1~80个字符。'."\n" - ."\n" - .' - 可包含小写字母、数字、短划线(-)和半角句号(.)。'."\n" - ."\n" - .' - 至少包含一个半角句号(.),半角句号(.)不能出现在开头或结尾。'."\n" - ."\n" - .' - 最右侧的域标签,只能包含字母,不能包含数字或短划线(-)。'."\n" - ."\n" - .' - 短划线(-)不能出现在开头或结尾。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**设置为**HTTP**、**HTTPS**或**gRPC**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - 'HealthCheckCodes' => [ - 'title' => '健康检查正常的状态码', - 'description' => '健康检查正常的状态码列表。', + 'Regions' => [ + 'title' => 'Region列表', + 'description' => '地域列表。', 'type' => 'array', 'items' => [ - 'description' => '健康检查正常的状态码。'."\n" - ."\n" - .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http\\_2xx**(默认值)、 **http\\_3xx**、**http\\_4xx**和**http\\_5xx**。多个状态码用半角逗号(,)分隔。'."\n" - ."\n" - .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**,默认值:**0**。支持范围输入,最多支持20个范围值。多个范围值使用半角逗号(,)隔开。'."\n" - ."\n" - .'> 当前服务器组**HealthCheckEnabled**为**true**且**HealthCheckProtocol**设置为**HTTP**或**HTTPS**或**gRPC**时该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => '200', + 'description' => '地域信息结构。', + 'type' => 'object', + 'properties' => [ + 'LocalName' => ['title' => '名称', 'description' => '地域名称。', 'type' => 'string', 'example' => 'China (Hangzhou)'], + 'RegionEndpoint' => ['title' => 'endpoint', 'description' => '地域服务的Endpoint地址。', 'type' => 'string', 'example' => 'alb.cn-hangzhou.aliyuncs.com'], + 'RegionId' => ['title' => 'RegionId', 'description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + ], ], - 'required' => false, - ], - 'HealthCheckHttpVersion' => [ - 'title' => '健康检查HTTP协议版本', - 'description' => '健康检查HTTP协议版本。取值:'."\n" - ."\n" - .'- **HTTP1.0**'."\n" - .'- **HTTP1.1**'."\n" - ."\n" - .'> 当前服务器组**HealthCheckEnabled**为true且**HealthCheckProtocol**设置为**HTTP**或**HTTPS**时该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP1.1', - ], - 'HealthCheckInterval' => [ - 'title' => '健康检查间隔', - 'description' => '健康检查的时间间隔。单位:秒。 '."\n" - ."\n" - .'取值范围:**1**~**50**。'."\n" - ."\n" - .'> 当前服务器组**HealthCheckEnabled**为**true**时,该参数配置生效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '5', - ], - 'HealthCheckMethod' => [ - 'title' => '健康检查方法', - 'description' => '健康检查方法。取值:'."\n" - ."\n" - .'- **GET**:如果响应报文长度超过8K,会被截断,但不会影响健康检查结果的判定。'."\n" - ."\n" - .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" - ."\n" - .'- **HEAD**:HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" - ."\n" - .'> 当前服务器组**HealthCheckEnabled**为true且**HealthCheckProtocol**设置为**HTTP**或**HTTPS**或**gRPC**时该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'HEAD', - ], - 'HealthCheckPath' => [ - 'title' => '健康检查Path', - 'description' => '健康检查的转发规则路径。'."\n" - ."\n" - .'长度限制为1~80,只能使用字母、数字、字符`-/.%?#&=`以及扩展字符`_;~!()*[]@$^:\',+`。 URL开头必须为`/`。'."\n" - ."\n" - .'> 当前服务器组**HealthCheckEnabled**为**true**且**HealthCheckProtocol**设置为**HTTP**或**HTTPS**时该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => '/test/index.html', - ], - 'HealthCheckProtocol' => [ - 'title' => '健康检查协议类型', - 'description' => '健康检查协议。取值:'."\n" - ."\n" - .'- **HTTP**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" - ."\n" - .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" - ."\n" - .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" - ."\n" - .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP', - ], - 'HealthCheckTimeout' => [ - 'title' => '健康检查超时时间', - 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败。单位:秒。'."\n" - ."\n" - .'取值范围:**1**~**300**。'."\n" - ."\n" - .'> 当前服务器组**HealthCheckEnabled**为**true**时,该参数配置生效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '300', - 'minimum' => '1', - 'example' => '3', - ], - 'HealthyThreshold' => [ - 'title' => '健康检查成功判定阈值', - 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**fail**判定为**success**。'."\n" - ."\n" - .'取值范围:**2**~**10**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10', - 'minimum' => '2', - 'example' => '4', - ], - 'UnhealthyThreshold' => [ - 'title' => '健康检查不成功判定阈值', - 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**success**判定为**fail**。'."\n" - ."\n" - .'取值范围:**2**~**10**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10', - 'minimum' => '2', - 'example' => '4', ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'], ], - 'required' => false, ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"China (Hangzhou)\\",\\n \\"RegionEndpoint\\": \\"alb.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ],\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 华东1(杭州)\\n alb.cn-hangzhou.aliyuncs.com\\n cn-hangzhou\\n \\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', + 'title' => '查询地域', + 'changeSet' => [], + 'ramActions' => [], + ], + 'DescribeZones' => [ + 'summary' => '查询ALB一个地域下的可用区列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'StickySessionConfig', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '204', + 'abilityTreeNodes' => ['FEATUREslbRXTOWD'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'AcceptLanguage', 'in' => 'query', - 'style' => 'flat', + 'schema' => ['description' => '支持的语言。取值:'."\n" + ."\n" + .'- **zh-CN**(默认):中文'."\n" + ."\n" + .'- **en-US**:英文'."\n" + ."\n" + .'- **ja**:日文', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'default' => 'zh-CN'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '会话保持配置', - 'description' => '会话保持配置结构体', + 'title' => 'Schema of Response', + 'description' => '返回数据的结构。', 'type' => 'object', 'properties' => [ - 'Cookie' => [ - 'title' => '服务器上配置的Cookie', - 'description' => '服务器上配置的Cookie。'."\n" - ."\n" - .'长度为1~200个字符,只能包含ASCII英文字母和数字字符,不能包含半角逗号(,)、半角分号(;)或空格,也不能以美元符号($)开头。'."\n" - ."\n" - .'> 当前服务器组**StickySessionEnabled**为**true**且**StickySessionType**配置为**Server**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'B490B5EBF6F3CD402E515D22B******', - ], - 'CookieTimeout' => [ - 'title' => '服务器上配置的Cookie', - 'description' => 'Cookie超时时间。单位:秒。'."\n" - ."\n" - .'取值范围:**1**~**86400**。'."\n" - ."\n" - .'>当前服务器组**StickySessionEnabled**为**true**且**StickySessionType**配置为**Insert**时,该参数生效。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '86400', - 'minimum' => '1', - 'example' => '1000', - ], - 'StickySessionEnabled' => [ - 'title' => '是否启用会话保持', - 'description' => '是否启用会话保持。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'StickySessionType' => [ - 'title' => '会话保持类型', - 'description' => 'Cookie的处理方式。取值:'."\n" - ."\n" - .'- **Insert**:植入Cookie。'."\n" - .'客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP或HTTPS响应报文中插入SERVERID),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。'."\n" - .'- **Server**:重写Cookie。'."\n" - .'负载均衡发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器。'."\n" - ."\n" - .'> 当前服务器组**StickySessionEnabled**为**true**时,该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'Insert', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'], + 'Zones' => [ + 'title' => '可用区列表', + 'description' => '可用区列表。', + 'type' => 'array', + 'items' => [ + 'description' => '可用区信息结构。', + 'type' => 'object', + 'properties' => [ + 'LocalName' => ['title' => '可用区名称', 'description' => '可用区名称。', 'type' => 'string', 'example' => 'Hangzhou Zone G'], + 'ZoneId' => ['title' => '可用区id', 'description' => '可用区ID。', 'type' => 'string', 'example' => 'cn-hangzhou-g'], + ], + ], ], ], - 'required' => false, - ], - ], - [ - 'name' => 'ServerGroupId', - 'in' => 'query', - 'schema' => [ - 'title' => '服务器组Id', - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-atstuj3rtop****', ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\",\\n \\"Zones\\": [\\n {\\n \\"LocalName\\": \\"Hangzhou Zone G\\",\\n \\"ZoneId\\": \\"cn-hangzhou-g\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n \\n 华东 1 可用区G\\n cn-hangzhou-g\\n \\n","errorExample":""}]', + 'title' => '查询可用区', + 'changeSet' => [], + 'ramActions' => [], + ], + 'DetachCommonBandwidthPackageFromLoadBalancer' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'UpstreamKeepaliveEnabled', - 'in' => 'query', - 'schema' => [ - 'title' => '是否开启后端长链接', - 'description' => '是否开启后端长连接。'."\n" - ."\n" - .'- **true**:开启'."\n" - ."\n" - .'- **false**:不开启。', - 'type' => 'boolean', - 'required' => false, - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'ServiceName', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '服务器名称', - 'description' => '仅适用于ALB Ingress场景,表示服务器组对应的`K8s Service`名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test2', - ], + 'allowEmptyValue' => false, + 'schema' => ['title' => '幂等参数', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266******'], ], [ - 'name' => 'UchConfig', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => 'url一致性hash参数配置', - 'description' => 'url一致性hash参数配置。', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'title' => '参数类型', - 'description' => '参数类型。只支持输入QueryString。', - 'type' => 'string', - 'required' => true, - 'example' => 'QueryString', - ], - 'Value' => [ - 'title' => '一致性hash参数值', - 'description' => '一致性hash参数值。', - 'type' => 'string', - 'required' => true, - 'example' => 'abc', - ], - ], - 'required' => false, - ], + 'schema' => ['title' => '地域ID', 'description' => '应用型负载均衡实例所在的地域ID。 '."\n" + ."\n" + .'您可以通过调用[DescribeRegions](~~36063~~)接口获取地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'ConnectionDrainConfig', + 'name' => 'LoadBalancerId', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '连接优雅中断相关配置。'."\n" - ."\n" - .'开启连接优雅中断,在移除后端服务器或者健康检查失败后,负载均衡使现有连接在一定时间内正常传输。'."\n" - .'> '."\n" - .'> - 基础版实例不支持开启连接优雅中断,仅标准版、WAF增强版实例支持。'."\n" - .'> - 服务器类型、IP类型服务器组支持连接优雅中断,函数计算类型不支持。', - 'type' => 'object', - 'properties' => [ - 'ConnectionDrainEnabled' => [ - 'description' => '是否开启连接优雅中断。'."\n" - ."\n" - .'- **true**:开启'."\n" - .'- **false**:关闭', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'ConnectionDrainTimeout' => [ - 'description' => '连接优雅中断超时时间。'."\n" - ."\n" - .'取值范围:**0**~**900**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '300', - ], - ], - 'required' => false, - ], + 'schema' => ['title' => '实例ID', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-d676fho813rmu3****'], ], [ - 'name' => 'SlowStartConfig', + 'name' => 'BandwidthPackageId', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '慢启动配置', - 'description' => '慢启动相关配置。'."\n" - ."\n" - .'开启慢启动后,将会在设定的时间段内对新添加到后端服务器组的后端服务器进行预热,转发到该服务器的请求数量线性增加。'."\n" - .'>'."\n" - .'> - 基础版实例不支持开启慢启动,仅标准版、WAF增强版实例支持。'."\n" - .'> - 服务器类型、IP类型服务器组支持配置慢启动,函数计算类型不支持。'."\n" - .'> - 慢启动仅在后端调度算法是加权轮询算法时可开启。', - 'type' => 'object', - 'properties' => [ - 'SlowStartEnabled' => [ - 'title' => '是否开启慢启动'."\n", - 'description' => '是否开启慢启动。'."\n" - ."\n" - .'- **true**:开启'."\n" - .'- **false**:关闭', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'SlowStartDuration' => [ - 'title' => '慢启动时间', - 'description' => '慢启动持续时间。'."\n" - ."\n" - .'取值范围:**30**~**900**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', - ], - ], - 'required' => false, - ], + 'schema' => ['title' => '带宽包ID', 'description' => '移除的共享带宽包ID。', 'type' => 'string', 'required' => true, 'example' => 'cbwp-bp1pzf0ym72pu3y76****'], ], [ - 'name' => 'CrossZoneEnabled', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => '服务器组是否开启跨AZ负载均衡。取值:'."\n" - ."\n" - .'- **true**:开启(默认值)'."\n" - ."\n" - .'- **false**:关闭'."\n" - ."\n" - .'> '."\n" - .'> - 基础版实例不支持绑定关闭跨AZ负载均衡的服务器组,仅标准版、WAF 增强版实例支持。'."\n" - .'> - 服务器类型、IP 类型服务器组支持关闭跨AZ负载均衡,函数计算类型不支持。'."\n" - .'> - 关闭跨AZ负载均衡时,不支持开启会话保持。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['title' => '预校验', 'description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会将共享带宽包从负载均衡实例中移除。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构组', + 'description' => '将共享带宽包从负载均衡实例中移除。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3*****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '2EF39708-974B-5E74-AFF5-344******'], + 'JobId' => ['title' => '异步任务ID', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.ServerGroup', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'Mismatch.LoadBalancerEditionAndConnectionDrain', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'Mismatch.ServerGroupSchedulerAndSlowStartEnable', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'QuotaExceeded.ConnectionDrainTimeout', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'UnsupportedFeature.ConnectionDrain', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'QuotaExceeded.SlowStartDuration', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'UnsupportedFeature.SlowStart', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'OperationDenied.UpstreamKeepaliveDisabled', - 'errorMessage' => 'The operation is not allowed because of UpstreamKeepaliveDisabled.', - ], - [ - 'errorCode' => 'OperationDenied.UpstreamKeepaliveEnabled', - 'errorMessage' => 'The operation is not allowed because of UpstreamKeepaliveEnabled.', - ], - [ - 'errorCode' => 'CloseUpstreamKeepaliveNotSupport', - 'errorMessage' => 'The param of UpstreamKeepalive is not Support.', - ], + ['errorCode' => 'IncorrectBusinessStatus.CommonBandwidthPackage', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'IncorrectStatus.CommonBandwidthPackage', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的状态无效。'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '实例解绑共享带宽包', + 'summary' => '将共享带宽包从负载均衡实例中移除。', + 'description' => '**DetachCommonBandwidthPackageFromLoadBalancer**接口属于异步接口,即系统返回一个请求ID,但该负载均衡实例尚未解除关联共享带宽包,系统后台的解除任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214359~~)查询共享带宽包的解除状态:'."\n" + .'- 当负载均衡实例处于**Configuring**状态时,表示共享带宽包正在解除中。'."\n" + .'- 当负载均衡实例处于**Active**状态时,表示共享带宽包解除成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:DetachCommonBandwidthPackageFromLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3*****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '更新服务器组配置', - 'description' => '**UpdateServerGroupAttribute**接口属于异步接口,即系统返回一个请求ID,但该服务器组的配置尚未更新成功,系统后台的更新任务仍在进行。您可以调用[ListServerGroups](~~213627~~)查询服务器组的配置的更新状态:'."\n" - .'- 当服务器组的配置处于**Configuring**状态时,表示服务器组的配置正在更新中。'."\n" - .'- 当服务器组的配置处于**Available**状态时,表示服务器组的配置更新成功。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2EF39708-974B-5E74-AFF5-344******\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2EF39708-974B-5E74-AFF5-3445263035A8\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', ], - 'UpdateServerGroupServersAttribute' => [ - 'summary' => '更新服务器组中后端服务器的权重和描述等配置。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DisableDeletionProtection' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9023,1085 +5173,337 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREslbULKWF1', - ], - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'ServerGroupId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '后端服务器Id', - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-atstuj3rtop****', - ], - ], - [ - 'name' => 'Servers', - 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'title' => '后端服务器列表', - 'description' => '后端服务器列表', - 'type' => 'array', - 'items' => [ - 'title' => '后端服务器', - 'description' => '后端服务器', - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'title' => '后端服务器描述', - 'description' => '后端服务器描述', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'Port' => [ - 'title' => '后端端口号', - 'description' => '后端端口号', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'docRequired' => false, - 'example' => '80', - ], - 'ServerId' => [ - 'title' => '后端服务器id', - 'description' => '后端服务器id', - 'type' => 'string', - 'required' => false, - 'example' => 'ecs-123', - ], - 'ServerIp' => [ - 'title' => '后端服务器ip', - 'description' => '后端服务器ip', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.1.1', - ], - 'ServerType' => [ - 'title' => '后端服务器类型', - 'description' => '后端服务器类型', - 'type' => 'string', - 'required' => true, - 'docRequired' => false, - 'example' => 'ecs', - ], - 'Weight' => [ - 'title' => '后端服务器权重', - 'description' => '后端服务器权重', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 200, - 'minItems' => 1, - ], + 'schema' => ['title' => '幂等标识', 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '幂等Token', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '593B0448-D13E-4C56-AC0D-FDF0******', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式和业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'DryRun', + 'name' => 'ResourceId', 'in' => 'query', - 'schema' => [ - 'title' => 'dryRun', - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会更新服务器组中后端服务器的权重和描述等配置信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '实例id', 'description' => '资源ID,此处为ALB实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构体', + 'description' => '关闭删除保护。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3*****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.ServerGroup', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceInConfiguring', - 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', - ], + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.ServerGroup', - 'errorMessage' => 'Authentication has failed for ServerGroup.', - ], + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], ], [ - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.BackendServer', - 'errorMessage' => 'The specified resource %s is not found.', + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '关闭删除保护', + 'summary' => '关闭指定负载均衡实例的删除保护。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:DisableDeletionProtection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3*****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '更新后端服务器配置', - 'description' => '**UpdateServerGroupServersAttribute**接口属于异步接口,即系统返回一个请求ID,但该后端服务器配置信息尚未添加成功,系统后台的添加任务仍在进行。'."\n" - .'1. 您可以调用[ListServerGroups](~~213627~~)查询服务器组状态:'."\n" - .' - 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n" - .' - 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n" - ."\n" - .'2. 您可以调用[ListServerGroupServers](~~213628~~)查询后端服务器状态:'."\n" - .' - 当后端服务器处于**Configuring**状态时,表示后端服务器正在变配中。'."\n" - .' - 当后端服务器处于**Available**状态时,表示后端服务器运行中。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', ], - 'ListServerGroups' => [ - 'summary' => '查询服务器组列表。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DisableLoadBalancerAccessLog' => [ + 'summary' => '关闭指定负载均衡实例的访问日志。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '166', - 'abilityTreeNodes' => [ - 'FEATUREslbULKWF1', - 'FEATUREslbVRSQEA', - ], - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'ServerGroupIds', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '服务器组Id列表', - 'description' => '服务器组ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '服务器组ID,一次最多支持查询20个服务器组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-atstuj3rtop****', - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['title' => '幂等标识', 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。'."\n" + ."\n" + .'>若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'], ], [ - 'name' => 'ServerGroupNames', + 'name' => 'DryRun', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '服务器组名称', - 'description' => '服务器组名称列表,最多10个。', - 'type' => 'array', - 'items' => [ - 'description' => '服务器组名称,一次最多支持查询10个服务器组名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'Group3', - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'LoadBalancerId', 'in' => 'query', + 'schema' => ['title' => '实例id', 'description' => '负载均衡实例ID', 'type' => 'string', 'required' => true, 'example' => 'alb-bp1b6c719dfa08ex*****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '资源组ID', - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', + 'title' => 'Schema of Response', + 'description' => '返回数据结构', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF******'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.AccessLogDisabled', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,实例未开启访问日志。'."\n"], + ['errorCode' => 'ResourceInConfiguring.LoadBalancer', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => '指定的资源%s正在配置中,请稍后再试。'], + ], + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ], [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXG****', + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '关闭访问日志', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:DisableLoadBalancerAccessLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', + ], + 'DisableLoadBalancerIpv6Internet' => [ + 'summary' => '将双栈应用型负载均衡实例的IPv6公网变更为IPv6私网。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'title' => '查询数量', - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'VpcId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => 'VpcId', - 'description' => 'VPC实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp15zckdt37pq72zv****', - ], + 'allowEmptyValue' => false, + 'schema' => ['title' => '幂等参数', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'], ], [ - 'name' => 'ServerGroupType', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '服务器组类型', - 'description' => '服务器组类型。取值:'."\n" - ."\n" - .'- **Instance**:服务器类型,包括Ecs、Eni、Eci实例。'."\n" - ."\n" - .'- **Ip**:IP地址类型。'."\n" - ."\n" - .'- **Fc**:函数计算类型。'."\n" - ."\n" - .'- 不填则查询所有类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'Instance', - ], + 'schema' => ['title' => '预校验', 'description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会关闭应用型负载均衡实例的IPv6公网。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'Tag', + 'name' => 'LoadBalancerId', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => 'Tag列表', - 'description' => '服务器组绑定的标签列表。一次请求中,绑定的标签列表中最多支持10个标签。', - 'type' => 'array', - 'items' => [ - 'description' => '服务器组绑定的标签,单次支持传入10个标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '标签键', - 'description' => '标签键。最多支持10个标签键。'."\n" - ."\n" - .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - 'Value' => [ - 'title' => '标签值', - 'description' => '标签值。最多支持10个标签值。'."\n" - ."\n" - .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - ], - 'required' => false, - ], - 'required' => false, - 'example' => 'Instance', - ], + 'schema' => ['title' => '实例ID', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-chugtlrj1iusjh****'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => ' 返回数据结构体。', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'MaxResults' => [ - 'title' => '本次查询返回记录数量', - 'description' => '分批次查询时每次显示的条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'NextToken' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'caeba0bbb2be03f8****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876******', - ], - 'ServerGroups' => [ - 'title' => '服务器组', - 'description' => '后端服务器组列表。', - 'type' => 'array', - 'items' => [ - 'description' => '后端服务器组列表。', - 'type' => 'object', - 'properties' => [ - 'HealthCheckConfig' => [ - 'title' => '健康检查配置', - 'description' => '健康检查配置。', - 'type' => 'object', - 'properties' => [ - 'HealthCheckConnectPort' => [ - 'title' => '端口', - 'description' => '健康检查的后端服务器的端口。取值范围:**0**~**65535**。'."\n" - ."\n" - .'返回为**0**时代表使用后端服务器的端口进行健康检查。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'HealthCheckEnabled' => [ - 'title' => '是否启用健康检查', - 'description' => '是否启用健康检查,取值:'."\n" - .'- **true**:启用。'."\n" - .'- **false**:不启用。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'HealthCheckHost' => [ - 'title' => '域名', - 'description' => '健康检查域名。'."\n" - ."\n" - .'- **使用后端服务器的内网IP**(默认):使用后端服务器的内网IP地址作为健康检查的域名。'."\n" - ."\n" - .'- **指定特定域名**:输入一个域名。'."\n" - ."\n" - .' - 长度限制为1~80个字符。'."\n" - ."\n" - .' - 可包含小写字母、数字、短划线(-)和半角句号(.)。'."\n" - ."\n" - .' - 至少包含一个半角句号(.),半角句号(.)不能出现在开头或结尾。'."\n" - ."\n" - .' - 最右侧的域标签,只能包含字母,不能包含数字或短划线(-)。'."\n" - ."\n" - .' - 短划线(-)不能出现在开头或结尾。'."\n" - ."\n" - .'> '."\n" - .'> 只有HealthCheckProtocol设置为HTTP、HTTPS或gRPC时,该参数生效。', - 'type' => 'string', - 'example' => 'www.example.com', - ], - 'HealthCheckCodes' => [ - 'title' => '状态码', - 'description' => '健康检查正常的状态码列表。', - 'type' => 'array', - 'items' => [ - 'description' => '健康检查正常的状态码。'."\n" - ."\n" - .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http\\_2xx**、 **http\\_3xx**、**http\\_4xx**和**http\\_5xx**。多个状态码用半角逗号(,)分隔。'."\n" - ."\n" - .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**。支持范围输入,最多支持20个范围值,多个范围值使用半角逗号(,)隔开。'."\n" - ."\n" - .'> **HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时,该参数生效。', - 'type' => 'string', - 'example' => 'http_2xx', - ], - ], - 'HealthCheckHttpVersion' => [ - 'title' => '版本', - 'description' => '健康检查HTTP协议版本。'."\n" - ."\n" - .'取值:**HTTP1.0**或**HTTP1.1**。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**设置为**HTTP**或**HTTPS**时,该参数生效。', - 'type' => 'string', - 'example' => 'HTTP1.1', - ], - 'HealthCheckInterval' => [ - 'title' => '间隔时间', - 'description' => '健康检查的时间间隔。单位:秒。取值范围:**1**~**50**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'HealthCheckMethod' => [ - 'title' => '方法', - 'description' => '健康检查方法。取值:'."\n" - ."\n" - .'- **GET**:如果响应报文长度超过8K,会被截断,但不会影响健康检查结果的判定。'."\n" - ."\n" - .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" - ."\n" - .'- **HEAD**:HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" - ."\n\n" - .'> 只有**HealthCheckProtocol**设置为**HTTP**或**HTTPS**或**gRPC**时,该参数生效。', - 'type' => 'string', - 'example' => 'HEAD', - ], - 'HealthCheckPath' => [ - 'title' => 'uri', - 'description' => '健康检查的转发规则路径。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**设置为**HTTP**或**HTTPS**时,该参数生效。', - 'type' => 'string', - 'example' => '/test/index.html', - ], - 'HealthCheckProtocol' => [ - 'title' => '协议', - 'description' => '健康检查协议。取值:'."\n" - ."\n" - .'- **HTTP**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" - ."\n" - .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" - ."\n" - .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" - ."\n" - .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', - 'type' => 'string', - 'example' => 'HTTP', - ], - 'HealthCheckTimeout' => [ - 'title' => '超时时间', - 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端服务器在指定的时间内没有正确响应,则判定为健康检查失败。单位:秒。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'HealthyThreshold' => [ - 'title' => '健康阈值', - 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'UnhealthyThreshold' => [ - 'title' => '不健康阈值', - 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - ], - ], - 'Protocol' => [ - 'title' => '服务器组协议', - 'description' => '后端协议类型。取值:'."\n" - ."\n" - .'- **HTTP**:支持关联HTTPS、HTTP和QUIC监听。'."\n" - .'- **HTTPS**:支持关联HTTPS监听。'."\n" - ."\n" - .'- **GRPC**:关联HTTPS和QUIC监听。'."\n", - 'type' => 'string', - 'example' => 'HTTP', - ], - 'RelatedLoadBalancerIds' => [ - 'title' => '关联的实例id', - 'description' => '关联的实例id', - 'type' => 'array', - 'items' => [ - 'description' => '关联的负载均衡实例id', - 'type' => 'string', - 'example' => 'alb-n5qw04uq8savfe****', - ], - ], - 'ResourceGroupId' => [ - 'title' => '资源组id', - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - 'Scheduler' => [ - 'title' => '调度策略', - 'description' => '调度算法。取值:'."\n" - ."\n" - .'- **Wrr**:加权轮询,权重值越高的后端服务器,被轮询到的概率也越高。'."\n" - .'- **Wlc**:加权最小连接数,除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的概率也越高。'."\n" - .'- **Sch**:一致性哈希,相同哈希因子计算结果的请求将会调度到相同的后端服务器。不配置UchConfig参数时,默认哈希因子为源IP,相同源IP地址的请求会分发到同一台后端服务器;配置了UchConfig参数时,哈希因子为URL参数,相同URL参数的请求会分发到同一台后端服务器。', - 'type' => 'string', - 'example' => 'Wrr', - ], - 'ServerGroupId' => [ - 'title' => '服务器组Id', - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-cige6j****', - ], - 'ServerGroupName' => [ - 'title' => '服务器组名称', - 'description' => '服务器组名称。', - 'type' => 'string', - 'example' => 'Group3', - ], - 'ServerGroupStatus' => [ - 'title' => '服务器组状态', - 'description' => '服务器组状态。取值:'."\n" - .'- **Creating**:创建中。'."\n" - ."\n" - .'- **Available**:可用。'."\n" - ."\n" - .'- **Configuring**:变配中。', - 'type' => 'string', - 'example' => 'Available', - ], - 'ServerGroupType' => [ - 'title' => '服务器组类型', - 'description' => '服务器组类型。取值:'."\n" - ."\n" - .'- **Instance**:服务器类型,包括Ecs、Eni、Eci实例。'."\n" - ."\n" - .'- **Ip**:IP类型。'."\n" - ."\n" - .'- **Fc**:函数计算类型。', - 'type' => 'string', - 'example' => 'Instance', - ], - 'StickySessionConfig' => [ - 'title' => '会话保持配置', - 'description' => '会话保持配置结构体。', - 'type' => 'object', - 'properties' => [ - 'Cookie' => [ - 'title' => 'Cookie', - 'description' => '服务器上配置的Cookie。', - 'type' => 'string', - 'example' => 'B490B5EBF6F3CD402E515D22BCDA****', - ], - 'CookieTimeout' => [ - 'title' => 'Cookie超时时间', - 'description' => 'Cookie超时时间。单位:秒。取值范围:**1**~**86400**。'."\n" - ."\n" - .'> 当**StickySessionEnabled**为**true**且**StickySessionType**为**Insert**时,该参数生效。'."\n" - ."\n\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'StickySessionEnabled' => [ - 'title' => '是否开启会话保持', - 'description' => '是否启用会话保持。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**:关闭。'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'StickySessionType' => [ - 'title' => '会话保持类型', - 'description' => 'Cookie的处理方式。取值:'."\n" - ."\n" - .'- **Insert**:植入Cookie。'."\n" - .'客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP或HTTPS响应报文中插入SERVERID),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。'."\n" - .'- **Server**:重写Cookie。'."\n" - .'负载均衡发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器。', - 'type' => 'string', - 'example' => 'Insert', - ], - ], - ], - 'VpcId' => [ - 'title' => '服务器组所在VpcId', - 'description' => 'VPC实例ID。', - 'type' => 'string', - 'example' => 'vpc-bp15zckdt37pq72zv****', - ], - 'Tags' => [ - 'title' => '标签列表', - 'description' => '服务器组绑定的标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '服务器组绑定的标签列表。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '标签键', - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'Test', - ], - 'Value' => [ - 'title' => '标签值', - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'Test', - ], - ], - ], - ], - 'ConfigManagedEnabled' => [ - 'title' => '是否开启配置管理', - 'description' => '是否开启配置管理。取值:'."\n" - .'- **true**:开启。'."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'UpstreamKeepaliveEnabled' => [ - 'title' => '是否开启后端长链接', - 'description' => '是否开启后端长链接。取值:'."\n" - .'- **true**:开启。'."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Ipv6Enabled' => [ - 'title' => '是否支持Ipv6', - 'description' => '是否支持IPv6。取值:'."\n" - .'- **true**:支持。'."\n" - .'- **false**:不支持。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ServerCount' => [ - 'title' => '服务器组内服务器数量', - 'description' => '服务器组内服务器数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ServiceName' => [ - 'title' => '服务器名称', - 'description' => '服务名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'UchConfig' => [ - 'title' => 'url一致性hash参数配置', - 'description' => 'url一致性hash参数配置。', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'title' => '参数类型', - 'description' => '参数类型。只能填QueryString。', - 'type' => 'string', - 'example' => 'QueryString', - ], - 'Value' => [ - 'title' => '一致性hash参数值', - 'description' => '一致性hash参数值。', - 'type' => 'string', - 'example' => 'abc', - ], - ], - ], - 'CreateTime' => [ - 'description' => '资源创建时间。', - 'type' => 'string', - 'example' => '2022-07-02T02:49:05Z', - ], - 'ConnectionDrainConfig' => [ - 'description' => '连接优雅中断相关配置。'."\n" - ."\n" - .'开启连接优雅中断,在移除后端服务器或者健康检查失败后,负载均衡使现有连接在一定时间内正常传输。'."\n" - .'>'."\n" - .'> - 基础版实例不支持开启连接优雅中断,仅标准版、WAF增强版实例支持。'."\n" - .'> - 服务器类型、IP类型服务器组支持连接优雅中断,函数计算类型不支持。', - 'type' => 'object', - 'properties' => [ - 'ConnectionDrainEnabled' => [ - 'description' => '是否开启连接优雅中断。'."\n" - ."\n" - .'- **true**:开启'."\n" - .'- **false**:关闭', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ConnectionDrainTimeout' => [ - 'description' => '连接优雅中断超时时间。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '300', - ], - ], - ], - 'SlowStartConfig' => [ - 'title' => '慢启动配置', - 'description' => '慢启动相关配置。'."\n" - ."\n" - .'开启慢启动后,将会在设定的时间段内对新添加到后端服务器组的后端服务器进行预热,转发到该服务器的请求数量线性增加。'."\n" - .'>'."\n" - .'> - 基础版实例不支持开启慢启动,仅标准版、WAF增强版实例支持。'."\n" - .'> - 服务器类型、IP类型服务器组支持配置慢启动,函数计算类型不支持。'."\n" - .'> - 慢启动仅在后端调度算法是加权轮询算法时可开启。', - 'type' => 'object', - 'properties' => [ - 'SlowStartEnabled' => [ - 'description' => '是否开启慢启动。'."\n" - ."\n" - .'- **true**:开启'."\n" - .'- **false**:关闭', - 'type' => 'boolean', - 'example' => 'false', - ], - 'SlowStartDuration' => [ - 'description' => '慢启动持续时间。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - ], - ], - 'CrossZoneEnabled' => [ - 'description' => '服务器组是否开启跨AZ负载均衡。取值:'."\n" - ."\n" - .'- **true**:开启(默认值)'."\n" - ."\n" - .'- **false**:关闭', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - 'TotalCount' => [ - 'title' => '总记录数', - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '7D866E37-1123-5160-AFF1-BDAF5EB86A8A'], + 'JobId' => ['title' => '异步任务ID', 'description' => '异步任务ID。', 'type' => 'string', 'example' => 'd12871a6-ebb2-41f3-8d74-d9f452bb****'], ], ], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"caeba0bbb2be03f8****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\",\\n \\"ServerGroups\\": [\\n {\\n \\"HealthCheckConfig\\": {\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckEnabled\\": true,\\n \\"HealthCheckHost\\": \\"www.example.com\\",\\n \\"HealthCheckCodes\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.1\\",\\n \\"HealthCheckInterval\\": 5,\\n \\"HealthCheckMethod\\": \\"HEAD\\",\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"HTTP\\",\\n \\"HealthCheckTimeout\\": 3,\\n \\"HealthyThreshold\\": 4,\\n \\"UnhealthyThreshold\\": 4\\n },\\n \\"Protocol\\": \\"HTTP\\",\\n \\"RelatedLoadBalancerIds\\": [\\n \\"alb-n5qw04uq8savfe****\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Scheduler\\": \\"Wrr\\",\\n \\"ServerGroupId\\": \\"sgp-cige6j****\\",\\n \\"ServerGroupName\\": \\"Group3\\",\\n \\"ServerGroupStatus\\": \\"Available\\",\\n \\"ServerGroupType\\": \\"Instance\\",\\n \\"StickySessionConfig\\": {\\n \\"Cookie\\": \\"B490B5EBF6F3CD402E515D22BCDA****\\",\\n \\"CookieTimeout\\": 1000,\\n \\"StickySessionEnabled\\": false,\\n \\"StickySessionType\\": \\"Insert\\"\\n },\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"ConfigManagedEnabled\\": false,\\n \\"UpstreamKeepaliveEnabled\\": false,\\n \\"Ipv6Enabled\\": false,\\n \\"ServerCount\\": 1,\\n \\"ServiceName\\": \\"test\\",\\n \\"UchConfig\\": {\\n \\"Type\\": \\"QueryString\\",\\n \\"Value\\": \\"abc\\"\\n },\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"ConnectionDrainConfig\\": {\\n \\"ConnectionDrainEnabled\\": false,\\n \\"ConnectionDrainTimeout\\": 300\\n },\\n \\"SlowStartConfig\\": {\\n \\"SlowStartEnabled\\": false,\\n \\"SlowStartDuration\\": 30\\n },\\n \\"CrossZoneEnabled\\": true\\n }\\n ],\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n 50\\n caeba0bbb2be03f8****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n \\n \\n 80\\n true\\n www.example.com\\n http_2xx\\n HTTP1.1\\n 5\\n HEAD\\n /test/index.html\\n HTTP\\n 3\\n 4\\n 4\\n \\n HTTP\\n rg-atstuj3rtop****\\n Wrr\\n sgp-cige6j****\\n Group3\\n Available\\n Instance\\n \\n B490B5EBF6F3CD402E515D22BCDA****\\n 1000\\n false\\n Insert\\n \\n vpc-bp15zckdt37pq72zv****\\n \\n Test\\n Test\\n \\n false\\n false\\n false\\n 1\\n test\\n 2023-03-21T07:43:10Z\\n \\n 1000\\n","errorExample":""}]', - 'title' => '查询服务器组', - ], - 'ListServerGroupServers' => [ - 'summary' => '查询服务器组中的服务器。', - 'methods' => [ - 'get', - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'], + ['errorCode' => 'OperationDenied.NonDualStackInstance', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'], + ['errorCode' => 'OperationDenied.Ipv6IntranetInstance', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'], + ], + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'title' => '关闭负载均衡IPv6公网', + 'description' => '### 前提条件'."\n" + ."\n" + .'已创建双栈ALB实例,调用[CreateLoadBalancer](~~214358~~)接口将**AddressIpVersion**设置为**DualStack**。'."\n" + ."\n" + .'> **AddressIpVersion**设置为**DualStack**时:'."\n" + .' - **AddressType**设置为**Internet**表示ALB实例拥有IPv4公网和IPv6私网访问能力。'."\n" + .' - **AddressType**设置为**Intranet**表示ALB实例拥有IPv4私网和IPv6私网访问能力。'."\n" + ."\n" + .'### 使用说明'."\n" + ."\n" + .'- 变更成功后,**Ipv6AddressType**类型将变为**Intranet**,ALB实例IPv6地址即具备私网能力,后续该ALB实例下变配或者弹性产生的新的弹性网卡ENI(Elastic Network Interface)也会默认具备私网能力。您可以通过调用[GetLoadBalancerAttribute](~~214362~~)接口查看**Ipv6AddressType**的取值。'."\n" + ."\n" + .'- **DisableLoadBalancerIpv6Internet**接口属于异步接口,即系统返回一个请求ID,但该ALB实例的IPv6公网尚未变更为IPv6私网,系统后台的变更任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询ALB实例IPv6网络的变更状态:'."\n" + ."\n" + .' - 当应用型负载均衡处于**Configuring**状态时,表示ALB实例的IPv6公网正在变更为IPv6私网。'."\n" + ."\n" + .' - 当应用型负载均衡处于**Active**状态时,表示ALB实例的IPv6公网变更IPv6私网成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:DisableLoadBalancerIpv6Internet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7D866E37-1123-5160-AFF1-BDAF5EB86A8A\\",\\n \\"JobId\\": \\"d12871a6-ebb2-41f3-8d74-d9f452bb****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7D866E37-1123-5160-AFF1-BDAF5EB86A8A\\n d12871a6-ebb2-41f3-8d74-d9f452bb****\\n","errorExample":""}]', + ], + 'DissociateAclsFromListener' => [ + 'summary' => '将访问控制从监听上解除关联。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '167', - 'abilityTreeNodes' => [ - 'FEATUREslbULKWF1', - ], - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'NextToken', + 'name' => 'AclIds', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXG****', + 'title' => '访问控制策略Id', + 'description' => 'ACL实例ID列表。一次最多支持将3个ACL实例与监听解除关联。', + 'type' => 'array', + 'items' => ['description' => 'ACL实例ID。', 'type' => 'string', 'required' => false, 'example' => 'acl-hp34s2h0xx1ht4nwo****'], + 'required' => true, + 'maxItems' => 20, ], ], [ - 'name' => 'MaxResults', + 'name' => 'ListenerId', 'in' => 'query', - 'schema' => [ - 'title' => '查询数量', - 'description' => '本次读取的最大数据记录数量。取值范围:**1**~**100**,入参为空时,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '1000', - 'minimum' => '1', - 'example' => '50', - 'default' => '20', - ], + 'schema' => ['title' => '监听Id', 'description' => '监听实例ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-bpn0kn908w4nbw****'], ], [ - 'name' => 'ServerGroupId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '服务器组id', - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-cb25e2i2vr******', - ], + 'schema' => ['title' => '预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会将ACL与监听解除关联。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'ServerIds', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'flat', + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '服务器id列表', - 'description' => '服务器ID列表。', - 'type' => 'array', - 'items' => [ - 'title' => '服务器id', - 'description' => '服务器ID。单次调用最多支持展示40个服务器。'."\n" - ."\n" - .'- 当服务器组为**Instance**类型时,该参数为Ecs、Eni、Eci的资源Id。'."\n" - .'- 当服务器组为**Ip**类型时,该参数为IP地址。'."\n" - .'- 当服务器组为**Fc**时,该参数为函数计算的ARN标识。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'i-bp1e0u8f10by57wl****', + 'title' => 'Schema of Response', + 'description' => '将访问控制从监听上解除关联。', + 'type' => 'object', + 'properties' => [ + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => '请求id', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876******'], ], - 'required' => false, - 'maxItems' => 20, - 'minItems' => 1, - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '服务器组绑定的标签列表', - 'description' => '服务器组绑定的标签列表。一次请求中,绑定的标签列表中最多支持10个标签。', - 'type' => 'array', - 'items' => [ - 'title' => '服务器组绑定的标签', - 'description' => '服务器组绑定的标签列表。一次请求中,绑定的标签列表中最多支持10个标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '标签键', - 'description' => '标签键。最多支持10个标签键。'."\n" - ."\n" - .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - 'Value' => [ - 'title' => '标签值', - 'description' => '标签值。最多支持10个标签值。'."\n" - ."\n" - .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - ], - 'required' => false, - ], - 'required' => false, ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回数据结构体。', - 'type' => 'object', - 'properties' => [ - 'MaxResults' => [ - 'title' => '本次查询返回记录数量', - 'description' => '本次请求所返回的最大记录条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'NextToken' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'caeba0bbb2be03f8****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF*****', - ], - 'Servers' => [ - 'title' => '后端服务器列表', - 'description' => '服务器列表。', - 'type' => 'array', - 'items' => [ - 'title' => '后端服务器', - 'description' => '后端服务器描述结构体。', - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'title' => '描述信息', - 'description' => '后端服务器描述。', - 'type' => 'string', - 'example' => 'test', - ], - 'Port' => [ - 'title' => '端口', - 'description' => '后端服务器使用的端口。取值范围:**1**~**65535**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'ServerId' => [ - 'title' => '服务器id', - 'description' => '后端服务器ID。'."\n" - ."\n" - .'>当**ServerType**为**Fc**时,**ServerId**为函数计算的ARN标识。', - 'type' => 'string', - 'example' => 'i-bp1f9kdprbgy9uiu****', - ], - 'ServerIp' => [ - 'title' => '服务器ip', - 'description' => '指定的IP地址。', - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - 'ServerType' => [ - 'title' => '后端服务器类型', - 'description' => '后端服务器类型。', - 'type' => 'string', - 'example' => 'Ecs', - ], - 'Status' => [ - 'title' => '状态', - 'description' => '后端服务器的添加状态。取值:'."\n" - ."\n" - .'- **Adding**:添加中。'."\n" - .'- **Available**:正常可用状态。'."\n" - .'- **Configuring**:配置中。'."\n" - .'- **Removing**:移除中。', - 'type' => 'string', - 'example' => 'Available', - ], - 'Weight' => [ - 'title' => '权重', - 'description' => '后端服务器的权重。权重越高的服务器将被分配到更多的访问请求。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'ServerGroupId' => [ - 'title' => '服务器组id', - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-qy042e1jabmprh****', - ], - 'RemoteIpEnabled' => [ - 'title' => '是否是远端ip', - 'description' => '是否开启远端IP。取值:'."\n" - .' '."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - 'TotalCount' => [ - 'title' => '总记录数', - 'description' => '本次请求条件下的数据总量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - ], - ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectStatus.Acl', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '访问控制策略组ACL的当前状态不支持本次操作。'], + ['errorCode' => 'ResourceInConfiguring', 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', 'description' => '指定的资源在变更中,请稍后再试'], + ['errorCode' => 'LockFailed', 'errorMessage' => 'The specified resource lock failed.', 'description' => '指定的资源锁定失败。'], + ], + 404 => [ + ['errorCode' => 'ResourceNotAssociated.Acl', 'errorMessage' => 'The specified resource %s is not associated.', 'description' => '资源%s未被关联。'], ], ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden.ServerGroup', - 'errorMessage' => 'Authentication has failed for ServerGroup.', + 'title' => '解除关联访问控制和监听', + 'description' => '**DissociateAclsFromListener**接口属于异步接口,即系统返回一个请求ID,但该ACL尚未成功解绑监听器,系统后台的解绑任务仍在进行。您可以调用[ListAclRelations](~~213618~~)查询ACL的解绑状态:'."\n" + .'- 当ACL处于**Dissociating**状态时,表示ACL正在解绑监听器中。'."\n" + .'- 当ACL处于**Dissociated**状态时,表示ACL已成功解绑监听器。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DissociateAclsFromListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"caeba0bbb2be03f8****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF*****\\",\\n \\"Servers\\": [\\n {\\n \\"Description\\": \\"test\\",\\n \\"Port\\": 80,\\n \\"ServerId\\": \\"i-bp1f9kdprbgy9uiu****\\",\\n \\"ServerIp\\": \\"192.168.XX.XX\\",\\n \\"ServerType\\": \\"Ecs\\",\\n \\"Status\\": \\"Available\\",\\n \\"Weight\\": 100,\\n \\"ServerGroupId\\": \\"sgp-qy042e1jabmprh****\\",\\n \\"RemoteIpEnabled\\": true\\n }\\n ],\\n \\"TotalCount\\": 3\\n}","errorExample":""},{"type":"xml","example":"\\n 50\\n caeba0bbb2be03f8****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n \\n test\\n 80\\n i-bp1f9kdprbgy9uiu****\\n 192.168.XX.XX\\n Ecs\\n Available\\n 100\\n sgp-qy042e1jabmprh****\\n true\\n \\n 3\\n","errorExample":""}]', - 'title' => '查询服务器', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', ], - 'RemoveServersFromServerGroup' => [ - 'summary' => '从服务器组中移除后端服务器。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DissociateAdditionalCertificatesFromListener' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10109,191 +5511,105 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'ServerGroupId', + 'name' => 'ListenerId', 'in' => 'query', - 'schema' => [ - 'title' => '后端服务器Id', - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-atstuj3rtop****', - ], + 'schema' => ['title' => '监听Id', 'description' => '监听ID。HTTPS和QUIC监听有效。', 'type' => 'string', 'required' => true, 'example' => 'lsn-5qnirjhpt7******'], ], [ - 'name' => 'Servers', + 'name' => 'Certificates', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '后端服务器', - 'description' => '后端服务器组列表,最多支持200个服务器。', + 'title' => '证书列表', + 'description' => '扩展证书列表。当前仅支持服务器证书。最多支持20个证书。', 'type' => 'array', 'items' => [ - 'description' => '后端服务器组配置信息。', + 'description' => '扩展证书。', 'type' => 'object', 'properties' => [ - 'Port' => [ - 'title' => '后端端口号', - 'description' => '后端服务器使用的端口。取值范围:**1**~**65535**。'."\n" - .'> 当**ServerType**取值为**Ecs**、**Eni**、**Eci**、**Ip**时,该参数必传。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'docRequired' => false, - 'example' => '80', - ], - 'ServerId' => [ - 'title' => '后端服务器id', - 'description' => '后端服务器ID。'."\n" - ."\n" - .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**资源ID。'."\n" - ."\n" - .'- 当服务器组为**Ip**类型时,该参数为IP地址。'."\n" - ."\n" - .'- 当服务器组为**Fc**类型时,该参数为函数计算的ARN标识。'."\n" - ."\n" - .'>您可以通过调用[ListServerGroups](~~2254862~~)接口获取服务器组类型的取值。', - 'type' => 'string', - 'required' => true, - 'example' => 'i-bp1f9kdprbgy9uiu****', - ], - 'ServerIp' => [ - 'title' => '后端服务器ip', - 'description' => 'ENI多IP模式时指定的IP地址。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.1.1', - ], - 'ServerType' => [ - 'title' => '后端服务器类型', - 'description' => '后端服务器类型。取值:'."\n" - .'- **Ecs**:ECS实例。'."\n" - .'- **Eni**:ENI弹性网卡实例。'."\n" - .'- **Eci**:ECI弹性容器。'."\n" - .'- **Ip**:IP地址。'."\n" - .'- **Fc**:函数计算。', - 'type' => 'string', - 'required' => true, - 'docRequired' => false, - 'example' => 'Ecs', - ], + 'CertificateId' => ['title' => '证书Id', 'description' => '证书ID。', 'type' => 'string', 'required' => true, 'example' => '103705******'], ], 'required' => false, ], 'required' => true, - 'maxItems' => 200, + 'maxItems' => 15, 'minItems' => 1, ], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3', - ], + 'schema' => ['title' => '幂等Token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会从服务器组中移除后端服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => 'dryRun', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会从HTTPS和QUIC监听移除扩展证书。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回**HTTP 2xx**状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构体', + 'description' => '从HTTPS和QUIC监听移除扩展证书。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.ServerGroup', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.BackendServer', - 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', - ], - [ - 'errorCode' => 'ResourceInConfiguring', - 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', - ], + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'OperationDenied.HttpListenerNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是不支持HTTP协议监听。'], + ['errorCode' => 'OperationDenied.DefaultCertificateUsed', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是默认证书不允许解除关联。'], + ['errorCode' => 'ResourceNotAssociated.Certificate', 'errorMessage' => 'The specified resource %s is not associated.', 'description' => '资源%s未被关联。'], + ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => '指定的资源%s正在配置中,请稍后再试。'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.ServerGroup', - 'errorMessage' => 'Authentication is failed for ServerGroup.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.BackendServer', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => '解除监听和扩展证书关联', + 'summary' => '将扩展证书与监听解除关联。', + 'description' => '**DissociateAdditionalCertificatesFromListener**接口属于异步接口,即系统返回一个请求ID,但该扩展证书尚未解绑成功,系统后台的解绑任务仍在进行。您可以调用[ListListenerCertificates](~~214354~~)查询扩展证书的解绑状态:'."\n" + ."\n" + .'- 当扩展证书状态处于**Dissociating**状态时,表示扩展证书正在解绑中。'."\n" + ."\n" + .'- 当扩展证书状态处于**Dissociated**状态时,表示扩展证书解绑成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DissociateAdditionalCertificatesFromListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '移除后端服务器', - 'description' => '**RemoveServersFromServerGroup**接口属于异步接口,即系统返回一个请求ID,但该后端服务器尚未移除成功,系统后台的移除任务仍在进行。'."\n" - .'1. 您可以调用[ListServerGroups](~~2254862~~)查询服务器组的状态:'."\n" - .' - 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n" - .' - 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n" - ."\n" - .'2. 您可以调用[ListServerGroupServers](~~2254863~~)查询后端服务器的状态:'."\n" - .' - 当后端服务器处于**Removing**状态时,表示后端服务器正在从服务器组中移除。'."\n" - .' - 当查询不到该后端服务器时,表示后端服务器移除成功。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', ], - 'ReplaceServersInServerGroup' => [ - 'summary' => '替换后端服务器组中的后端服务器。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'EnableDeletionProtection' => [ + 'summary' => '开启指定资源的删除保护。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10301,297 +5617,73 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREslbULKWF1', - ], - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'ServerGroupId', - 'in' => 'query', - 'schema' => [ - 'title' => '后端服务器Id', - 'description' => '服务器组ID。'."\n" - ."\n" - .'>函数计算类型的服务器组不支持替换后端服务器。', - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-5114d593o96qxy****', - ], - ], - [ - 'name' => 'AddedServers', - 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'title' => '待添加后端服务器', - 'description' => '待添加后端服务器', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'title' => '描述信息', - 'description' => '描述信息', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'Port' => [ - 'title' => '后端端口号', - 'description' => '后端端口号', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '80', - ], - 'ServerId' => [ - 'title' => '后端服务器id', - 'description' => '后端服务器id', - 'type' => 'string', - 'required' => false, - 'example' => 'ecs-123', - ], - 'ServerIp' => [ - 'title' => '后端服务器ip', - 'description' => '后端服务器ip', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.1.1', - ], - 'ServerType' => [ - 'title' => '后端服务器类型', - 'description' => '后端服务器类型', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ecs', - ], - 'Weight' => [ - 'title' => '后端服务器权重', - 'description' => '后端服务器权重', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 200, - 'minItems' => 1, - ], - ], - [ - 'name' => 'RemovedServers', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '待删除后端服务器', - 'description' => '待删除的后端服务器。', - 'type' => 'array', - 'items' => [ - 'description' => '待删除的后端服务器的结构体。', - 'type' => 'object', - 'properties' => [ - 'ServerId' => [ - 'title' => '后端服务器id', - 'description' => '后端服务器ID。单次调用最多支持传入200个服务器。'."\n" - ."\n" - .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**资源ID。'."\n" - ."\n" - .'- 当服务器组为**Ip**类型时,该参数为IP地址。'."\n" - ."\n" - .'>函数计算类型的服务器组不支持替换后端服务器。您可以通过调用[ListServerGroups](~~213627~~)接口获取服务器组类型的取值。', - 'type' => 'string', - 'required' => true, - 'example' => 'i-bp1f9kdprbgy9uiu****', - ], - 'ServerIp' => [ - 'title' => '后端服务器ip', - 'description' => '指定IP地址。'."\n" - ."\n" - .'当**ServerType**为**Eni**时,支持指定ENI的主私网IP或辅助私网IP。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.1.12', - ], - 'ServerType' => [ - 'title' => '后端服务器类型', - 'description' => '后端服务器类型,单次调用最多支持传入200个服务器。取值:'."\n" - ."\n" - .'- **Ecs**:ECS实例。'."\n" - .'- **Eni**:ENI弹性网卡实例。'."\n" - .'- **Eci**:ECI弹性容器。'."\n" - .'- **Ip**:IP地址。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ecs', - ], - 'Port' => [ - 'title' => '端口', - 'description' => '后端服务器使用的端口。取值范围:**1**~**65535**。单次调用最多支持传入200个服务器。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '81', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 200, - 'minItems' => 1, - ], + 'schema' => ['title' => '幂等标识', 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '幂等Token', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式和业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'DryRun', + 'name' => 'ResourceId', 'in' => 'query', - 'schema' => [ - 'title' => 'dryRun', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会替换服务器组中的后端服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['title' => '实例id', 'description' => '资源ID,此处为ALB实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构体。', + 'description' => '开启删除保护功能。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'IncorrectStatus.ServerGroup', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'Conflict.BackendServer', - 'errorMessage' => 'There is already %s having the same configuration with %s.', - ], - [ - 'errorCode' => 'DuplicatedParam.BackendServer', - 'errorMessage' => 'The param of %s is duplicated.', - ], - [ - 'errorCode' => 'OperationDenied.EciNotSupportJobType', - 'errorMessage' => 'The operation is not allowed because of eci not support job type.', - ], - [ - 'errorCode' => 'Mismatch.ServerType', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'ResourceInConfiguring', - 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.BackendServer', - 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', - ], - [ - 'errorCode' => 'IdempotentParameterMismatch', - 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', - ], + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ecs', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Eci', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Eni', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.BackendServer', - 'errorMessage' => 'The specified resource %s is not found.', + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '开启删除保护', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:EnableDeletionProtection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '替换后端服务器组中的后端服务器', - 'description' => '**ReplaceServersInServerGroup**接口属于异步接口,即系统返回一个请求ID,但该后端服务器尚未替换成功,系统后台的替换任务仍在进行。'."\n" - .'1. 您可以调用[ListServerGroups](~~213627~~)查询服务器组的状态:'."\n" - .' - 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n" - .' - 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n" - ."\n" - .'2. 您可以调用[ListServerGroupServers](~~213628~~)查询后端服务器的状态:'."\n" - .' - 当后端服务器处于**Replacing**状态时,表示服务器组移出服务器并加入新的服务器。'."\n" - .' - 当后端服务器处于** Available**状态时,表示后端服务器运行中。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', ], - 'CreateRule' => [ - 'summary' => '在指定监听下创建转发规则。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'EnableLoadBalancerAccessLog' => [ + 'summary' => '开启指定负载均衡实例的访问日志。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10600,942 +5692,1253 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '417', - 'abilityTreeNodes' => [ - 'FEATUREslbM7ALO6', - ], + 'operationType' => 'update', + 'abilityTreeCode' => '205', + 'abilityTreeNodes' => ['FEATUREslb4A6LP3'], ], 'parameters' => [ [ - 'name' => 'ListenerId', + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['title' => '幂等标识', 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF******'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => ['title' => '实例id', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-bd6oylbckp6k9x****'], + ], + [ + 'name' => 'LogProject', + 'in' => 'query', + 'schema' => ['title' => '日志Project', 'description' => '访问日志投递的日志项目。', 'type' => 'string', 'required' => true, 'example' => 'sls-setter'], + ], + [ + 'name' => 'LogStore', 'in' => 'query', + 'schema' => ['title' => '日志Store', 'description' => '访问日志投递的日志库。', 'type' => 'string', 'required' => true, 'example' => 'test'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '监听标识', - 'description' => '应用型负载均衡实例监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-l16uo9y******', + 'title' => 'Schema of Response', + 'description' => '返回数据结构。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'], + 'JobId' => ['title' => 'jobId of the request', 'description' => '异步任务ID。', 'type' => 'string', 'example' => 'ff7713ca-5818-4120-85e3-0bf9******'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.AccessLogEnabled', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因访问日志已开启。'], + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ], + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '开启访问日志', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:EnableLoadBalancerAccessLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\",\\n \\"JobId\\": \\"ff7713ca-5818-4120-85e3-0bf9******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', + ], + 'EnableLoadBalancerIpv6Internet' => [ + 'summary' => '将双栈应用型负载均衡实例的IPv6私网变更为IPv6公网。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'由客户端生成该参数值,要保证在不同请求间唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', - ], + 'allowEmptyValue' => false, + 'schema' => ['title' => '幂等参数', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建转发规则。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '预校验', 'description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会开启负载均衡ALB的IPv6公网。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'Priority', + 'name' => 'LoadBalancerId', 'in' => 'query', + 'schema' => ['title' => '实例ID', 'description' => '应用型负载均衡实例的ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-o2cvudgo6rlqz7****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '转发规则优先级', - 'description' => '规则优先级,取值范围:**1~10000**。值越小表示优先级越高。'."\n" - ."\n" - .'> 同一个监听内规则优先级必须唯一。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'BB920797-D70E-567F-8098-55A861DD7912'], + 'JobId' => ['title' => '异步任务ID', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '4a6e3ad4-ef08-4ab1-b332-fa621cfe****'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'], + ['errorCode' => 'OperationDenied.NonDualStackInstance', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'], + ['errorCode' => 'OperationDenied.Ipv6InternetInstance', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'], + ], + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ], [ - 'name' => 'Direction', - 'in' => 'query', - 'schema' => [ - 'title' => '转发规则方向', - 'description' => '转发规则的方向。取值:'."\n" - ."\n" - .'- **Request**(默认值):请求类型,对从客户端发送到ALB的报文进行条件匹配并进行相应的处理。'."\n" - ."\n" - .'- **Response**:响应类型,对从后端服务器组返回到ALB的报文进行条件匹配并进行相应的处理。'."\n" - ."\n" - .'> 基础版的ALB实例不支持**Response**类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'Request', + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '开启负载均衡IPv6公网', + 'description' => '### 前提条件'."\n" + ."\n" + .'已创建双栈ALB实例,调用[CreateLoadBalancer](~~214358~~)接口将**AddressIpVersion**设置为**DualStack**。'."\n" + ."\n" + .'> **AddressIpVersion**设置为**DualStack**时:'."\n" + .'> - **AddressType**设置为**Internet**表示ALB实例拥有IPv4公网和IPv6私网访问能力。'."\n" + .'> - **AddressType**设置为**Intranet**表示ALB实例拥有IPv4私网和IPv6私网访问能力。'."\n" + ."\n" + .'### 使用说明'."\n" + .'- 变更成功后,**Ipv6AddressType**类型将变为**Internet**,ALB实例IPv6地址即具备公网能力,后续该ALB实例下变配或者弹性产生的新的弹性网卡ENI(Elastic Network Interface)也会自动开启公网能力,您可以通过调用[GetLoadBalancerAttribute](~~214362~~)接口查看**Ipv6AddressType**的取值。'."\n" + ."\n" + .'- **EnableLoadBalancerIpv6Internet**接口属于异步接口,即系统返回一个请求ID,但该ALB实例的IPv6私网尚未变更为IPv6公网,系统后台的变更任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询ALB实例IPv6网络的变更状态:'."\n" + ."\n" + .' - 当应用型负载均衡处于**Configuring**状态时,表示ALB实例的IPv6私网正在变更为IPv6公网。'."\n" + ."\n" + .' - 当应用型负载均衡处于**Active**状态时,表示ALB实例的IPv6私网变更IPv6公网成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:EnableLoadBalancerIpv6Internet', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'alb:AddressType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BB920797-D70E-567F-8098-55A861DD7912\\",\\n \\"JobId\\": \\"4a6e3ad4-ef08-4ab1-b332-fa621cfe****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BB920797-D70E-567F-8098-55A861DD7912\\n 4a6e3ad4-ef08-4ab1-b332-fa621cfe****\\n","errorExample":""}]', + ], + 'GetHealthCheckTemplateAttribute' => [ + 'summary' => '查询指定健康检查模板详细信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'RuleActions', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '160', + 'abilityTreeNodes' => ['FEATUREslb6RAQIN'], + ], + 'parameters' => [ + [ + 'name' => 'HealthCheckTemplateId', 'in' => 'query', - 'style' => 'flat', + 'schema' => ['title' => '健康检查模板Id', 'description' => '健康检查模板ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'hct-x4jazoyi6tvsq9****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '转发规则动作', - 'description' => '转发规则动作列表。', - 'type' => 'array', - 'items' => [ - 'description' => '规则动作列表。', - 'type' => 'object', - 'properties' => [ - 'FixedResponseConfig' => [ - 'title' => '返回固定内容动作配置', - 'description' => '固定响应内容配置。'."\n" - ."\n", + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'HealthCheckConnectPort' => ['title' => '端口', 'description' => '健康检查使用的端口。'."\n" + ."\n" + .'取值范围: **0**~**65535**。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'HealthCheckHost' => ['title' => '域名', 'description' => '用于健康检查的域名。取值: '."\n" + ."\n" + .'- **$SERVER_IP**:后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用后端服务器的私网IP当做健康检查使用的域名。'."\n" + ."\n" + .'- **domain**:域名长度为1~80字符,只能包含字母、数字、半角句号(.)和短划线(-)。'."\n" + ."\n" + .'> 只有`HealthCheckProtocol`设置为**HTTP**或**HTTPS**时该参数生效。', 'type' => 'string', 'example' => '$SERVER_IP'], + 'HealthCheckCodes' => [ + 'title' => '状态码', + 'description' => '健康检查正常的状态码列表。', + 'type' => 'array', + 'items' => ['description' => '健康检查正常的HTTP状态码。'."\n" + ."\n" + .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http_2xx**(默认值)、 **http_3xx**、**http_4xx**和**http_5xx**,多个状态码用半角逗号(,)分隔。'."\n" + ."\n" + .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**,默认值:**0**。支持范围输入,最多支持20个范围值,多个范围值使用半角逗号(,)隔开。'."\n" + ."\n\n" + .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时该参数生效。', 'type' => 'string', 'example' => 'http_2xx'], + ], + 'HealthCheckHttpVersion' => ['title' => '版本', 'description' => '健康检查HTTP协议版本。'."\n" + ."\n" + .'取值:**HTTP1.0**或**HTTP1.1**。'."\n" + ."\n" + .'> 只有`HealthCheckProtocol`为**HTTP**或**HTTPS**时该参数生效。', 'type' => 'string', 'example' => 'HTTP1.0'], + 'HealthCheckTemplateId' => ['title' => '健康检查模板Id', 'description' => '健康检查模板ID。', 'type' => 'string', 'example' => 'hct-x4jazoyi6tvsq9****'], + 'HealthCheckInterval' => ['title' => '间隔时间', 'description' => '健康检查的时间间隔。单位:秒。取值范围:**1~50**。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'HealthCheckMethod' => ['title' => '方法', 'description' => '健康检查方法。取值:'."\n" + ."\n" + .'- **HEAD**(默认值):HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" + ."\n" + .'- **GET**:如果响应报文长度超过8K,会被截断,但不会影响健康检查结果的判定。'."\n" + ."\n" + .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" + ."\n\n" + .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时该参数生效。', 'type' => 'string', 'example' => 'GET'], + 'HealthCheckPath' => ['title' => 'uri', 'description' => '用于健康检查的URL。'."\n" + ."\n" + .'长度限制为1~80,只能使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)、and(&)这些字符以及扩展字符集`_;~!()*[]@$^:\',+`。'."\n" + .'URL必须以正斜线(/)开头。'."\n" + ."\n" + .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时该参数生效。', 'type' => 'string', 'example' => '/test/index.html'], + 'HealthCheckProtocol' => ['title' => '协议', 'description' => '健康检查采用的协议。取值:'."\n" + ."\n" + .'- **HTTP**(默认值):通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" + ."\n" + .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" + ."\n" + .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" + ."\n" + .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', 'type' => 'string', 'example' => 'HTTP'], + 'HealthCheckTemplateName' => ['title' => '名称', 'description' => '健康检查模板名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n", 'type' => 'string', 'example' => 'HealthCheckTemplate1'], + 'HealthCheckTimeout' => ['title' => '超时时间', 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端服务器在指定的时间内没有正确响应,则判定为健康检查失败。单位:秒。'."\n" + ."\n" + .'取值范围:**1**~**300**。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'HealthyThreshold' => ['title' => '健康阈值', 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n" + ."\n" + .'取值范围:**2**~**10**。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DB1AFC33-DAE8-528E-AA4D-4A6A******'], + 'UnhealthyThreshold' => ['title' => '不健康阈值', 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n" + ."\n" + .'取值范围:**2**~**10**。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'Tags' => [ + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签结构。', 'type' => 'object', 'properties' => [ - 'Content' => [ - 'title' => '内容', - 'description' => '返回的固定内容。最大支持存储1 KB,只支持ASCII字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'dssacav', - ], - 'ContentType' => [ - 'title' => '内容类型', - 'description' => '返回固定内容的格式。'."\n" - ."\n" - .'取值:**text/plain**、**text/css**、**text/html**、**application/javascript**或**application/json**。', - 'type' => 'string', - 'required' => false, - 'example' => 'text/plain', - ], - 'HttpCode' => [ - 'title' => 'HTTP响应码', - 'description' => '返回的HTTP响应码,仅支持**2xx**、**4xx**、**5xx**数字型字符串,**x**为任意数字。', - 'type' => 'string', - 'required' => false, - 'example' => '200', - ], + 'Key' => ['description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'example' => 'env'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'example' => 'product'], ], - 'required' => false, ], - 'ForwardGroupConfig' => [ - 'title' => '转发组动作配置', - 'description' => '转发到的目的服务器组列表。一条转发规则中最多支持添加5个目的服务器组。'."\n", - 'type' => 'object', - 'properties' => [ - 'ServerGroupTuples' => [ - 'title' => '转发到的目的服务器组列表', - 'description' => '转发到的目的服务器组列表。一条转发规则中最多支持添加5个目的服务器组。'."\n" - ."\n", - 'type' => 'array', - 'items' => [ - 'description' => '转发到的目的服务器组结构。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupId' => [ - 'title' => '服务器组标识', - 'description' => '转发到的目的服务器组。', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-k86c1ov501id6p****', - ], - 'Weight' => [ - 'title' => '权重', - 'description' => '权重。取值越大,权重越大,表示转发的访问请求更多。取值范围:**0**~**100**。'."\n" - ."\n" - .'- 目的服务器组数为1时,未指定权重时默认值为**100**。'."\n" - ."\n" - .'- 目的服务器组数大于1时,需要用户指定权重值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '0', - 'example' => '100', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'ServerGroupStickySession' => [ - 'title' => '服务器组之间会话保持', - 'description' => '服务器组之间会话保持。', + ], + 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-atstuj3rtop****'], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbidden.HealthCheckTemplate', 'errorMessage' => 'Authentication has failed for HealthCheckTemplate.', 'description' => '对HealthCheckTemplate鉴权失败'], + ], + [ + ['errorCode' => 'ResourceNotFound.HealthCheckTemplate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckHost\\": \\"$SERVER_IP\\",\\n \\"HealthCheckCodes\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.0\\",\\n \\"HealthCheckTemplateId\\": \\"hct-x4jazoyi6tvsq9****\\",\\n \\"HealthCheckInterval\\": 3,\\n \\"HealthCheckMethod\\": \\"GET\\",\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"HTTP\\",\\n \\"HealthCheckTemplateName\\": \\"HealthCheckTemplate1\\",\\n \\"HealthCheckTimeout\\": 200,\\n \\"HealthyThreshold\\": 5,\\n \\"RequestId\\": \\"DB1AFC33-DAE8-528E-AA4D-4A6A******\\",\\n \\"UnhealthyThreshold\\": 5,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 80\\n $SERVER_IP\\n http_2xx,http_3xx\\n HTTP1.0\\n hct-x4jazoyi6tvsq9****\\n 3\\n GET\\n /test/index.html\\n HTTP\\n HealthCheckTemplate1\\n 200\\n 5\\n DB1AFC33-DAE8-528E-AA4D-4A6AABE71945\\n 5\\n","errorExample":""}]', + 'title' => '查询健康检查模板详细信息', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:GetHealthCheckTemplateAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthchecktemplateId}'], + ], + ], + ], + ], + ], + 'GetListenerAttribute' => [ + 'summary' => '查询监听的详细信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '189', + 'abilityTreeNodes' => ['FEATUREslbM7ALO6', 'FEATUREslbK3ZR0L', 'FEATUREslbN5IE4S'], + ], + 'parameters' => [ + [ + 'name' => 'ListenerId', + 'in' => 'query', + 'schema' => ['title' => '监听标识', 'description' => '监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '查询监听的详细信息。', + 'type' => 'object', + 'properties' => [ + 'AclConfig' => [ + 'title' => 'ACL相关配置信息', + 'description' => 'ACL配置结构。', + 'type' => 'object', + 'properties' => [ + 'AclRelations' => [ + 'title' => '监听绑定的访问策略组', + 'description' => '监听绑定的访问策略组ID列表。', + 'type' => 'array', + 'items' => [ + 'description' => '监听绑定的访问策略组结构。', 'type' => 'object', 'properties' => [ - 'Enabled' => [ - 'title' => '是否开启会话保持', - 'description' => '是否开启会话保持。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**(默认值):不开启。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'Timeout' => [ - 'title' => '超时时间', - 'description' => '超时时间。单位:秒。取值范围:**1**~**86400**。默认值:**1000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], + 'AclId' => ['title' => 'ACL标识', 'description' => '监听绑定的访问策略组ID。', 'type' => 'string', 'example' => 'acl-doc****'], + 'Status' => ['title' => 'ACL与监听关联的状态', 'description' => 'ACL与监听关联的状态。取值:'."\n" + ."\n" + .'- **Associating**:关联中。'."\n" + ."\n" + .'- **Associated**:已关联。'."\n" + ."\n" + .'- **Dissociating**:解关联中。', 'type' => 'string', 'example' => 'Associating'], ], - 'required' => false, ], ], - 'required' => false, + 'AclType' => ['title' => '访问控制类型', 'description' => '访问控制类型。取值:'."\n" + ."\n" + .'- **White**:仅转发来自所选访问控制策略组中设置的IP地址或地址段的请求,白名单适用于应用只允许特定IP访问的场景。设置白名单存在一定业务风险。一旦设置白名单,就只有白名单中的IP可以访问负载均衡监听。'."\n" + ."\n" + .' 如果开启了白名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。'."\n" + ."\n" + .'- **Black**:来自所选访问控制策略组中设置的IP地址或地址段的所有请求都不会转发,黑名单适用于应用只限制某些特定IP访问的场景。'."\n" + ."\n" + .' 如果开启了黑名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。', 'type' => 'string', 'example' => 'White'], ], - 'InsertHeaderConfig' => [ - 'title' => '插入头部动作配置', - 'description' => '写入头字段配置。', + ], + 'Certificates' => [ + 'title' => '监听默认服务器证书列表,N当前取值范围为1', + 'description' => '证书列表。', + 'type' => 'array', + 'items' => [ + 'description' => '证书结构。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头', - 'description' => '插入的头字段名称,长度为1\\~40个字符,支持大小写字母a\\~z、数字、下划线(_)和短划线(-)。**InsertHeaderConfig**中的头字段名称不能重复。'."\n" - ."\n" - .'> 不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`、`x-forwarded-host`。', - 'type' => 'string', - 'required' => false, - 'example' => 'key', - ], - 'Value' => [ - 'title' => 'HTTP标头内容', - 'description' => '插入的头字段内容。'."\n" - ."\n" - .'- **ValueType**取值为**SystemDefined**时取值如下:'."\n" - .' - **ClientSrcPort**:客户端端口。'."\n" - .' - **ClientSrcIp**:客户端IP地址。'."\n" - .' - **Protocol**:客户端请求的协议(HTTP或HTTPS)。'."\n" - .' - **SLBId**:应用型负载均衡实例ID。'."\n" - .' - **SLBPort**:应用型负载均衡实例监听端口。'."\n" - .'- **ValueType**取值为**UserDefined**时:您可自定义头字段内容,限制长度为1~128个字符,支持通配符星号(*)、半角问号(?)和ASCII码值`ch >= 32 && ch < 127`范围内的可打印字符,不支持`"`。开头和结尾不能为空格。结尾不能为`\\`。'."\n" - .'- **ValueType**取值为**ReferenceHeader**时:您可以引用请求头字段中的某一个字段,限制长度限制为1\\~128个字符,支持小写字母a\\~z、数字、短划线(-)和下划线(_)。', - 'type' => 'string', - 'required' => false, - 'example' => 'UserDefined', - ], - 'ValueType' => [ - 'title' => '取值类型', - 'description' => '头字段内容类型。取值:'."\n" - ."\n" - .'- **UserDefined**:您自定义头字段内容。'."\n" - ."\n" - .'- **ReferenceHeader**:引用请求头中的某一个头字段内容。'."\n" - ."\n" - .'- **SystemDefined**:系统定义头字段内容。', - 'type' => 'string', - 'required' => false, - 'example' => 'UserDefined', - ], + 'CertificateId' => ['title' => '正式标识', 'description' => '证书ID,当前仅支持服务器证书。', 'type' => 'string', 'example' => '123157*******'], ], - 'required' => false, ], - 'Order' => [ - 'title' => '优先级', - 'description' => '转发规则动作执行的顺序,取值范围:**1~50000**,按值从小到大执行动作。值不能为空,不能重复。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - 'RedirectConfig' => [ - 'title' => '重定向动作配置', - 'description' => '重定向配置。'."\n" - ."\n" - .'> **RedirectConfig**的参数,除了**httpCode**外,不能都使用默认值。', + ], + 'CaCertificates' => [ + 'title' => '监听默认CA证书列表,N当前取值范围为1', + 'description' => 'CA证书列表。', + 'type' => 'array', + 'items' => [ 'type' => 'object', 'properties' => [ - 'Host' => [ - 'title' => '要跳转的主机地址', - 'description' => '要跳转的主机地址。取值:'."\n" - .'- **${host}**(默认值):取此值时不支持和其他字符拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)、等号(=)、波浪线(~)、下划线(_)、加号(+)、反斜线(\\)、脱字号(^)、感叹号(!)、美元符号($)、and(&)、竖线(|)、半角圆括号(())、方括号(\\[\\])和半角问号(?)。'."\n" - .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" - .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-),最左侧`domainlable`允许是星号(*)。'."\n" - .' - 短划线(-)不能出现在其它域标签的开头或结尾。'."\n" - .' - 通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', - 'type' => 'string', - 'required' => false, - 'example' => '${host}', - ], - 'HttpCode' => [ - 'title' => '跳转方式', - 'description' => '跳转方式。取值:**301**、**302**、**303**、**307**或**308**。', - 'type' => 'string', - 'required' => false, - 'example' => '301', - ], - 'Path' => [ - 'title' => '要跳转的路径', - 'description' => '要跳转的路径。取值:'."\n" - .'- **${path}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1\\~128个字符,大小写敏感,支持通配符星号(*)和半角问号(?)作为通配符使用。'."\n" - .' - 必须以正斜线(/)开头,支持大小写字母、数字和特殊字符`$-_.+/&~@:\'*?`,不支持`“%#;!()[]^,”\\"`,同时支持通配符星号(*)和半角问号(?)。', - 'type' => 'string', - 'required' => false, - 'example' => '/test', - ], - 'Port' => [ - 'title' => '要跳转的端口', - 'description' => '要跳转的端口。'."\n" - .'- **${port}**(默认值):该取值不支持和其他字符同时使用。'."\n" - .'- 其他取值:**1~63335**。', - 'type' => 'string', - 'required' => false, - 'example' => '10', - ], - 'Protocol' => [ - 'title' => '要跳转的协议', - 'description' => '要跳转的协议。取值:'."\n" - .'- **${protocol}**(默认值):取该值时仅支持单独使用,不支持修改或与其他字符拼接使用。'."\n" - .'- **HTTP**'."\n" - .'- **HTTPS**'."\n" - .'> '."\n" - .'> - HTTPS监听仅支持跳转HTTPS协议。'."\n" - .'> - HTTP监听支持跳转HTTP和HTTPS协议。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP', - ], - 'Query' => [ - 'title' => '要跳转的查询字符串', - 'description' => '要跳转的查询字符串。'."\n" - .'- **${query}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1\\~128个字符。'."\n" - .' - 支持可见字符,不支持空格和 `#[]{}\\|<>"`。如果是字母则必须是小写字母。', - 'type' => 'string', - 'required' => false, - 'example' => '${query}', - ], + 'CertificateId' => ['title' => '正式标识', 'description' => 'CA证书ID。', 'type' => 'string', 'example' => '139a00*****'], + 'Status' => ['title' => '证书状态', 'description' => '证书状态。', 'type' => 'string', 'example' => 'Associated'], + 'IsDefault' => ['title' => '是否为默认证书', 'description' => '是否为默认证书。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], ], - 'required' => false, + 'description' => '', ], - 'RewriteConfig' => [ - 'title' => '内部重定向动作配置', - 'description' => '重写配置。'."\n" - ."\n" - .'> 同一个转发规则配置多个动作时,**RewriteConfig**动作使用时必须配置**ForwardGroup**的动作类型。', + ], + 'CaEnabled' => ['title' => '是否开启双向认证', 'description' => '是否开启双向认证。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'DefaultActions' => [ + 'title' => '默认动作', + 'description' => '默认规则动作列表。', + 'type' => 'array', + 'items' => [ + 'description' => '默认规则动作结构。', 'type' => 'object', 'properties' => [ - 'Host' => [ - 'title' => '主机名', - 'description' => '内部跳转的目的主机地址。取值:'."\n" - .'- **${host}**(默认值):该取值不支持和其他字符拼接。'."\n" - ."\n" - .'- 其他取值,字符格式限制如下:'."\n" - ."\n" - .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)、等号(=)、波浪线(~)、下划线(_)、加号(+)、反斜线(\\)、脱字号(^)、感叹号(!)、美元符号($)、and(&)、竖线(|)、半角圆括号(())、方括号(\\[\\])和半角问号(?)。'."\n" + 'ForwardGroupConfig' => [ + 'title' => '转发到服务器组', + 'description' => '转发动作对应的配置,类型为**ForwardGroup**时有效。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'title' => '服务器组列表', + 'description' => '转发目标服务器组。', + 'type' => 'array', + 'items' => [ + 'description' => '转发目标服务器组。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['title' => '服务器组ID', 'description' => '转发到的目的服务器组ID。', 'type' => 'string', 'example' => 'sgp-i5qt20******'], + ], + ], + ], + ], + ], + 'Type' => ['title' => '类型', 'description' => '动作类型。'."\n" + ."\n" + .'取值:**ForwardGroup**,表示转发至多个服务器组。', 'type' => 'string', 'example' => 'ForwardGroup'], + ], + ], + ], + 'GzipEnabled' => ['title' => '是否开启Gzip压缩', 'description' => '是否开启Gzip压缩,对特定文件类型进行压缩。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'Http2Enabled' => ['title' => '是否开启HTTP/2特性', 'description' => '是否开启HTTP/2特性。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'IdleTimeout' => ['title' => '连接空闲超时时间', 'description' => '指定连接空闲超时时间。单位:秒。'."\n" + ."\n" + .'如果在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到下一次请求来临时重新建立新的连接。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'ListenerDescription' => ['title' => '监听描述', 'description' => '自定义监听名称。', 'type' => 'string', 'example' => 'HTTP_80'], + 'ListenerId' => ['title' => '监听标识', 'description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-o4u54y73wq7b******'], + 'ListenerPort' => ['title' => '监听端口', 'description' => '负载均衡实例前端使用的端口。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'ListenerProtocol' => ['title' => '监听协议', 'description' => '监听协议。取值:**HTTP**、**HTTPS**或**QUIC**。', 'type' => 'string', 'example' => 'HTTP'], + 'ListenerStatus' => ['title' => '监听状态', 'description' => '当前监听的状态。取值:'."\n" + ."\n" + .'- **Provisioning**:创建中。'."\n" + ."\n" + .'- **Running**:运行中。'."\n" + ."\n" + .'- **Configuring**:配置中。'."\n" + ."\n" + .'- **Stopped**:已停止。', 'type' => 'string', 'example' => 'Running'], + 'LoadBalancerId' => ['title' => '负载均衡标识', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'example' => 'alb-bd6oylbckp6k9x****'], + 'LogConfig' => [ + 'title' => '监听访问日志相关配置', + 'description' => '日志配置信息。', + 'type' => 'object', + 'properties' => [ + 'AccessLogRecordCustomizedHeadersEnabled' => ['title' => '访问日志是否开启携带自定义Header', 'description' => '访问日志是否开启携带自定义头字段。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'AccessLogTracingConfig' => [ + 'title' => '访问日志Xtrace相关的配置', + 'description' => '访问日志Xtrace相关的配置信息。', + 'type' => 'object', + 'properties' => [ + 'TracingEnabled' => ['title' => 'Xtrace功能状态', 'description' => 'Xtrace功能状态。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" ."\n" - .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + .'> 只有实例访问日志开关(AccessLogEnabled)打开时,才能设置为**true**。', 'type' => 'boolean', 'example' => 'true'], + 'TracingSample' => ['title' => 'Xtrace功能状态', 'description' => 'Xtrace的采样率。取值:1~10000。'."\n" ."\n" - .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-),最左侧`domainlable`允许是星号(*)。'."\n" + .'> **TracingEnabled**为**true**时,此值有效。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'TracingType' => ['title' => 'xtrace的类型', 'description' => 'xtrace的类型。合法取值为**Zipkin**。'."\n" ."\n" - .' - 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], - 'Path' => [ - 'title' => '路径', - 'description' => '要跳转的路径。取值:'."\n" - .'- **${path}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1\\~128个字符,大小写敏感,支持通配符星号(*)和半角问号(?)作为通配符使用。'."\n" - .' - 必须以正斜线(/)开头,支持大小写字母、数字和特殊字符`$-_.+/&~@:\'*?`,不支持`“%#;!()[]^,”\\"`,同时支持通配符星号(*)和半角问号(?)。', - 'type' => 'string', - 'required' => false, - 'example' => '/tsdf', - ], - 'Query' => [ - 'title' => '查询', - 'description' => '内部跳转的查询字符串。'."\n" - .'- **${query}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1\\~128个字符。'."\n" - .' - 支持可见字符,不支持空格和 `#[]{}\\|<>"`。如果是字母则必须是小写字母。', - 'type' => 'string', - 'required' => false, - 'example' => '${query}', + .'> **TracingEnabled**为**true**时,此值有效。', 'type' => 'string', 'example' => 'Zipkin'], ], ], - 'required' => false, ], - 'Type' => [ - 'title' => '转发规则动作类型', - 'description' => '动作类型。取值:'."\n" + ], + 'QuicConfig' => [ + 'title' => 'HTTPS启用QUIC时相关属性', + 'description' => '启用关联QUIC监听时的配置信息。', + 'type' => 'object', + 'properties' => [ + 'QuicListenerId' => ['title' => '需要关联的QUIC监听ID,HTTPS监听时有效,QuicUpgradeEnabled为true时必选', 'description' => '需要关联的QUIC监听ID。**QuicUpgradeEnabled**为**true**时必选。HTTPS监听时有效。'."\n" ."\n" - .'- **ForwardGroup**:转发至多个虚拟服务器组。'."\n" + .'> 原始监听和关联的QUIC监听必须属于同一个ALB实例,并且此QUIC监听之前没有被关联过。', 'type' => 'string', 'example' => 'lsn-ek6ad66t****'], + 'QuicUpgradeEnabled' => ['title' => '是否开启quic升级,HTTPS监听时有效', 'description' => '是否开启QUIC升级。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听时有效。', 'type' => 'boolean', 'example' => 'true'], + ], + ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF******'], + 'RequestTimeout' => ['title' => '请求超时时间', 'description' => '指定请求超时时间。单位:秒。'."\n" + ."\n" + .'如果在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回`HTTP 504`错误码。', 'type' => 'integer', 'format' => 'int32', 'example' => '34'], + 'SecurityPolicyId' => ['title' => '安全策略', 'description' => '安全策略。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'example' => 'tls_cipher_policy_1_1'], + 'XForwardedForConfig' => [ + 'title' => 'XForward字段相关的配置', + 'description' => 'XForward字段配置信息。', + 'type' => 'object', + 'properties' => [ + 'XForwardedForClientCertClientVerifyAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertClientVerifyEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头名称。只有当**XForwardedForClientCertClientVerifyEnabled**的值为**true**的时候,此值才会生效,否则该值不会生效。'."\n" ."\n" - .'- **Redirect**:重定向。'."\n" + .'取值限制:长度为1\\~40字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" ."\n" - .'- **FixedResponse**:返回固定内容。'."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'example' => 'test_client-verify-alias_123456'], + 'XForwardedForClientCertClientVerifyEnabled' => ['title' => '是否通过X-Forwarded-Clientcert-clientverify 头字段获取对访问负载均衡实例客户端证书的校验结果。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-clientverify`头字段获取访问负载均衡实例客户端证书的校验结果。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" ."\n" - .'- **Rewrite**:重写。'."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForClientCertFingerprintAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertFingerprintEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头名称,只有当**XForwardedForClientCertFingerprintEnabled**的值为**true**时生效。'."\n" ."\n" - .'- **InsertHeader**:写入头字段。'."\n" + .'取值限制:长度为1\\~40字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" ."\n" - .'- **RemoveHeader**:删除头字段。'."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'example' => 'test_finger-print-alias_123456'], + 'XForwardedForClientCertFingerprintEnabled' => ['title' => '是否通过X-Forwarded-Clientcert-fingerprint 头字段获取访问负载均衡实例客户端证书的指纹取值,HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-fingerprint`头字段获取访问负载均衡实例客户端证书的指纹取值。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" ."\n" - .'- **TrafficLimit**:流量限速。'."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForClientCertIssuerDNAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertIssuerDNEnabled的值为‘On’的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头名称,只有当**XForwardedForClientCertIssuerDNEnabled**的值为**true**的时候,此值才会生效。'."\n" ."\n" - .'- **TrafficMirror**:流量镜像。'."\n" + .'取值限制:长度为1\\~40字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" ."\n" - .'- **Cors**:跨域。'."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'example' => 'test_issue-dn-alias_123456'], + 'XForwardedForClientCertIssuerDNEnabled' => ['title' => '是否通过 X-Forwarded-Clientcert-issuerdn 头字段获取访问负载均衡实例客户端证书的发行者信息。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-issuerdn`头字段获取访问负载均衡实例客户端证书的发行者信息。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" ."\n\n" - .'> 一个转发规则必须包含有一条**ForwardGroup**(转发至)、**Redirect**(重定向)或**FixedResponse**(返回固定响应)转发动作,与其他类型转发动作并存时,必须放在最后执行。', - 'type' => 'string', - 'required' => true, - 'example' => 'ForwardGroup', + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForClientCertSubjectDNAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertSubjectDNEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头名称,只有当**XForwardedForClientCertSubjectDNEnabled的**值为**true**时,此值才会生效。'."\n" + ."\n" + .'取值限制:长度为1\\~40字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'example' => 'test_subject-dn-alias_123456'], + 'XForwardedForClientCertSubjectDNEnabled' => ['title' => '是否通过X-Forwarded-Clientcert-subjectdn 头字段获取访问负载均衡实例客户端证书的所有者信息。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-subjectdn`头字段获取访问负载均衡实例客户端证书的所有者信息。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForClientSrcPortEnabled' => ['title' => '是否通过X-Forwarded-Client-Port 头字段获取访问负载均衡实例客户端的端口。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Client-Port`头字段获取访问负载均衡实例客户端的端口。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP和HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForEnabled' => ['title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP', 'description' => '是否通过`X-Forwarded-For`头字段获取来访者真实IP。取值:'."\n" + .'- **true**(默认值):是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 1. 配置**true**,**XForwardedForProcessingMode**默认取值**append**,支持修改为**remove**。'."\n" + .'> 2. 配置**false**,将请求发送至后端服务之前保留`X-Forwarded-For`头字段,不做额外处理。'."\n" + .'> 3. HTTP和HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForProcessingMode' => ['description' => '处理`X-Forwarded-For`头字段的模式。只有当**XForwardedForEnabled**为**true**时,此值才会生效。取值:'."\n" + .'- **append**(默认值):附加。'."\n" + .'- **remove**:删除。'."\n" + ."\n" + .'> 1. 配置**append**,将请求发送至后端服务之前把最后一跳IP加入`X-Forwarded-For`头字段。'."\n" + .'> 2. 配置**remove**,将请求发送至后端服务之前删除`X-Forwarded-For`标头,无论请求是否携带`X-Forwarded-For`头字段。'."\n" + .'> 3. HTTP和HTTPS监听支持此参数。', 'type' => 'string', 'example' => 'append'], + 'XForwardedForProtoEnabled' => ['title' => '是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。', 'description' => '是否通过`X-Forwarded-Proto`头字段获取负载均衡实例的监听协议。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForSLBIdEnabled' => ['title' => '是否通过SLB-ID头字段获取负载均衡实例ID。', 'description' => '是否通过`SLB-ID`头字段获取负载均衡实例ID。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForSLBPortEnabled' => ['title' => '是否通过X-Forwarded-Port 头字段获取负载均衡实例的监听端口。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Port`头字段获取负载均衡实例的监听端口。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForClientSourceIpsEnabled' => ['description' => '是否允许ALB从X-Forwarded-For头字段中查找真实客户端IP。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP、HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'false'], + 'XForwardedForClientSourceIpsTrusted' => ['description' => '指定可信的代理IP。'."\n" + ."\n" + .'应用型负载均衡ALB会从后往前遍历`X-Forwarded-For`,选取第一个不在可信IP列表中的IP作为真实的客户端IP,该IP会被用于源IP限速。', 'type' => 'string', 'example' => '10.1.1.0/24'], + 'XForwardedForHostEnabled' => ['description' => '是否开启通过`X-Forwarded-Host`头字段获取访问负载均衡实例客户端的域名。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'example' => 'false'], ], - 'TrafficLimitConfig' => [ - 'title' => '流量限速', - 'description' => '流量限速。', + ], + 'Tags' => [ + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签结构。', 'type' => 'object', 'properties' => [ - 'QPS' => [ - 'description' => '每秒请求次数。取值范围:**1~1000000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - 'PerIpQps' => [ - 'description' => '单IP每秒请求次数。 取值范围:**1 ~ 1000000**。'."\n" - ."\n" - .'> 如果同时配置**QPS**参数,**PerIpQps**参数的取值必须小于**QPS**参数的取值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '80', - ], + 'Key' => ['description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'example' => 'env'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'example' => 'product'], ], - 'required' => false, ], - 'TrafficMirrorConfig' => [ - 'title' => '流量镜像', - 'description' => '流量镜像。', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], + ], + ], + 'title' => '查询监听器的属性', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:GetListenerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'acs:ResourceTag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclConfig\\": {\\n \\"AclRelations\\": [\\n {\\n \\"AclId\\": \\"acl-doc****\\",\\n \\"Status\\": \\"Associating\\"\\n }\\n ],\\n \\"AclType\\": \\"White\\"\\n },\\n \\"Certificates\\": [\\n {\\n \\"CertificateId\\": \\"123157*******\\"\\n }\\n ],\\n \\"CaCertificates\\": [\\n {\\n \\"CertificateId\\": \\"139a00*****\\",\\n \\"Status\\": \\"Associated\\",\\n \\"IsDefault\\": true\\n }\\n ],\\n \\"CaEnabled\\": false,\\n \\"DefaultActions\\": [\\n {\\n \\"ForwardGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-i5qt20******\\"\\n }\\n ]\\n },\\n \\"Type\\": \\"ForwardGroup\\"\\n }\\n ],\\n \\"GzipEnabled\\": true,\\n \\"Http2Enabled\\": true,\\n \\"IdleTimeout\\": 2,\\n \\"ListenerDescription\\": \\"HTTP_80\\",\\n \\"ListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTP\\",\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"LoadBalancerId\\": \\"alb-bd6oylbckp6k9x****\\",\\n \\"LogConfig\\": {\\n \\"AccessLogRecordCustomizedHeadersEnabled\\": true,\\n \\"AccessLogTracingConfig\\": {\\n \\"TracingEnabled\\": true,\\n \\"TracingSample\\": 100,\\n \\"TracingType\\": \\"Zipkin\\"\\n }\\n },\\n \\"QuicConfig\\": {\\n \\"QuicListenerId\\": \\"lsn-ek6ad66t****\\",\\n \\"QuicUpgradeEnabled\\": true\\n },\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\",\\n \\"RequestTimeout\\": 34,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_1\\",\\n \\"XForwardedForConfig\\": {\\n \\"XForwardedForClientCertClientVerifyAlias\\": \\"test_client-verify-alias_123456\\",\\n \\"XForwardedForClientCertClientVerifyEnabled\\": true,\\n \\"XForwardedForClientCertFingerprintAlias\\": \\"test_finger-print-alias_123456\\",\\n \\"XForwardedForClientCertFingerprintEnabled\\": true,\\n \\"XForwardedForClientCertIssuerDNAlias\\": \\"test_issue-dn-alias_123456\\",\\n \\"XForwardedForClientCertIssuerDNEnabled\\": true,\\n \\"XForwardedForClientCertSubjectDNAlias\\": \\"test_subject-dn-alias_123456\\",\\n \\"XForwardedForClientCertSubjectDNEnabled\\": true,\\n \\"XForwardedForClientSrcPortEnabled\\": true,\\n \\"XForwardedForEnabled\\": true,\\n \\"XForwardedForProcessingMode\\": \\"append\\",\\n \\"XForwardedForProtoEnabled\\": true,\\n \\"XForwardedForSLBIdEnabled\\": true,\\n \\"XForwardedForSLBPortEnabled\\": true,\\n \\"XForwardedForClientSourceIpsEnabled\\": false,\\n \\"XForwardedForClientSourceIpsTrusted\\": \\"10.1.1.0/24\\",\\n \\"XForwardedForHostEnabled\\": false\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n acl-doc****\\n Associating\\n \\n White\\n \\n \\n 12315790212_166f8204689_1714763408_70998****\\n \\n \\n 139a00604bd-cn-east-hangzho****\\n Associated\\n true\\n \\n false\\n \\n \\n \\n rsp-cige6j****\\n \\n \\n ForwardGroup\\n \\n true\\n true\\n 2\\n HTTP_80\\n lsr-bp1bpn0kn908w4nbw****\\n 80\\n HTTP\\n Running\\n alb-bd6oylbckp6k9x****\\n \\n true\\n \\n true\\n 100\\n Zipkin\\n \\n \\n \\n lsn-333\\n true\\n \\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 34\\n tls_cipher_policy_1_1\\n \\n test_client-verify-alias_123456\\n true\\n test_finger-print-alias_123456\\n true\\n test_issue-dn-alias_123456\\n true\\n test_subject-dn-alias_123456\\n true\\n true\\n true\\n true\\n true\\n true\\n false\\n 10.1.1.0/24\\n \\n","errorExample":""}]', + ], + 'GetListenerHealthStatus' => [ + 'summary' => '查询监听及其转发规则的健康检查状态。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslb6RAQIN', 'FEATUREslb52757O', 'FEATUREslbH8SCXY', 'FEATUREslbR7E3ND'], + ], + 'parameters' => [ + [ + 'name' => 'ListenerId', + 'in' => 'query', + 'schema' => ['title' => '监听Id', 'description' => '实例的监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******'], + ], + [ + 'name' => 'IncludeRule', + 'in' => 'query', + 'schema' => ['title' => '是否包含转发规则健康检查结果', 'description' => '是否包含转发规则的检查结果。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => '分批次查询时每次显示的最大条目数。取值范围:**1**~**30**,默认值为**20**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '查询监听及其相应配置的转发规则的健康检查状态。', + 'type' => 'object', + 'properties' => [ + 'ListenerHealthStatus' => [ + 'title' => '监听健康检查结果', + 'description' => '监听的服务器组健康检查状态列表。', + 'type' => 'array', + 'items' => [ + 'description' => '监听的服务器组健康检查状态结构。', 'type' => 'object', 'properties' => [ - 'TargetType' => [ - 'title' => '镜像目标类型', - 'description' => '镜像的目标类型。取值:'."\n" - .'- **ForwardGroupMirror**:表示镜像至服务器组。', - 'type' => 'string', - 'required' => false, - 'example' => 'ForwardGroupMirror', - ], - 'MirrorGroupConfig' => [ - 'title' => '镜像至服务器组', - 'description' => '流量镜像至服务器组。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupTuples' => [ - 'description' => '流量镜像至服务器组。', - 'type' => 'array', - 'items' => [ - 'description' => '流量镜像至服务器组。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupId' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-00mkgijak0w4qgz9****', + 'ListenerId' => ['title' => '监听Id', 'description' => '实例的监听ID。', 'type' => 'string', 'example' => 'lsn-o4u54y73wq7b******'], + 'ListenerPort' => ['title' => '监听的端口号', 'description' => '监听的端口号。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'ListenerProtocol' => ['title' => '监听的协议', 'description' => '监听的协议。', 'type' => 'string', 'example' => 'http'], + 'ServerGroupInfos' => [ + 'title' => '服务器组健康检查结果', + 'description' => '服务器组信息。', + 'type' => 'array', + 'items' => [ + 'description' => '服务器组信息。', + 'type' => 'object', + 'properties' => [ + 'HealthCheckEnabled' => ['title' => '健康检查开启/关闭', 'description' => '健康检查开启状态。取值: **on**,表示开启健康检查。', 'type' => 'string', 'example' => 'on'], + 'NonNormalServers' => [ + 'title' => '处于非正常状态的后端服务器', + 'description' => '非正常状态的后端服务器列表。', + 'type' => 'array', + 'items' => [ + 'description' => '非正常状态的后端服务器列表。', + 'type' => 'object', + 'properties' => [ + 'Port' => ['title' => '后端服务器端口', 'description' => '后端服务器端口。', 'type' => 'integer', 'format' => 'int32', 'example' => '90'], + 'Reason' => [ + 'title' => 'status为非正常状态时的详细异常原因', + 'description' => '非正常状态的原因。', + 'type' => 'object', + 'properties' => [ + 'ActualResponse' => ['title' => '后端实际的返回码信息', 'description' => '后端服务器实际的返回码信息,例如,**302**。'."\n" + ."\n" + .'> **ReasonCode**为**RESPONSE_MISMATCH**才该返回值。', 'type' => 'string', 'example' => '302'], + 'ExpectedResponse' => ['title' => '用户预期的后端返回码信息', 'description' => '用户预期的后端服务器返回码信息。'."\n" + ."\n" + .'取值:**HTTP\\_2xx**、**HTTP\\_3xx**、**HTTP\\_4xx**和**HTTP\\_5xx**。多个返回码之间用半角逗号(,)分隔。'."\n" + ."\n" + .'> **ReasonCode**为**RESPONSE_MISMATCH**才返回该值。', 'type' => 'string', 'example' => 'HTTP_2xx'], + 'ReasonCode' => ['title' => '失败reasonCode', 'description' => '**Status**为异常状态时的详细原因。'."\n" + .'目前仅HTTP和HTTPS的监听与转发规则支持查看异常状态原因:'."\n" + .'- **CONNECT_TIMEOUT**:负载均衡健康检查时向后端服务器建立连接超时。'."\n" + ."\n" + .'- **CONNECT_FAILED**:负载均衡健康检查时向后端服务器建立连接失败。'."\n" + ."\n" + .'- **RECV_RESPONSE_FAILED**:负载均衡健康检查时从后端服务器接收响应失败。'."\n" + ."\n" + .'- **RECV_RESPONSE_TIMEOUT**:负载均衡健康检查时从后端服务器接收响应超时。'."\n" + ."\n" + .'- **SEND_REQUEST_FAILED**:负载均衡健康检查时向后端服务器发送请求失败。'."\n" + ."\n" + .'- **SEND_REQUEST_TIMEOUT**:负载均衡健康检查时向后端服务器发送请求超时。'."\n" + ."\n" + .'- **RESPONSE_FORMAT_ERROR**:负载均衡健康检查时从后端服务器接收响应格式错误。'."\n" + ."\n" + .'- **RESPONSE_MISMATCH**:负载均衡健康检查时从后端服务器接收的响应码与预期配置返回码不一致。', 'type' => 'string', 'example' => 'RESPONSE_MISMATCH'], + ], + ], + 'ServerId' => ['title' => '后端服务器id', 'description' => '后端服务器ID。', 'type' => 'string', 'example' => 'i-uf62h8v******'], + 'ServerIp' => ['title' => '后端服务器Ip', 'description' => '后端服务器IP。', 'type' => 'string', 'example' => '192.168.8.10'], + 'Status' => ['title' => '健康检查状态', 'description' => '健康检查状态。取值:'."\n" + ."\n" + .'- **Initial**:初始化中,表示负载均衡实例配置了健康检查,但查不到数据。'."\n" + ."\n" + .'- **Unhealthy**:异常,表示连续上报不健康的状态。'."\n" + ."\n" + .'- **Unused**:未使用,表示后端服务器的权重为 0 或当您设置关闭跨 AZ 负载均衡,且后端服务器与 ALB 不在相同可用区。'."\n" + ."\n" + .'- **Unavailable**:未开启,表示未开启健康检查。', 'type' => 'string', 'example' => 'Initial'], ], ], - 'required' => false, ], - 'required' => false, + 'ServerGroupId' => ['title' => '服务器组ID', 'description' => '关联的服务器组ID。', 'type' => 'string', 'example' => 'sgp-8ilqs4axp6******'], + 'ActionType' => ['title' => '服务器组使用类型', 'description' => '服务器组使用类型。取值:'."\n" + ."\n" + .'- **ForwardGroup**:转发至服务器组。'."\n" + .'- **TrafficMirror**:流量镜像至服务器组。', 'type' => 'string', 'example' => 'TrafficMirror'], ], ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'RemoveHeaderConfig' => [ - 'title' => '去除HTTP标头', - 'description' => '去除HTTP头部配置。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头键', - 'description' => '去除的头字段名称,长度为1~40个字符,支持大小写字母a~z、数字、下划线(_)和短划线(-)。头字段名称不能重复用于RemoveHeader中。'."\n" - ."\n" - .'- 请求方向(Direction取值为Request):不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`、`x-forwarded-host`。'."\n" - .'- 响应方向(Direction取值为Response):响应方向不允许将头名称设置为以下字段(不区分大小写):`connection`、`upgrade`、`content-length`、`transfer-encoding`。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', ], ], - 'required' => false, ], - 'CorsConfig' => [ - 'title' => '跨域', - 'description' => '跨域。', + ], + 'RequestId' => ['title' => '请求Id', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876F******'], + 'RuleHealthStatus' => [ + 'title' => '转发规则健康检查结果', + 'description' => '转发规则的健康状态列表。', + 'type' => 'array', + 'items' => [ + 'description' => '转发规则的健康状态结构。', 'type' => 'object', 'properties' => [ - 'AllowOrigin' => [ - 'title' => '允许的访问来源', - 'description' => '允许的访问来源列表。支持只配置一个元素`*`,或配置一个或多个值。'."\n" - .'- 单个值必须以`http://`或者`https://`开头,后边加一个正确的域名或一级泛域名。(例:`http://*.test.abc.example.com`)'."\n" - .'- 单个值可以不加端口,也可以指定端口,端口范围:**1**~**65535**。', - 'type' => 'array', - 'items' => [ - 'description' => '允许访问的来源。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://example.com', - ], - 'required' => false, - ], - 'AllowMethods' => [ - 'title' => '选择跨域访问时允许的HTTP方法', - 'description' => '选择跨域访问时允许的HTTP方法。', - 'type' => 'array', - 'items' => [ - 'description' => '选择跨域访问时允许的HTTP方法。取值:'."\n" - ."\n" - .'- **GET**。'."\n" - .'- **POST**。'."\n" - .'- **PUT**。'."\n" - .'- **DELETE**。'."\n" - .'- **HEAD**。'."\n" - .'- **OPTIONS**。'."\n" - .'- **PATCH**。', - 'type' => 'string', - 'required' => false, - 'example' => 'GET', - ], - 'required' => false, - ], - 'AllowHeaders' => [ - 'title' => '允许跨域的Header列表', - 'description' => '允许跨域的Header列表。', - 'type' => 'array', - 'items' => [ - 'description' => '允许跨域的Header。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_123', - ], - 'required' => false, - ], - 'ExposeHeaders' => [ - 'title' => '允许暴露的Header列表', - 'description' => '允许暴露的Header列表。', + 'RuleId' => ['title' => '转发规则ID', 'description' => '转发规则ID。', 'type' => 'string', 'example' => 'rule-hp34s2h0xx1ht4nwo****'], + 'ServerGroupInfos' => [ + 'title' => '服务器组健康检查结果', + 'description' => '服务器组列表。', 'type' => 'array', 'items' => [ - 'description' => '允许暴露的Header。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_123', + 'description' => '服务器组结构。', + 'type' => 'object', + 'properties' => [ + 'HealthCheckEnabled' => ['title' => '健康检查开启/关闭', 'description' => '健康检查开启状态。取值: **on**,表示开启健康检查。', 'type' => 'string', 'example' => 'on'], + 'NonNormalServers' => [ + 'title' => '处于非正常状态的后端服务器', + 'description' => '非正常状态的后端服务器列表。', + 'type' => 'array', + 'items' => [ + 'description' => '非正常状态的后端服务器列表。', + 'type' => 'object', + 'properties' => [ + 'Port' => ['title' => '后端服务器端口', 'description' => '后端服务器端口。', 'type' => 'integer', 'format' => 'int32', 'example' => '90'], + 'Reason' => [ + 'title' => 'status为非正常状态时的详细异常原因', + 'description' => '非正常状态的原因。', + 'type' => 'object', + 'properties' => [ + 'ActualResponse' => ['title' => '后端实际的返回码信息', 'description' => '后端服务器实际的返回码信息,例如,**302**。'."\n" + ."\n" + .'> **ReasonCode**为**RESPONSE_MISMATCH**才有值。', 'type' => 'string', 'example' => '302'], + 'ExpectedResponse' => ['title' => '用户预期的后端返回码信息', 'description' => '用户预期的后端服务器返回码信息。'."\n" + ."\n" + .'取值:**HTTP\\_2xx**、**HTTP\\_3xx**、**HTTP\\_4xx**和**HTTP\\_5xx**。多个返回码之间用半角逗号(,)分隔。'."\n" + ."\n" + .'> **ReasonCode**为**RESPONSE_MISMATCH**才有值。', 'type' => 'string', 'example' => 'HTTP_2xx'], + 'ReasonCode' => ['title' => '失败reasonCode', 'description' => '**Status**为异常状态时的详细原因。'."\n" + .'目前仅HTTP和HTTPS的监听与转发规则支持查看异常状态原因:'."\n" + .'- **CONNECT_TIMEOUT**:负载均衡健康检查时向后端服务器建立连接超时。'."\n" + ."\n" + .'- **CONNECT_FAILED**:负载均衡健康检查时向后端服务器建立连接失败。'."\n" + ."\n" + .'- **RECV_RESPONSE_FAILED**:负载均衡健康检查时从后端服务器接收响应失败。'."\n" + ."\n" + .'- **RECV_RESPONSE_TIMEOUT**:负载均衡健康检查时从后端服务器接收响应超时。'."\n" + ."\n" + .'- **SEND_REQUEST_FAILED**:负载均衡健康检查时向后端服务器发送请求失败。'."\n" + ."\n" + .'- **SEND_REQUEST_TIMEOUT**:负载均衡健康检查时向后端服务器发送请求超时。'."\n" + ."\n" + .'- **RESPONSE_FORMAT_ERROR**:负载均衡健康检查时从后端服务器接收响应格式错误。'."\n" + ."\n" + .'- **RESPONSE_MISMATCH**:负载均衡健康检查时从后端服务器接收的响应码与预期配置返回码不一致。', 'type' => 'string', 'example' => 'RESPONSE_MISMATCH'], + ], + ], + 'ServerId' => ['title' => '后端服务器Id', 'description' => '后端服务器ID。', 'type' => 'string', 'example' => 'i-uf62h8v******'], + 'ServerIp' => ['title' => '后端服务器ID', 'description' => '后端服务器组IP。', 'type' => 'string', 'example' => '192.168.2.11'], + 'Status' => ['title' => '健康检查状态', 'description' => '健康检查状态。取值:'."\n" + ."\n" + .'- **Initial**:初始化中,表示负载均衡实例配置了健康检查,但查不到数据。'."\n" + ."\n" + .'- **Unhealthy**:异常,表示连续上报不健康的状态。'."\n" + ."\n" + .'- **Unused**:未使用,表示后端服务器的权重为0或当您设置关闭跨AZ负载均衡,且后端服务器与ALB不在相同可用区。'."\n" + ."\n" + .'- **Unavailable**:未开启,表示未开启健康检查。', 'type' => 'string', 'example' => 'Initial'], + ], + ], + ], + 'ServerGroupId' => ['title' => '服务器组ID', 'description' => '关联的服务器组ID。', 'type' => 'string', 'example' => 'sgp-8ilqs4axp6******'], + 'ActionType' => ['title' => '服务器组使用类型', 'description' => '服务器组使用类型。', 'type' => 'string', 'example' => 'TrafficMirror'], + ], ], - 'required' => false, - ], - 'AllowCredentials' => [ - 'title' => '是否允许携带凭证信息', - 'description' => '是否允许携带凭证信息。取值:'."\n" - ."\n" - .'- **on**:是。'."\n" - .'- **off**:否。', - 'type' => 'string', - 'required' => false, - 'example' => 'on', - ], - 'MaxAge' => [ - 'title' => '预检请求在浏览器的最大缓存时间', - 'description' => '预检请求在浏览器的最大缓存时间,单位:秒。'."\n" - ."\n" - .'取值范围:**-1**~**172800**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1000', ], ], - 'required' => false, ], ], - 'required' => true, + 'NextToken' => ['title' => '下一页标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], - 'required' => true, - 'maxItems' => 100, - 'minItems' => 1, ], ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ], [ - 'name' => 'RuleConditions', + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ListenerHealthStatus\\": [\\n {\\n \\"ListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"http\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HealthCheckEnabled\\": \\"on\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Port\\": 90,\\n \\"Reason\\": {\\n \\"ActualResponse\\": \\"302\\",\\n \\"ExpectedResponse\\": \\"HTTP_2xx\\",\\n \\"ReasonCode\\": \\"RESPONSE_MISMATCH\\"\\n },\\n \\"ServerId\\": \\"i-uf62h8v******\\",\\n \\"ServerIp\\": \\"192.168.8.10\\",\\n \\"Status\\": \\"Initial\\"\\n }\\n ],\\n \\"ServerGroupId\\": \\"sgp-8ilqs4axp6******\\",\\n \\"ActionType\\": \\"TrafficMirror\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876F******\\",\\n \\"RuleHealthStatus\\": [\\n {\\n \\"RuleId\\": \\"rule-hp34s2h0xx1ht4nwo****\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HealthCheckEnabled\\": \\"on\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Port\\": 90,\\n \\"Reason\\": {\\n \\"ActualResponse\\": \\"302\\",\\n \\"ExpectedResponse\\": \\"HTTP_2xx\\",\\n \\"ReasonCode\\": \\"RESPONSE_MISMATCH\\"\\n },\\n \\"ServerId\\": \\"i-uf62h8v******\\",\\n \\"ServerIp\\": \\"192.168.2.11\\",\\n \\"Status\\": \\"Initial\\"\\n }\\n ],\\n \\"ServerGroupId\\": \\"sgp-8ilqs4axp6******\\",\\n \\"ActionType\\": \\"TrafficMirror\\"\\n }\\n ]\\n }\\n ],\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n lsr-bp1bpn0kn908w4nbw****\\n 80\\n http\\n \\n on\\n \\n 90\\n \\n 302\\n HTTP_2xx\\n RESPONSE_MISMATCH\\n \\n rg-bp1bfa08ex*****\\n 192.168.8.10\\n Initial\\n \\n vsp-bp1qjwo61pqz3ahltv****\\n TrafficMirror\\n \\n \\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n \\n rule-hp34s2h0xx1ht4nwo****\\n \\n on\\n \\n 90\\n \\n 302\\n HTTP_2xx\\n RESPONSE_MISMATCH\\n \\n rg-bp1bfa08ex****\\n 192.168.2.11\\n Initial\\n \\n vsp-bp1qjwo61pqz3ahlt****\\n TrafficMirror\\n \\n \\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n","errorExample":""}]', + 'title' => '查询健康检查', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:GetListenerHealthStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], + ], + ], + 'GetLoadBalancerAttribute' => [ + 'summary' => '查询指定负载均衡实例的详细信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '200', + 'abilityTreeNodes' => ['FEATUREslbM7ALO6', 'FEATUREslbK3ZR0L', 'FEATUREslbN5IE4S'], + ], + 'parameters' => [ + [ + 'name' => 'LoadBalancerId', 'in' => 'query', - 'style' => 'flat', + 'schema' => ['title' => '实例标识', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '转发规则条件', - 'description' => '转发规则条件列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发规则条件。', - 'type' => 'object', - 'properties' => [ - 'CookieConfig' => [ - 'title' => 'Cookie条件配置', - 'description' => 'Cookie配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => 'Cookie键值对列表', - 'description' => 'Cookie值列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'Cookie值结构体。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'Cookie条件键', - 'description' => 'Cookie键。'."\n" - .'- 支持1\\~100个字符。'."\n" - .'- 支持可见字符和通配符星号(*)和半角问号(?),如果是字母必须为小写字母。'."\n" - .'- 不支持空格和`;#[]{}\\|<>&"`。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'Value' => [ - 'title' => 'Cookie条件值', - 'description' => 'Cookie值。'."\n" - ."\n" - .'- 支持1\\~100个字符。'."\n" - .'- 支持可见字符和通配符星号(*)和半角问号(?),如果是字母必须为小写字母。'."\n" - .'- 不支持空格和`;#[]{}\\|<>&"`。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 50, - ], - ], - 'required' => false, + 'title' => 'Schema of Response', + 'description' => '应用型负载均衡实例详细配置信息。', + 'type' => 'object', + 'properties' => [ + 'AccessLogConfig' => [ + 'title' => '访问日志属性', + 'description' => '访问日志配置。', + 'type' => 'object', + 'properties' => [ + 'LogProject' => ['title' => '访问日志投递的logProject', 'description' => '日志项目。', 'type' => 'string', 'example' => 'sls-setter'], + 'LogStore' => ['title' => '删除保护开启时间', 'description' => '日志存储。'."\n" + ."\n", 'type' => 'string', 'example' => 'test'], ], - 'HeaderConfig' => [ - 'title' => 'HTTP标头条件配置', - 'description' => '头字段配置。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头键', - 'description' => '头字段键。'."\n" - ."\n" - .'- 支持1\\~40个字符。'."\n" - .'- 支持字母a~z、数字、短划线(-)和下划线(_)。'."\n" - .'- 不支持Cookie和Host。', - 'type' => 'string', - 'required' => false, - 'example' => 'Port', - ], - 'Values' => [ - 'title' => 'HTTP标头值列表', - 'description' => '头字段值列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'HTTP标头值列表。同一个转发规则条件内头字段值不能重复。'."\n" - .'- 支持1\\~128个字符。'."\n" - .'- 支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、星号(*)和半角问号(?)。不支持`"`。'."\n" - .'- 开头和结尾不能为空格。结尾不能为`\\`。', - 'type' => 'string', - 'required' => false, - 'example' => '5006', - ], - 'required' => false, - 'maxItems' => 50, - ], - ], - 'required' => false, + ], + 'AddressAllocatedMode' => ['title' => '地址分配方式', 'description' => '地址模式。取值 :'."\n" + ."\n" + .'- **Fixed**:固定IP模式,表示使用固定的IP地址。'."\n" + ."\n" + .'- **Dynamic**:动态IP模式,表示在每个可用区动态分配IP地址。', 'type' => 'string', 'example' => 'Dynamic'], + 'AddressType' => ['title' => '地址类型', 'description' => '应用型负载均衡实例的网络地址类型。取值:'."\n" + ."\n" + .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + ."\n" + .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。'."\n" + ."\n", 'type' => 'string', 'example' => 'Intranet'], + 'BandwidthPackageId' => ['title' => '带宽包ID', 'description' => '公网类型实例关联的共享带宽包ID。', 'type' => 'string', 'example' => 'cbwp-bp1vevu8h3ieh****'], + 'CreateTime' => ['title' => '资源创建时间', 'description' => '资源创建时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', 'type' => 'string', 'example' => '2022-07-02T02:49:05Z'], + 'DNSName' => ['title' => 'DNS域名', 'description' => 'DNS域名。', 'type' => 'string', 'example' => 'alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com'], + 'DeletionProtectionConfig' => [ + 'title' => '负载均衡删除保护相关信息', + 'description' => '删除保护配置。', + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['title' => '删除保护状态', 'description' => '删除保护状态,取值:'."\n" + ."\n" + .'- **true**:开启状态。'."\n" + ."\n" + .'- **false**:关闭状态。', 'type' => 'boolean', 'example' => 'true'], + 'EnabledTime' => ['title' => '删除保护开启时间', 'description' => '删除保护开启时间,使用格林威治时间,格式为`yyyy-MM-ddTHH:mm:ssZ`。', 'type' => 'string', 'example' => '2022-08-02T02:49:05Z'], ], - 'HostConfig' => [ - 'title' => '主机名条件配置', - 'description' => '主机配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '主机名列表', - 'description' => '主机名列表。', - 'type' => 'array', - 'items' => [ - 'description' => '主机名。一个转发规则条件中只能有一个主机名,并且取值不能重复。'."\n" - ."\n" - .'- 主机名长度为3\\~128个字符,支持小写字母a~z、数字0~9、短划线(-)、半角句号(.)、星号(*)、等号(=)、波浪线(~)、下划线(_)、加号(+)、反斜线(\\)、脱字号(^)、感叹号(!)、美元符号($)、and(&)、竖线(|)、半角圆括号(())、方括号(\\[\\])和半角问号(?)。'."\n" - ."\n" - .'- 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" - ."\n" - .'- 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-),最左侧`domainlable`允许是星号(*)。'."\n" - ."\n" - .'- 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。'."\n" - ."\n" - .'- 对于<精确匹配和通配符>的输入框,首字符不可以为波浪线(~)。'."\n" - .'- 对于正则的输入框(<正则匹配(不区分大小写)>,首字符不可以为星号(*)。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.edu', - ], - 'required' => false, - 'maxItems' => 50, - ], - ], - 'required' => false, + ], + 'LoadBalancerBillingConfig' => [ + 'title' => '计费相关属性', + 'description' => '应用型负载均衡实例计费配置。', + 'type' => 'object', + 'properties' => [ + 'PayType' => ['title' => '实例的计费类型', 'description' => '计费类型。'."\n" + ."\n" + .'取值: **PostPay**表示按量计费。', 'type' => 'string', 'example' => 'PostPay', 'default' => 'PostPay'], ], - 'MethodConfig' => [ - 'title' => 'HTTP请求方法条件配置', - 'description' => '请求方法配置。', + ], + 'LoadBalancerBussinessStatus' => ['title' => '实例业务状态', 'description' => '应用型负载均衡的业务状态。取值:'."\n" + ."\n" + .'- **Abnormal**:异常状态。'."\n" + ."\n" + .'- **Normal**:正常状态。', 'type' => 'string', 'example' => 'Normal'], + 'LoadBalancerEdition' => ['title' => '负载均衡的版本', 'description' => '应用型负载均衡的版本,不同版本有不同功能限制和计费策略。取值:'."\n" + ."\n" + .'- **Basic**:基础版。'."\n" + ."\n" + .'- **Standard**:标准版。'."\n" + ."\n" + .'- **StandardWithWaf**:WAF增强版。', 'type' => 'string', 'example' => 'Standard'], + 'LoadBalancerId' => ['title' => '负载均衡标识', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'example' => 'alb-o9ulmq5hgn68jk****'], + 'LoadBalancerName' => ['title' => '实例名称', 'description' => '实例名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'example' => 'alb1'], + 'LoadBalancerOperationLocks' => [ + 'title' => '锁定原因', + 'description' => '应用型负载均衡操作锁配置。', + 'type' => 'array', + 'items' => [ + 'description' => '应用型负载均衡操作锁配置。', 'type' => 'object', 'properties' => [ - 'Values' => [ - 'title' => 'HTTP请求方法列表', - 'description' => '请求方法列表。', - 'type' => 'array', - 'items' => [ - 'description' => '请求方法。'."\n" - ."\n" - .'取值:**HEAD**、**GET**、**POST**、**OPTIONS**、**PUT**、**PATCH**、**DELETE**。', - 'type' => 'string', - 'required' => false, - 'example' => 'PUT', - ], - 'required' => false, - 'maxItems' => 10, - ], + 'LockReason' => ['title' => '锁定原因', 'description' => '锁定的原因。在**LoadBalancerBussinessStatus**为**异常**时有效。', 'type' => 'string', 'example' => '欠费'], + 'LockType' => ['title' => '锁定类型', 'description' => '锁定的类型。取值 :'."\n" + ."\n" + .'- **SecurityLocked**:安全锁定。'."\n" + ."\n" + .'- **RelatedResourceLocked**:关联锁定。'."\n" + ."\n" + .'- **FinancialLocked**:欠费锁定。'."\n" + ."\n" + .'- **ResidualLocked**:残留锁定。', 'type' => 'string', 'example' => 'FinancialLocked'], ], - 'required' => false, ], - 'PathConfig' => [ - 'title' => '路径条件配置', - 'description' => '转发路径配置。', + ], + 'LoadBalancerStatus' => ['title' => '实例状态', 'description' => '应用型负载均衡实例状态。取值:'."\n" + ."\n" + .'- **Inactive**: 已停止,表示实例监听不会再转发流量。'."\n" + ."\n" + .'- **Active**: 运行中。'."\n" + ."\n" + .'- **Provisioning**:创建中。'."\n" + ."\n" + .'- **Configuring**:变配中。'."\n" + ."\n" + .'- **CreateFailed**:创建失败,此时不会产生费用,实例只能被删除。', 'type' => 'string', 'example' => 'Active'], + 'ModificationProtectionConfig' => [ + 'title' => '负载均衡修改保护相关信息', + 'description' => '修改保护配置。', + 'type' => 'object', + 'properties' => [ + 'Reason' => ['title' => '设置修改保护状态的原因', 'description' => '开启修改保护的原因。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" + ."\n" + .'仅在**Status**为**ConsoleProtection**时返回。', 'type' => 'string', 'example' => 'Managed instance'], + 'Status' => ['title' => '负载均衡修改保护状态', 'description' => '应用型负载均衡实例的修改保护状态。取值:'."\n" + ."\n" + .'- **NonProtection**:未开启修改保护。如有配置**Reason**,**Reason**会被强制置空。'."\n" + ."\n" + .'- **ConsoleProtection**:已开启控制台修改保护。如有配置**Reason**,**Reason**可生效。'."\n" + ."\n" + .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', 'type' => 'string', 'example' => 'ConsoleProtection'], + ], + ], + 'RegionId' => ['title' => '地域', 'description' => '应用型负载均衡实例的地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'], + 'ResourceGroupId' => ['title' => '企业资源组ID', 'description' => '企业资源组ID。', 'type' => 'string', 'example' => 'rg-atstuj3rtop****'], + 'Tags' => [ + 'title' => '标签列表', + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签。', 'type' => 'object', 'properties' => [ - 'Values' => [ - 'title' => '路径条件列表', - 'description' => '转发路径列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发路径。取值范围:'."\n" - .'- 长度为1\\~128个字符,大小写敏感,支持星号(*)和半角问号(?)作为通配符使用。'."\n" - ."\n" - .'- 非正则表达式的URL ,必须以正斜线(/)开头,支持字母、数字和特殊字符`$-_.+/&~@:\'*?`,不支持`“%#;!()[]^,”\\"`,支持星号(*)和半角问号(?)作为通配符使用。'."\n" - ."\n" - .'- 正则表达式的URL ,必须以~开头,支持大小写字母、数字和特殊字符`.-_/=?~^*$:()[]+|`。', - 'type' => 'string', - 'required' => false, - 'example' => '/test', - ], - 'required' => false, - 'maxItems' => 50, - ], + 'Key' => ['title' => '实例的标签键', 'description' => '实例的标签键。'."\n" + ."\n" + .'最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'example' => 'FinanceDept'], + 'Value' => ['title' => '实例的标签值', 'description' => '实例的标签值。'."\n" + ."\n" + .'最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'example' => 'FinanceJoshua'], ], - 'required' => false, ], - 'QueryStringConfig' => [ - 'title' => '查询字符串条件配置', - 'description' => '查询字符串配置。', + ], + 'VpcId' => ['title' => 'Vpc网络ID', 'description' => '实例的专有网络ID。', 'type' => 'string', 'example' => 'vpc-bp1b49rqrybk45nio****'], + 'ZoneMappings' => [ + 'title' => '负载均衡的可用区资源', + 'description' => '可用区及交换机映射列表,最多返回10个可用区。若当前地域支持2个及以上可用区,至少返回2个及以上可用区。', + 'type' => 'array', + 'items' => [ + 'description' => '可用区及交换机映射列表,最多返回10个可用区。若当前地域支持2个及以上可用区,至少返回2个及以上可用区。', 'type' => 'object', 'properties' => [ - 'Values' => [ - 'title' => '查询字符串条件键值对列表', - 'description' => '查询字符串列表。', + 'LoadBalancerAddresses' => [ + 'title' => '固定VIP模式下,负载均衡在此可用区中的地址列表', + 'description' => '实例地址。', 'type' => 'array', 'items' => [ - 'description' => '查询字符串。', + 'description' => '实例地址。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'title' => '查询字符串条件键', - 'description' => '查询字符串键。'."\n" - ."\n" - .'- 长度为1\\~100个字符。'."\n" - .'- 支持可见字符、通配符星号(*)和半角问号(?),如果是字母则必须为小写字母。不支持空格和`#[]{}\\|<>&"`。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'Address' => ['title' => 'IP地址', 'description' => '标识IPv4类型的IP地址。'."\n" + ."\n" + .'**AddressIPVersion**为**IPv4**和**DualStack**均生效,公网或私网IP地址由**AddressType**决定。', 'type' => 'string', 'example' => '10.1.0.61'], + 'Ipv6Address' => ['title' => 'Ipv6地址', 'description' => '标识IPv6类型的IP地址。'."\n" + ."\n" + .'仅在**AddressIPVersion**为**DualStack**时有效,公网或私网IP地址由**Ipv6AddressType**决定。', 'type' => 'string', 'example' => '2408:xxxx:249:dd01:6f4:750f:xxxx:bcd9'], + 'IntranetAddress' => ['title' => '私网地址', 'description' => 'IPv4私网地址。', 'type' => 'string', 'example' => '10.1.0.61'], + 'AllocationId' => ['description' => '弹性公网IP标识。', 'type' => 'string', 'example' => 'eip-uf6wm****1zj9'], + 'EipType' => ['description' => '公网EIP的类型。取值:'."\n" + ."\n" + .'- **Common**:弹性公网IP,简称EIP。'."\n" + .'- **Anycast**:任播弹性公网IP,简称Anycast EIP。'."\n" + ."\n" + .'> ALB支持绑定Anycast EIP的地域,请参见[使用限制](~~460727~~)。', 'type' => 'string', 'example' => 'Common'], + 'IntranetAddressHcStatus' => ['description' => '应用型负载均衡实例私网IPv4地址探测状态。'."\n" + ."\n" + .'只有可用区的状态为Active时才返回。取值:'."\n" + ."\n" + .'- **Healthy**:健康。'."\n" + .'- **Unhealthy**:异常。', 'type' => 'string', 'example' => 'Healthy'], + 'Ipv6AddressHcStatus' => ['description' => '应用型负载均衡实例IPv6地址探测状态。'."\n" + ."\n" + .'只有可用区的状态为Active时才返回。取值:'."\n" + ."\n" + .'- **Healthy**:健康。'."\n" + .'- **Unhealthy**:异常。', 'type' => 'string', 'example' => 'Healthy'], + 'Ipv4LocalAddresses' => [ + 'description' => 'IPv4 Local地址列表。ALB与后端服务交互使用的地址列表。', + 'type' => 'array', + 'items' => ['description' => 'IPv4 Local地址。', 'type' => 'string', 'example' => '10.1.0.62'], ], - 'Value' => [ - 'title' => '查询字符串条件值', - 'description' => '查询字符串值。'."\n" - ."\n" - .'- 长度为1\\~128个字符。'."\n" - .'- 支持小写字母、可见字符和通配符星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&"`。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'Ipv6LocalAddresses' => [ + 'description' => 'IPv6 Local地址列表。ALB与后端服务交互使用的地址列表。', + 'type' => 'array', + 'items' => ['description' => ' IPv6 Local地址。', 'type' => 'string', 'example' => '2408:xxxx:249:dd01:6f4:750f:xxxx:bcda'], ], ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 50, - ], - ], - 'required' => false, - ], - 'ResponseStatusCodeConfig' => [ - 'title' => '返回状态码条件', - 'description' => '响应状态码配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '返回状态码条件', - 'description' => '响应状态码列表。', - 'type' => 'array', - 'items' => [ - 'description' => '响应状态码。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', ], - 'required' => false, ], + 'VSwitchId' => ['title' => '交换机标识', 'description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。', 'type' => 'string', 'example' => 'vsw-bp12mw1f8k3jgy****'], + 'ZoneId' => ['title' => '可用区标识', 'description' => '应用型负载均衡实例的可用区ID。'."\n" + ."\n" + .'您可以通过调用[DescribeZones](~~189196~~)接口获取可用区ID对应的可用区的信息。', 'type' => 'string', 'example' => 'cn-hangzhou-a'], + 'Status' => ['description' => '可用区状态。取值:'."\n" + ."\n" + .'- **Active**:运行中。'."\n" + .'- **Stopped**:已停止。'."\n" + .'- **Shifted**:已移除。'."\n" + .'- **Starting**:启动中。'."\n" + .'- **Stopping**:停止中。', 'type' => 'string', 'example' => 'Active'], ], - 'required' => false, - ], - 'ResponseHeaderConfig' => [ - 'title' => '返回HTTP标头', - 'description' => '标头条件配置。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '返回HTTP标头键', - 'description' => '头字段键。'."\n" - .'- 长度为1~40个字符。'."\n" - .'- 支持字母a~z、数字、短划线(-)和下划线(_)。'."\n" - .'- 不支持Cookie和Host。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'Values' => [ - 'title' => '返回HTTP标头值', - 'description' => '头字段值列表。', - 'type' => 'array', - 'items' => [ - 'description' => '头字段值。'."\n" - ."\n" - .'- 长度为1~128个字符。'."\n" - .'- 支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、小写字母以及通配符星号(*)和半角问号(?)。不支持`"`。'."\n" - .'- 开头和结尾不能为空格。结尾不能为`\\`。', - 'type' => 'string', - 'required' => false, - 'example' => '50006', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'Type' => [ - 'title' => '条件类型', - 'description' => '转发规则类型。取值:'."\n" - ."\n" - .'- **Host**:主机。'."\n" - ."\n" - .'- **Path**:路径。'."\n" - ."\n" - .'- **Header**:HTTP头字段。'."\n" - ."\n" - .'- **QueryString**:查询字符串。'."\n" - ."\n" - .'- **Method**:请求方法。'."\n" - ."\n" - .'- **Cookie**:Cookie。'."\n" - ."\n" - .'- **SourceIp**:源IP。'."\n" - ."\n" - .'- **ResponseHeader**:响应HTTP头字段。'."\n" - ."\n" - .'- **ResponseStatusCode**: 响应状态码。', - 'type' => 'string', - 'required' => true, - 'example' => 'Host', - ], - 'SourceIpConfig' => [ - 'title' => '基于源IP业务流量匹配', - 'description' => '基于源IP业务流量匹配配置。当**Type**为**SourceIP**时必选且有效。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '基于源IP业务流量匹配', - 'description' => '基于源IP业务流量匹配列表。', - 'type' => 'array', - 'items' => [ - 'description' => '添加一个或多个IP地址或者IP地址段。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/32', - ], - 'required' => false, - ], - ], - 'required' => false, ], ], - 'required' => true, + 'AddressIpVersion' => ['title' => '协议版本', 'description' => '协议版本。取值:'."\n" + ."\n" + .'- **IPv4**:IPv4类型'."\n" + .'- **DualStack**:双栈类型', 'type' => 'string', 'example' => 'DualStack'], + 'Ipv6AddressType' => ['title' => 'IPV6地址类型', 'description' => '应用型负载均衡IPv6的网络地址类型。取值:'."\n" + ."\n" + .'- **Internet**:公网。负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + .'- **Intranet**:私网。负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'example' => 'Intranet'], + 'SecurityGroupIds' => [ + 'description' => '应用型负载均衡实例绑定的安全组ID集合。', + 'type' => 'array', + 'items' => ['description' => '应用型负载均衡实例绑定的安全组ID。', 'type' => 'string', 'example' => 'sg-uf63j385dzwlm6cy****'], + ], ], - 'required' => true, - 'maxItems' => 100, - 'minItems' => 1, ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication has failed for LoadBalancer.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AccessLogConfig\\": {\\n \\"LogProject\\": \\"sls-setter\\",\\n \\"LogStore\\": \\"test\\"\\n },\\n \\"AddressAllocatedMode\\": \\"Dynamic\\",\\n \\"AddressType\\": \\"Intranet\\",\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"DNSName\\": \\"alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\",\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"EnabledTime\\": \\"2022-08-02T02:49:05Z\\"\\n },\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"LoadBalancerBussinessStatus\\": \\"Normal\\",\\n \\"LoadBalancerEdition\\": \\"Standard\\",\\n \\"LoadBalancerId\\": \\"alb-o9ulmq5hgn68jk****\\",\\n \\"LoadBalancerName\\": \\"alb1\\",\\n \\"LoadBalancerOperationLocks\\": [\\n {\\n \\"LockReason\\": \\"欠费\\",\\n \\"LockType\\": \\"FinancialLocked\\"\\n }\\n ],\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"ModificationProtectionConfig\\": {\\n \\"Reason\\": \\"Managed instance\\",\\n \\"Status\\": \\"ConsoleProtection\\"\\n },\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"Address\\": \\"10.1.0.61\\",\\n \\"Ipv6Address\\": \\"2408:xxxx:249:dd01:6f4:750f:xxxx:bcd9\\",\\n \\"IntranetAddress\\": \\"10.1.0.61\\",\\n \\"AllocationId\\": \\"eip-uf6wm****1zj9\\",\\n \\"EipType\\": \\"Common\\",\\n \\"IntranetAddressHcStatus\\": \\"Healthy\\",\\n \\"Ipv6AddressHcStatus\\": \\"Healthy\\",\\n \\"Ipv4LocalAddresses\\": [\\n \\"10.1.0.62\\"\\n ],\\n \\"Ipv6LocalAddresses\\": [\\n \\"2408:xxxx:249:dd01:6f4:750f:xxxx:bcda\\"\\n ]\\n }\\n ],\\n \\"VSwitchId\\": \\"vsw-bp12mw1f8k3jgy****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"AddressIpVersion\\": \\"DualStack\\",\\n \\"Ipv6AddressType\\": \\"Intranet\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-uf63j385dzwlm6cy****\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n \\n sls-setter\\n test\\n \\n Dynamic\\n Intranet\\n cbwp-bp1vevu8h3ieh****\\n 2022-07-02T02:49:05Z\\n alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\n \\n true\\n 2022-08-02T02:49:05Z\\n \\n \\n PostPay\\n \\n Normal\\n Standard\\n alb-o9ulmq5hgn68jk****\\n alb1\\n \\n 欠费\\n FinancialLocked\\n \\n Active\\n \\n 托管实例\\n ConsoleProtection\\n \\n cn-hangzhou\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n rg-atstuj3rtop****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n vpc-bp1b49rqrybk45nio****\\n \\n \\n
192.168.10.1
\\n 2408:XXXX:39d:eb00::/56\\n
\\n vsw-bp12mw1f8k3jgy****\\n cn-hangzhou-a\\n
\\n DualStack\\n Intranet\\n
","errorExample":""}]', + 'title' => '查询负载均衡实例的详细信息', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:GetLoadBalancerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], + ], + ], + 'ListAScripts' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'RuleName', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list'], + 'parameters' => [ + [ + 'name' => 'NextToken', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['title' => '标记当前开始读取的位置,置空表示从头开始', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['title' => '本次读取的最大数据记录数量', 'description' => '本次读取的最大数据记录数。'."\n" + ."\n" + .'取值:**1**~**100**。'."\n" + ."\n" + .'默认值:**20**,表示用户没有传入数据。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '50'], + ], + [ + 'name' => 'ListenerIds', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '转发规则名称', - 'description' => '转发规则名称。 '."\n" - .'- 长度为2\\~128个英文或中文字符。'."\n" - .'- 必须以大小字母或中文开头,可包含数字,半角句号(.),下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => true, - 'example' => 'rule-doc', + 'description' => '监听ID列表。一次最多支持查询20个监听。', + 'type' => 'array', + 'items' => ['description' => '监听ID。', 'type' => 'string', 'required' => false, 'example' => 'lsn-9v9b8576m2laih****'], + 'required' => false, ], ], [ - 'name' => 'Tag', + 'name' => 'AScriptIds', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'description' => '标签列表。', + 'description' => '可编程脚本ID列表。一次最多支持查询20个ID。', '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, - ], + 'items' => ['description' => '可编程脚本ID。', 'type' => 'string', 'required' => false, 'example' => 'as-aznwocxofkakf7****'], + 'required' => false, + ], + ], + [ + 'name' => 'AScriptNames', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => '可编程脚本名称列表。一次最多支持查询10个名称。', + 'type' => 'array', + 'items' => ['description' => '可编程脚本名称。', 'type' => 'string', 'required' => false, 'example' => 'test'], 'required' => false, ], ], @@ -11544,26 +6947,46 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构体。', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540750', - ], - 'RuleId' => [ - 'title' => '转发规则标识', - 'description' => '转发规则ID。', - 'type' => 'string', - 'example' => 'rule-a3x3pg1yohq3lq****', + 'TotalCount' => ['title' => 'TotalCount本次请求条件下的数据总量,此参数为可选参数,默认可不返回', 'description' => '本次请求条件下返回的总数据记录数。'."\n" + ."\n" + .'> 此参数为可选,默认可不返回。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '2CA81429-F160-593A-8AB5-A2A9617845B9'], + 'NextToken' => ['title' => '表示当前调用返回读取到的位置,空代表数据已经读取完毕', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'required' => true, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'MaxResults' => ['title' => 'MaxResults本次请求所返回的最大记录条数', 'description' => '本次请求所返回的最大记录条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'AScripts' => [ + 'title' => '可编程脚本列表', + 'description' => '可编程脚本信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '可编程脚本信息。', + 'type' => 'object', + 'properties' => [ + 'AScriptId' => ['title' => '脚本id', 'description' => '可编程脚本ID。', 'type' => 'string', 'example' => 'as-aznwocxofkakf7****'], + 'AScriptName' => ['title' => '脚本名称', 'description' => '可编程脚本名称。', 'type' => 'string', 'example' => 'test'], + 'Enabled' => ['title' => '是否启用', 'description' => '可编程脚本是否启用。取值:'."\n" + ."\n" + .'- **true**:启用。'."\n" + ."\n" + .'- **false**:不启用。', 'type' => 'boolean', 'example' => 'true'], + 'ScriptContent' => ['title' => '脚本内容', 'description' => '可编程脚本内容。', 'type' => 'string', 'example' => '{test}'], + 'AScriptStatus' => ['title' => '脚本状态', 'description' => '可编程脚本状态。取值:'."\n" + ."\n" + .'- **Creating**:表示创建中。'."\n" + ."\n" + .'- **Available**:表示创建或变配成功。'."\n" + ."\n" + .'- **Configuring**:表示变配中。'."\n" + ."\n" + .'- **Deleting**:表示删除中。', 'type' => 'string', 'example' => 'Available'], + 'ListenerId' => ['title' => '监听id', 'description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-t0w1m9r6suiwmc****'], + 'LoadBalancerId' => ['title' => '实例id', 'description' => '应用型负载均衡实例的ID。', 'type' => 'string', 'example' => 'alb-vv9rg2ub31tyec****'], + ], + ], ], ], ], @@ -11571,3394 +6994,2201 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.GRPCServerGroup', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'Conflict.Priority', - 'errorMessage' => 'There is already %s having the same configuration with %s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerRulesNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'QuotaExceeded.RuleWildcardsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'QuotaExceeded.RuleActionsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'Mismatch.Protocol', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'OperationDenied.RewriteMissingForwardGroup', - 'errorMessage' => 'The operation is not allowed because of RewriteMissingForwardGroup.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.Listener', - 'errorMessage' => 'The specified listener is being configured, please try again later.', - ], - [ - 'errorCode' => 'OperationDenied.MirrorActionSupportHttpGroupOnly', - 'errorMessage' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.', - ], - [ - 'errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', - 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', - ], + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication has failed for LoadBalancer.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => '查询可编程脚本列表', + 'summary' => '查询可编程脚本列表。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'alb:ListAScripts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540750\\",\\n \\"RuleId\\": \\"rule-a3x3pg1yohq3lq****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540750\\n rule-a3x3pg1yohq3lq****\\n","errorExample":""}]', - 'title' => '创建转发规则', - 'description' => '调用该接口创建转发规则时,请注意以下事项:'."\n" - .'- 配置**Redirect**转发动作时,除了**HttpCode**参数外,其余参数不能全部配置为默认值。'."\n" - .'- 同一个转发规则配置多个转发动作时,**Rewrite**转发动作必须配置**ForwardGroup**的动作类型。'."\n" - ."\n" - .'- **CreateRule**接口属于异步接口,即系统返回一个实例ID,但该转发规则尚未创建成功,系统后台的创建任务仍在进行。您可以调用[ListRules](~~214379~~)查询转发规则的创建状态:'."\n" - .' - 当转发规则处于**Provisioning**状态时,表示转发规则正在创建中。'."\n" - .' - 当转发规则处于**Available**状态时,表示转发规则创建成功。'."\n" - ."\n" - .'- 一条转发规则最多支持添加的条件数(**RuleConditions**)和动作数(**RuleActions**)如下:'."\n" - .' - 条件数:基础版5条,标准版10条,WAF增强版10条。'."\n" - .' - 动作数:基础版3条,标准版5条,WAF增强版5条。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1000,\\n \\"RequestId\\": \\"2CA81429-F160-593A-8AB5-A2A9617845B9\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 50,\\n \\"AScripts\\": [\\n {\\n \\"AScriptId\\": \\"as-aznwocxofkakf7****\\",\\n \\"AScriptName\\": \\"test\\",\\n \\"Enabled\\": true,\\n \\"ScriptContent\\": \\"{test}\\",\\n \\"AScriptStatus\\": \\"Available\\",\\n \\"ListenerId\\": \\"lsn-t0w1m9r6suiwmc****\\",\\n \\"LoadBalancerId\\": \\"alb-vv9rg2ub31tyec****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 1000\\n 2CA81429-F160-593A-8AB5-A2A9617845B9\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 50\\n \\n as-aznwocxofkakf7****\\n test\\n true\\n {test}\\n Available\\n lsn-t0w1m9r6suiwmc****\\n alb-vv9rg2ub31tyec****\\n \\n","errorExample":""}]', ], - 'CreateRules' => [ - 'summary' => '批量创建转发规则。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListAclEntries' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '170', - 'abilityTreeNodes' => [ - 'FEATUREslbBIWWMH', - 'FEATUREslbTXOYED', - 'FEATUREslbQCCQ6L', - 'FEATUREslb4T90LL', - 'FEATUREslbIT4IYN', - 'FEATUREslbA51OGD', - 'FEATUREslbUBPZWI', - 'FEATUREslbGVK35E', - 'FEATUREslbYG3GCF', - 'FEATUREslbRBR9GZ', - 'FEATUREslbMWZQWL', - 'FEATUREslbJCYSIV', - 'FEATUREslbY93SFN', - 'FEATUREslbVUMBEO', - 'FEATUREslbZ4XFTS', - 'FEATUREslb2Q6O49', - ], - 'autoTest' => true, - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ListenerId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '监听标识', - 'description' => '应用型负载均衡实例监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-l16uo9y******', - ], + 'schema' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'ClientToken', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['title' => '查询数量', 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '50', 'default' => '20'], ], [ - 'name' => 'DryRun', + 'name' => 'AclId', 'in' => 'query', + 'schema' => ['title' => '访问控制策略Id', 'description' => 'ACL实例ID', 'type' => 'string', 'required' => true, 'example' => 'acl-hp34s2h0xx1ht4nwo****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建多条转发规则。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行创建。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + 'title' => 'Schema of Response', + 'description' => '返回数据结构。', + 'type' => 'object', + 'properties' => [ + 'AclEntries' => [ + 'title' => '访问控制列表', + 'description' => '访问控制条目列表。', + 'type' => 'array', + 'items' => [ + 'description' => '访问控制条目结构。', + 'type' => 'object', + 'properties' => [ + 'Description' => ['title' => '描述信息', 'description' => '访问控制条目备注描述,长度限制为1~256个字符,允许包含字母、数字、短划线(-)、正斜线(/)、半角句号(.)和下划线(_),支持中文字符。', 'type' => 'string', 'example' => 'test-entry'], + 'Entry' => ['title' => 'IP条目', 'description' => '访问控制条目IP地址段。', 'type' => 'string', 'example' => '10.0.1.1/24'], + 'Status' => ['title' => '状态', 'description' => 'ACL条目状态,取值:'."\n" + .'- **Adding**:添加中。'."\n" + .'- **Available**:添加成功,可用状态。'."\n" + .'- **Removing**:移除中。', 'type' => 'string', 'example' => 'Available'], + ], + ], + ], + 'MaxResults' => ['title' => '本次查询返回记录数量', 'description' => '分批次查询时每次显示的条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'NextToken' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F87******'], + 'TotalCount' => ['title' => '总记录数', 'description' => '本次请求条件下返回的总数据记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + ], ], ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'ACL authentication has failed.', 'description' => '对Acl鉴权失败'], + ], [ - 'name' => 'Rules', - 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'title' => '转发规则列表', - 'description' => '转发规则列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发规则。', - 'type' => 'object', - 'properties' => [ - 'Priority' => [ - 'title' => '转发规则优先级', - 'description' => '转发规则优先级。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - 'RuleActions' => [ - 'title' => '转发规则动作', - 'description' => '转发规则动作列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发规则动作。', - 'type' => 'object', - 'properties' => [ - 'FixedResponseConfig' => [ - 'title' => '返回固定内容动作配置', - 'description' => '返回固定内容动作配置。', - 'type' => 'object', - 'properties' => [ - 'Content' => [ - 'title' => '内容', - 'description' => '返回的固定内容。最大支持存储1 KB,只支持ASCII字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'ContentType' => [ - 'title' => '内容类型', - 'description' => '返回固定内容的格式。'."\n" - ."\n" - .'取值:**text/plain**、**text/css**、**text/html**、**application/javascript**或**application/json**。', - 'type' => 'string', - 'required' => false, - 'example' => 'text/plain', - ], - 'HttpCode' => [ - 'title' => 'HTTP响应码', - 'description' => '返回的HTTP响应码,仅支持**2xx**、**4xx**、**5xx**数字型字符串,**x**为任意数字。', - 'type' => 'string', - 'required' => false, - 'example' => '200', - ], - ], - 'required' => false, - ], - 'ForwardGroupConfig' => [ - 'title' => '转发组动作配置', - 'description' => '转发组动作配置。', + ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '访问控制策略组ACL不存在。'], + ], + ], + 'title' => '查询访问控制条目', + 'summary' => '查询指定访问控制的条目。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListAclEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclEntries\\": [\\n {\\n \\"Description\\": \\"test-entry\\",\\n \\"Entry\\": \\"10.0.1.1/24\\",\\n \\"Status\\": \\"Available\\"\\n }\\n ],\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F87******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n \\n test-entry\\n 10.0.1.1/24\\n Available\\n \\n 50\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 1000\\n","errorExample":""}]', + ], + 'ListAclRelations' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'AclIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '访问控制策略Id', + 'description' => 'ACL实例ID列表。一次最多支持查询5个ACL实例ID。', + 'type' => 'array', + 'items' => ['description' => 'ACL实例ID。', 'type' => 'string', 'required' => false, 'example' => 'acl-hp34s2h0xx1ht4nwo****'], + 'required' => true, + 'maxItems' => 5, + 'minItems' => 1, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回数据结构', + 'type' => 'object', + 'properties' => [ + 'AclRelations' => [ + 'title' => '访问控制列表', + 'description' => 'ACL与监听关系列表', + 'type' => 'array', + 'items' => [ + 'description' => 'ACL与监听关系结构', + 'type' => 'object', + 'properties' => [ + 'AclId' => ['title' => '访问控制策略id', 'description' => 'ACL ID', 'type' => 'string', 'example' => 'acl-hp34s2h0xx1ht4nwo****'], + 'RelatedListeners' => [ + 'title' => '关联的监听', + 'description' => '关联的监听列表', + 'type' => 'array', + 'items' => [ + 'description' => '关联的监听信息结构', 'type' => 'object', 'properties' => [ - 'ServerGroupTuples' => [ - 'title' => '转发到的目的服务器组列表', - 'description' => '转发到的目的服务器组列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发到的目的服务器组。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupId' => [ - 'title' => '服务器组标识', - 'description' => '服务器组标识。', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-ffm94ovy7lqw******', - ], - 'Weight' => [ - 'title' => '权重', - 'description' => '权重。取值越大,权重越大,表示转发的访问请求更多。取值范围:**0**~**100**。'."\n" - ."\n" - .'- 目的服务器组数为1时,未指定权重时默认值为**100**。'."\n" - ."\n" - .'- 目的服务器组数大于1时,需要用户指定权重值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '0', - 'example' => '100', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'ServerGroupStickySession' => [ - 'title' => '服务器组之间会话保持', - 'description' => '服务器组之间会话保持。', - 'type' => 'object', - 'properties' => [ - 'Enabled' => [ - 'title' => '是否开启会话保持', - 'description' => '是否开启会话保持。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**(默认值):不开启。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'Timeout' => [ - 'title' => '超时时间', - 'description' => '超时时间。单位:秒。取值范围:**1**~**86400**。默认值:**1000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', - ], - ], - 'required' => false, - ], + 'ListenerId' => ['title' => '监听ID', 'description' => '监听ID', 'type' => 'string', 'example' => 'lsn-bpn0kn908w4nbw****'], + 'ListenerPort' => ['title' => '监听端口', 'description' => '监听端口', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'ListenerProtocol' => ['title' => '监听协议', 'description' => '监听协议', 'type' => 'string', 'example' => 'HTTPS'], + 'LoadBalancerId' => ['title' => '实例ID', 'description' => '负载均衡实例ID', 'type' => 'string', 'example' => 'alb-bp1b6c719dfa08ex****'], + 'Status' => ['title' => '关联状态', 'description' => 'ACL与监听关联的状态:'."\n" + ."\n" + .'- **Associating**:关联中'."\n" + .'- **Associated**:已关联'."\n" + .'- **Dissociating**:解除关联中', 'type' => 'string', 'example' => 'Associated'], ], - 'required' => false, ], - 'InsertHeaderConfig' => [ - 'title' => '插入头部动作配置', - 'description' => '插入头部动作配置。', + ], + ], + ], + ], + 'RequestId' => ['title' => '请求id', 'description' => '请求ID', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '访问控制鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '访问控制策略组ACL不存在。'], + ], + ], + 'title' => '查询访问控制关联关系', + 'summary' => '查询访问控制关联的监听。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListAclRelations', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#AclId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclRelations\\": [\\n {\\n \\"AclId\\": \\"acl-hp34s2h0xx1ht4nwo****\\",\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bpn0kn908w4nbw****\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTPS\\",\\n \\"LoadBalancerId\\": \\"alb-bp1b6c719dfa08ex****\\",\\n \\"Status\\": \\"Associated\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n nacl-hp34s2h0xx1ht4nwo****\\n \\n lsr-bp1bpn0kn908w4nbw****\\n 80\\n HTTPS\\n lb-bp1b6c719dfa08ex****\\n Associated\\n \\n \\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', + ], + 'ListAcls' => [ + 'summary' => '查询某一个地域的访问控制列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list'], + 'parameters' => [ + [ + 'name' => 'AclIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '访问控制策略Id', + 'description' => '根据ACL ID来过滤查找ACL列表。一次最多支持查询20个ACL ID。', + 'type' => 'array', + 'items' => ['description' => 'ACL ID。', 'type' => 'string', 'required' => false, 'example' => 'acl-hp34s2h0xx1ht4nwo****'], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'AclNames', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '访问控制策略名称', + 'description' => 'ACL名称列表。一次最多支持查询10个ACL名称。', + 'type' => 'array', + 'items' => ['description' => 'ACL名称。', 'type' => 'string', 'required' => false, 'example' => 'test-acl'], + 'required' => false, + 'maxItems' => 10, + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['title' => '资源组ID', 'description' => '资源组ID,根据设置的资源组ID来过滤。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtopty****'], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['title' => '查询数量', 'description' => '本次读取的最大数据记录数量,此参数为可选参数。取值范围:**1**~**100**。默认值:**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '50', 'default' => '20'], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + '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, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回数据结构', + 'type' => 'object', + 'properties' => [ + 'Acls' => [ + 'title' => '访问控制列表', + 'description' => 'ACL列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'ACL结构。', + 'type' => 'object', + 'properties' => [ + 'AclId' => ['title' => '访问控制策略id', 'description' => 'ACL ID。', 'type' => 'string', 'example' => 'acl-hp34s2h0xx1ht4nwo****'], + 'AclName' => ['title' => '访问控制策略名称', 'description' => 'ACL名称。', 'type' => 'string', 'example' => 'test-acl'], + 'AclStatus' => ['title' => '状态', 'description' => 'ACL状态。取值:'."\n" + .'- **Creating**:创建中。'."\n" + .'- **Available**:正常可用状态。'."\n" + .'- **Configuring**:配置中。', 'type' => 'string', 'example' => 'Available'], + 'AddressIPVersion' => ['title' => 'IP版本', 'description' => 'ACL IP版本。取值:**IPv4**。'."\n", 'type' => 'string', 'example' => 'IPv4'], + 'ResourceGroupId' => ['title' => '资源组ID', 'description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-atstuj3rtopty****'], + 'ConfigManagedEnabled' => ['title' => '配置管理', 'description' => '配置管理开关。取值:'."\n" + ."\n" + .'- **true**:开启配置管理。'."\n" + ."\n" + .'- **false**:未开启配置管理。', 'type' => 'boolean', 'example' => 'false'], + 'CreateTime' => ['description' => 'ACL创建时间,格式为:`YYYY-MM-DDThh:mm:ssZ`。', 'type' => 'string', 'example' => '2023-02-15T07:37:33Z'], + 'Tags' => [ + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签结构。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头', - 'description' => '插入的头字段名称,长度为1\\~40个字符,支持大小写字母a\\~z、数字、下划线(_)和短划线(-)。**InsertHeaderConfig**中的头字段名称不能重复。'."\n" - ."\n" - .'> 不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`、`x-forwarded-host`。', - 'type' => 'string', - 'required' => false, - 'example' => 'key', - ], - 'Value' => [ - 'title' => 'HTTP标头内容', - 'description' => '插入的头字段内容。'."\n" - ."\n" - .'- **ValueType**取值为**SystemDefined**时取值如下:'."\n" - .' - **ClientSrcPort**:客户端端口。'."\n" - .' - **ClientSrcIp**:客户端IP地址。'."\n" - .' - **Protocol**:客户端请求的协议(HTTP或HTTPS)。'."\n" - .' - **SLBId**:应用型负载均衡实例ID。'."\n" - .' - **SLBPort**:应用型负载均衡实例监听端口。'."\n" - .'- **ValueType**取值为**UserDefined**时:您可自定义头字段内容,限制长度为1~128个字符,支持通配符星号(*)、半角问号(?)和ASCII码值`ch >= 32 && ch < 127`范围内的可打印字符,不支持`"`。开头和结尾不能为空格。结尾不能为`\\`。'."\n" - .'- **ValueType**取值为**ReferenceHeader**时:您可以引用请求头字段中的某一个字段,限制长度限制为1\\~128个字符,支持小写字母a\\~z、数字、短划线(-)和下划线(_)。', - 'type' => 'string', - 'required' => false, - 'example' => 'value', - ], - 'ValueType' => [ - 'title' => '取值类型', - 'description' => '头字段内容类型。取值:'."\n" - ."\n" - .'- **UserDefined**:您自定义头字段内容。'."\n" - ."\n" - .'- **ReferenceHeader**:引用请求头中的某一个头字段内容。'."\n" - ."\n" - .'- **SystemDefined**:系统定义头字段内容。', - 'type' => 'string', - 'required' => false, - 'example' => 'SystemDefined', - ], + 'Key' => ['description' => '标签键。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', 'type' => 'string', 'example' => 'env'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', 'type' => 'string', 'example' => 'product'], ], - 'required' => false, - ], - 'Order' => [ - 'title' => '优先级', - 'description' => '转发规则动作执行的顺序,取值范围:**1~50000**,按值从小到大执行动作。值不能为空,不能重复。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - 'RedirectConfig' => [ - 'title' => '重定向动作配置', - 'description' => '重定向配置。'."\n" - ."\n" - .'> **RedirectConfig**的参数,除了**httpCode**外,不能都使用默认值。', - 'type' => 'object', - 'properties' => [ - 'Host' => [ - 'title' => '要跳转的主机地址', - 'description' => '要跳转的主机地址。取值:'."\n" - .'- **${host}**(默认值):取此值时不支持和其他字符拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)、等号(=)、波浪线(~)、下划线(_)、加号(+)、反斜线(\\)、脱字号(^)、感叹号(!)、美元符号($)、and(&)、竖线(|)、半角圆括号(())、方括号(\\[\\])和半角问号(?)。'."\n" - .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" - .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-),最左侧`domainlable`允许是星号(*)。'."\n" - .' - 短划线(-)不能出现在其它域标签的开头或结尾。'."\n" - .' - 通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', - 'type' => 'string', - 'required' => false, - 'example' => '${host}', - ], - 'HttpCode' => [ - 'title' => '跳转方式', - 'description' => '跳转方式。取值:**301**、**302**、**303**、**307**或**308**。', - 'type' => 'string', - 'required' => false, - 'example' => '301', - ], - 'Path' => [ - 'title' => '要跳转的路径', - 'description' => '要跳转的路径。取值:'."\n" - .'- **${path}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1\\~128个字符,大小写敏感,支持通配符星号(*)和半角问号(?)作为通配符使用。'."\n" - .' - 必须以正斜线(/)开头,支持大小写字母、数字和特殊字符`$-_.+/&~@:\'*?`,不支持`“%#;!()[]^,”\\"`,同时支持通配符星号(*)和半角问号(?)。', - 'type' => 'string', - 'required' => false, - 'example' => '/', - ], - 'Port' => [ - 'title' => '要跳转的端口', - 'description' => '要跳转的端口。'."\n" - .'- **${port}**(默认值):该取值不支持和其他字符同时使用。'."\n" - .'- 其他取值:**1~63335**。', - 'type' => 'string', - 'required' => false, - 'example' => '443', - ], - 'Protocol' => [ - 'title' => '要跳转的协议', - 'description' => '要跳转的协议。取值:'."\n" - .'- **${protocol}**(默认值):取该值时仅支持单独使用,不支持修改或与其他字符拼接使用。'."\n" - .'- **HTTP**'."\n" - .'- **HTTPS**'."\n" - .'> '."\n" - .'> - HTTPS监听仅支持跳转HTTPS协议。'."\n" - .'> - HTTP监听支持跳转HTTP和HTTPS协议。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTPS', - ], - 'Query' => [ - 'title' => '要跳转的查询字符串', - 'description' => '要跳转的查询字符串。'."\n" - .'- **${query}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1\\~128个字符。'."\n" - .' - 支持可见字符,不支持空格和 `#[]{}\\|<>"`。如果是字母则必须是小写字母。', - 'type' => 'string', - 'required' => false, - 'example' => '${query}', - ], - ], - 'required' => false, - ], - 'RewriteConfig' => [ - 'title' => '内部重定向动作配置', - 'description' => '重写配置。'."\n" - ."\n" - .'> 同一个转发规则配置多个动作时,**RewriteConfig**动作使用时必须配置**ForwardGroup**的动作类型。', - 'type' => 'object', - 'properties' => [ - 'Host' => [ - 'title' => '主机名', - 'description' => '内部跳转的目的主机地址。取值:'."\n" - .'- **${host}**(默认值):该取值不支持和其他字符拼接。'."\n" - ."\n" - .'- 其他取值,字符格式限制如下:'."\n" - ."\n" - .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)、等号(=)、波浪线(~)、下划线(_)、加号(+)、反斜线(\\)、脱字号(^)、感叹号(!)、美元符号($)、and(&)、竖线(|)、半角圆括号(())、方括号(\\[\\])和半角问号(?)。'."\n" - ."\n" - .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" - ."\n" - .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-),最左侧`domainlable`允许是星号(*)。'."\n" - ."\n" - .' - 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.rewrite.alb', - ], - 'Path' => [ - 'title' => '路径', - 'description' => '要跳转的路径。取值:'."\n" - .'- **${path}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1\\~128个字符,大小写敏感,支持通配符星号(*)和半角问号(?)作为通配符使用。'."\n" - .' - 必须以正斜线(/)开头,支持大小写字母、数字和特殊字符`$-_.+/&~@:\'*?`,不支持`“%#;!()[]^,”\\"`,同时支持通配符星号(*)和半角问号(?)。', - 'type' => 'string', - 'required' => false, - 'example' => '/tea', - ], - 'Query' => [ - 'title' => '查询', - 'description' => '内部跳转的查询字符串。'."\n" - .'- **${query}**(默认值):可以引用 **${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1\\~128个字符。'."\n" - .' - 支持可见字符,不支持空格和 `#[]{}\\|<>"`。如果是字母则必须是小写字母。', - 'type' => 'string', - 'required' => false, - 'example' => '${query}', - ], - ], - 'required' => false, - ], - 'Type' => [ - 'title' => '转发规则动作类型', - 'description' => '动作类型。取值:'."\n" - ."\n" - .'- **ForwardGroup**:转发至多个虚拟服务器组。'."\n" - ."\n" - .'- **Redirect**:重定向。'."\n" - ."\n" - .'- **FixedResponse**:返回固定内容。'."\n" - ."\n" - .'- **Rewrite**:重写。'."\n" - ."\n" - .'- **InsertHeader**:写入头字段。'."\n" - ."\n" - .'- **RemoveHeader**:删除头字段。'."\n" - ."\n" - .'- **TrafficLimit**:流量限速。'."\n" - ."\n" - .'- **TrafficMirror**:流量镜像。'."\n" - ."\n" - .'- **Cors**:跨域。'."\n" - ."\n" - .'> 一个转发规则必须包含有一条**ForwardGroup**(转发至)、**Redirect**(重定向)或**FixedResponse**(返回固定响应)转发动作,与其他类型转发动作并存时,必须放在最后执行。', - 'type' => 'string', - 'required' => true, - 'example' => 'ForwardGroup', - ], - 'TrafficLimitConfig' => [ - 'title' => '流量限速', - 'description' => '流量限速。', - 'type' => 'object', - 'properties' => [ - 'QPS' => [ - 'description' => '每秒请求次数。取值范围:**1**~**1000000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5000', - ], - 'PerIpQps' => [ - 'description' => '单IP每秒请求次数。 取值范围:**1 ~ 1000000**。'."\n" - ."\n" - .'> 如果同时配置**QPS**参数,**PerIpQps**参数的取值必须小于**QPS**参数的取值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - ], - 'required' => false, - ], - 'TrafficMirrorConfig' => [ - 'title' => '流量镜像', - 'description' => '流量镜像。', - 'type' => 'object', - 'properties' => [ - 'TargetType' => [ - 'title' => '镜像目标类型', - 'description' => '镜像的目标类型。取值:'."\n" - .'- **ForwardGroupMirror**:表示镜像至服务器组。', - 'type' => 'string', - 'required' => false, - 'example' => 'ForwardGroupMirror', - ], - 'MirrorGroupConfig' => [ - 'title' => '镜像至服务器组', - 'description' => '镜像至服务器组', - 'type' => 'object', - 'properties' => [ - 'ServerGroupTuples' => [ - 'description' => '流量镜像至服务器组。', - 'type' => 'array', - 'items' => [ - 'description' => '流量镜像至服务器组。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupId' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-u9cmf16iu69******', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'RemoveHeaderConfig' => [ - 'title' => '去除HTTP标头', - 'description' => '去除HTTP标头', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头键', - 'description' => '去除的头字段名称,长度为1~40个字符,支持大小写字母a~z、数字、下划线(_)和短划线(-)。头字段名称不能重复用于RemoveHeader中。'."\n" - ."\n" - .'- 请求方向(Direction取值为Request):不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`、`x-forwarded-host`。'."\n" - .'- 响应方向(Direction取值为Response):响应方向不允许将头名称设置为以下字段(不区分大小写):`connection`、`upgrade`、`content-length`、`transfer-encoding`。', - 'type' => 'string', - 'required' => false, - 'example' => 'key', - ], - ], - 'required' => false, - ], - 'CorsConfig' => [ - 'title' => '跨域', - 'description' => '跨域。', - 'type' => 'object', - 'properties' => [ - 'AllowOrigin' => [ - 'title' => '允许的访问来源', - 'description' => '允许的访问来源。', - 'type' => 'array', - 'items' => [ - 'description' => '允许的访问来源列表。支持只配置一个元素`*`,或配置一个或多个值。'."\n" - .'- 单个值必须以`http://`或者`https://`开头,后边加一个正确的域名或一级泛域名。(例:`http://*.test.abc.example.com`)'."\n" - .'- 单个值可以不加端口,也可以指定端口,端口范围:**1**~**65535**。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://www.test.com', - ], - 'required' => false, - ], - 'AllowMethods' => [ - 'title' => '选择跨域访问时允许的HTTP方法', - 'description' => '选择跨域访问时允许的HTTP方法。', - 'type' => 'array', - 'items' => [ - 'description' => '选择跨域访问时允许的HTTP方法。取值:'."\n" - .'- **GET**。'."\n" - .'- **POST**。'."\n" - .'- **PUT**。'."\n" - .'- **DELETE**。'."\n" - .'- **HEAD**。'."\n" - .'- **OPTIONS**。'."\n" - .'- **PATCH**。', - 'type' => 'string', - 'required' => false, - 'example' => 'GET', - ], - 'required' => false, - ], - 'AllowHeaders' => [ - 'title' => '允许跨域的Header列表', - 'description' => '允许跨域的Header列表。', - 'type' => 'array', - 'items' => [ - 'description' => '允许跨域的Header列表。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'AllowHeader', - ], - 'required' => false, - ], - 'ExposeHeaders' => [ - 'title' => '允许暴露的Header列表', - 'description' => '允许暴露的Header列表。', - 'type' => 'array', - 'items' => [ - 'description' => '允许暴露的Header。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'ExposeHeader', - ], - 'required' => false, - ], - 'AllowCredentials' => [ - 'title' => '是否允许携带凭证信息', - 'description' => '是否允许携带凭证信息。取值:'."\n" - ."\n" - .'- **on**:是。'."\n" - .'- **off**:否。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'off' => 'off', - 'on' => 'on', - ], - 'example' => 'on', - ], - 'MaxAge' => [ - 'title' => '预检请求在浏览器的最大缓存时间', - 'description' => '预检请求在浏览器的最大缓存时间,单位:秒。'."\n" - ."\n" - .'取值范围:**-1**~**172800**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '600', - ], - ], - 'required' => false, ], ], - 'required' => true, - ], - 'required' => true, - 'maxItems' => 100, - 'minItems' => 1, - ], - 'RuleConditions' => [ - 'title' => '转发规则条件', - 'description' => '转发规则条件列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发规则条件。', - 'type' => 'object', - 'properties' => [ - 'CookieConfig' => [ - 'title' => 'Cookie条件配置', - 'description' => 'Cookie条件配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => 'Cookie键值对列表', - 'description' => 'Cookie键值对列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'Cookie键值对。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'Cookie条件键', - 'description' => 'Cookie条件键。'."\n" - ."\n" - .'- 支持 1~100 个字符。'."\n" - ."\n" - .'- 支持可见字符和通配符星号(*)和半角问号(?),如果是字母必须为小写字母。'."\n" - ."\n" - .'- 不支持空格和`;#[]{}\\|<>&"`。', - 'type' => 'string', - 'required' => false, - 'example' => 'key', - ], - 'Value' => [ - 'title' => 'Cookie条件值', - 'description' => 'Cookie条件值。'."\n" - ."\n" - .'- 支持 1~100 个字符。'."\n" - ."\n" - .'- 支持可见字符和通配符星号(*)和半角问号(?),如果是字母必须为小写字母。'."\n" - ."\n" - .'- 不支持空格和`;#[]{}\\|<>&"`。', - 'type' => 'string', - 'required' => false, - 'example' => 'value', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 50, - ], - ], - 'required' => false, - ], - 'HeaderConfig' => [ - 'title' => 'HTTP标头条件配置', - 'description' => 'HTTP标头条件配置。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头键', - 'description' => 'HTTP标头键。'."\n" - ."\n" - .'- 支持 1~40 个字符。'."\n" - ."\n" - .'- 支持字母 a~z、数字、短划线(-)和下划线(_)。'."\n" - ."\n" - .'- 不支持 Cookie 和 Host。', - 'type' => 'string', - 'required' => false, - 'example' => 'port', - ], - 'Values' => [ - 'title' => 'HTTP标头值列表', - 'description' => 'HTTP标头值列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'HTTP标头值。同一个转发规则条件内头字段值不能重复。'."\n" - .'- 支持1\\~128个字符。'."\n" - .'- 支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、星号(*)和半角问号(?)。不支持`"`。'."\n" - .'- 开头和结尾不能为空格。结尾不能为`\\`。', - 'type' => 'string', - 'required' => false, - 'example' => '5006', - ], - 'required' => false, - 'maxItems' => 50, - ], - ], - 'required' => false, - ], - 'HostConfig' => [ - 'title' => '主机名条件配置', - 'description' => '主机名条件配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '主机名列表', - 'description' => '主机名列表。', - 'type' => 'array', - 'items' => [ - 'description' => '主机名。一个转发规则条件中只能有一个主机名,并且取值不能重复。'."\n" - ."\n" - .'- 主机名长度为3\\~128个字符,支持小写字母a~z、数字0~9、短划线(-)、半角句号(.)、星号(*)、等号(=)、波浪线(~)、下划线(_)、加号(+)、反斜线(\\)、脱字号(^)、感叹号(!)、美元符号($)、and(&)、竖线(|)、半角圆括号(())、方括号(\\[\\])和半角问号(?)。'."\n" - ."\n" - .'- 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" - ."\n" - .'- 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-),最左侧`domainlable`允许是星号(*)。'."\n" - ."\n" - .'- 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。'."\n" - ."\n" - .'- 对于<精确匹配和通配符>的输入框,首字符不可以为波浪线(~)。'."\n" - .'- 对于正则的输入框(<正则匹配(不区分大小写)>,首字符不可以为星号(*)。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], - 'required' => false, - 'maxItems' => 50, - ], - ], - 'required' => false, - ], - 'MethodConfig' => [ - 'title' => 'HTTP请求方法条件配置', - 'description' => 'HTTP请求方法条件配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => 'HTTP请求方法列表', - 'description' => 'HTTP请求方法列表。', - 'type' => 'array', - 'items' => [ - 'description' => '请求方法。'."\n" - ."\n" - .'取值:**HEAD**、**GET**、**POST**、**OPTIONS**、**PUT**、**PATCH**或**DELETE**。', - 'type' => 'string', - 'required' => false, - 'example' => 'PUT', - ], - 'required' => false, - 'maxItems' => 10, - ], - ], - 'required' => false, - ], - 'PathConfig' => [ - 'title' => '路径条件配置', - 'description' => '路径条件配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '路径条件列表', - 'description' => '路径条件列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发路径。取值范围:'."\n" - .'- 长度为1\\~128个字符,大小写敏感,支持星号(*)和半角问号(?)作为通配符使用。'."\n" - ."\n" - .'- 非正则表达式的URL ,必须以正斜线(/)开头,支持字母、数字和特殊字符`$-_.+/&~@:\'*?`,不支持`“%#;!()[]^,”\\"`,支持星号(*)和半角问号(?)作为通配符使用。'."\n" - ."\n" - .'- 正则表达式的URL ,必须以~开头,支持大小写字母、数字和特殊字符`.-_/=?~^*$:()[]+|`。', - 'type' => 'string', - 'required' => false, - 'example' => '/test', - ], - 'required' => false, - 'maxItems' => 50, - ], - ], - 'required' => false, - ], - 'QueryStringConfig' => [ - 'title' => '查询字符串条件配置', - 'description' => '查询字符串条件配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '查询字符串条件键值对列表', - 'description' => '查询字符串条件键值对列表。', - 'type' => 'array', - 'items' => [ - 'description' => '查询字符串条件键值对。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '查询字符串条件键', - 'description' => '查询字符串条件键。'."\n" - .'- 长度为1\\~100个字符。'."\n" - .'- 支持可见字符、通配符星号(*)和半角问号(?),如果是字母则必须为小写字母。不支持空格和`#[]{}\\|<>&"`。', - 'type' => 'string', - 'required' => false, - 'example' => 'key', - ], - 'Value' => [ - 'title' => '查询字符串条件值', - 'description' => '查询字符串条件值。'."\n" - ."\n" - .'- 长度为1\\~128个字符。'."\n" - .'- 支持小写字母、可见字符和通配符星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&"`。', - 'type' => 'string', - 'required' => false, - 'example' => 'value', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 50, - ], - ], - 'required' => false, - ], - 'ResponseHeaderConfig' => [ - 'title' => '返回HTTP标头', - 'description' => '响应HTTP标头配置。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '返回HTTP标头键', - 'description' => '响应HTTP标头键。'."\n" - .'- 长度为1~40个字符。'."\n" - .'- 支持字母a~z、数字、短划线(-)和下划线(_)。'."\n" - .'- 不支持Cookie和Host。', - 'type' => 'string', - 'required' => false, - 'example' => 'key', - ], - 'Values' => [ - 'title' => '返回HTTP标头值', - 'description' => '响应HTTP标头值列表。', - 'type' => 'array', - 'items' => [ - 'description' => '响应HTTP标头值。'."\n" - .'- 长度为1~128个字符。'."\n" - .'- 支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、小写字母以及通配符星号(*)和半角问号(?)。不支持`"`。'."\n" - .'- 开头和结尾不能为空格。结尾不能为`\\`。', - 'type' => 'string', - 'required' => false, - 'example' => 'value', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'ResponseStatusCodeConfig' => [ - 'title' => '返回状态码条件', - 'description' => '响应状态码配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '返回状态码条件', - 'description' => '响应状态码列表。', - 'type' => 'array', - 'items' => [ - 'description' => '响应状态码。', - 'type' => 'string', - 'required' => false, - 'example' => '200', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'Type' => [ - 'title' => '条件类型', - 'description' => '转发条件类型。取值:'."\n" - ."\n" - .'- Host:主机。'."\n" - ."\n" - .'- Path:路径。'."\n" - ."\n" - .'- Header:HTTP头字段。'."\n" - ."\n" - .'- QueryString:查询字符串。'."\n" - ."\n" - .'- Method:请求方法。'."\n" - ."\n" - .'- Cookie:Cookie。'."\n" - ."\n" - .'- SourceIp:源IP。'."\n" - ."\n" - .'- ResponseHeader:响应HTTP头字段。'."\n" - ."\n" - .'- ResponseStatusCode:响应状态码。', - 'type' => 'string', - 'required' => true, - 'enumValueTitles' => [ - 'Cookie' => 'Cookie', - 'Path' => 'Path', - 'ResponseHeader' => 'ResponseHeader', - 'SourceIp' => 'SourceIp', - 'Header' => 'Header', - 'ResponseStatusCode' => 'ResponseStatusCode', - 'QueryString' => 'QueryString', - 'Host' => 'Host', - 'Method' => 'Method', - ], - 'example' => 'SourceIp', - ], - 'SourceIpConfig' => [ - 'title' => '基于源IP业务流量匹配', - 'description' => '基于源IP业务流量匹配。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '基于源IP业务流量匹配', - 'description' => '基于源IP业务流量匹配。', - 'type' => 'array', - 'items' => [ - 'description' => '添加一个或多个IP地址或者IP地址段。'."\n" - ."\n" - .'一条转发规则中最多支持添加5条源IP。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.XX.XX/32', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - ], - 'required' => true, - ], - 'required' => true, - 'maxItems' => 100, - 'minItems' => 1, - ], - 'RuleName' => [ - 'title' => '转发规则名称', - 'description' => '转发规则名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'rule-443-64', - ], - 'Direction' => [ - 'title' => '转发规则方向', - 'description' => '转发规则方向。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'Response' => 'Response', - 'Request' => 'Request', - ], - 'example' => 'Request', - ], - 'Tag' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_tag_key', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_tag_value', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => true, - ], - 'required' => true, - 'maxItems' => 100, - 'minItems' => 1, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '创建多条转发规则。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], - 'RuleIds' => [ - 'title' => '转发规则标识列表', - 'description' => '转发规则列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发规则列表。', - 'type' => 'object', - 'properties' => [ - 'RuleId' => [ - 'title' => '转发规则标识', - 'description' => '转发规则ID。', - 'type' => 'string', - 'example' => 'rule-a3x3pg1yohq3lq****', - ], - 'Priority' => [ - 'title' => '转发规则优先级', - 'description' => '转发规则优先级,取值范围:**1~10000**。值越小表示优先级越高。'."\n" - ."\n" - .'> 同一个监听内规则优先级必须唯一。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], ], ], ], + 'MaxResults' => ['title' => '本次查询返回记录数量', 'description' => '本次读取的最大数据记录数量,此参数为可选参数,取值**1**~**100**。参数传入为空时,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'NextToken' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70t****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF******'], + 'TotalCount' => ['title' => '总记录数', 'description' => '本次请求条件下的数据总量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.GRPCServerGroup', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'Conflict.Priority', - 'errorMessage' => 'There is already %s having the same configuration with %s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerRulesNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'QuotaExceeded.RuleWildcardsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'QuotaExceeded.RuleActionsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'Mismatch.Protocol', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'OperationDenied.RewriteMissingForwardGroup', - 'errorMessage' => 'The operation is not allowed because of RewriteMissingForwardGroup.', - ], - [ - 'errorCode' => 'OperationDenied.MirrorActionSupportHttpGroupOnly', - 'errorMessage' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.', - ], - [ - 'errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', - 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', - ], + 403 => [ + ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'ACL authentication has failed.', 'description' => '对Acl鉴权失败'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => '查询访问控制列表', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'alb:ListAcls', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Alb::2020-06-16::ListAsynJobs', - 'callbackInterval' => 1000, - 'maxCallbackTimes' => 60, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"RuleIds\\": [\\n {\\n \\"RuleId\\": \\"rule-a3x3pg1yohq3lq****\\",\\n \\"Priority\\": 10\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n \\n rule-a3x3pg1yohq3lq****\\n 10\\n \\n","errorExample":""}]', - 'title' => '批量创建转发规则', - 'description' => '调用该接口创建转发规则时,请注意以下事项:'."\n" - .'- 配置**Redirect**转发动作时,除了**HttpCode**参数外,其余参数不能都配置默认值。'."\n" - .'- 同一个转发规则配置多个转发动作时,**Rewrite**转发动作必须配置**ForwardGroup**的动作类型。'."\n" - .'- **CreateRules**接口属于异步接口,即系统返回一个实例ID,但该多条转发规则尚未创建成功,系统后台的创建任务仍在进行。您可以调用[ListRules](~~214379~~)查询多条转发规则的创建状态:'."\n" - .' - 当多条转发规则处于**Provisioning**状态时,表示多条转发规则正在创建中。'."\n" - .' - 当多条转发规则处于**Available**状态时,表示多条转发规则创建成功。'."\n" - .'- 一条转发规则最多支持添加的条件数(**RuleConditions**)和动作数(**RuleActions**)如下:'."\n" - .' - 条件数:基础版5条,标准版10条,WAF增强版10条。'."\n" - .' - 动作数:基础版3条,标准版5条,WAF增强版5条。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Acls\\": [\\n {\\n \\"AclId\\": \\"acl-hp34s2h0xx1ht4nwo****\\",\\n \\"AclName\\": \\"test-acl\\",\\n \\"AclStatus\\": \\"Available\\",\\n \\"AddressIPVersion\\": \\"IPv4\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtopty****\\",\\n \\"ConfigManagedEnabled\\": false,\\n \\"CreateTime\\": \\"2023-02-15T07:37:33Z\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70t****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\",\\n \\"TotalCount\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n \\n nacl-hp34s2h0xx1ht4nwo****\\n test-acl\\n Available\\n IPv4\\n rg-atstuj3rtopty****\\n false\\n 2023-02-15T07:37:33Z\\n \\n 20\\n FFmyTO70t****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n 10\\n","errorExample":""}]', ], - 'DeleteRule' => [ - 'summary' => '删除指定的转发规则。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListAsynJobs' => [ + 'summary' => '查询指定地域的异步任务。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'JobIds', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', + 'title' => '任务ID列表', + 'description' => '任务ID列表。', + 'type' => 'array', + 'items' => ['description' => '异步任务ID。', 'type' => 'string', 'required' => false, 'example' => 'bfb728bf-53a8-4886-84cb-829******'], 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', + 'maxItems' => 10, ], ], [ - 'name' => 'DryRun', + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => ['title' => '资源类型类型', 'description' => '关联的资源类型。取值:'."\n" + ."\n" + .'- **loadbalancer**:应用型负载均衡实例。'."\n" + .'- **listener**:监听。'."\n" + .'- **rule**:转发规则。'."\n" + .'- **acl**:访问控制。'."\n" + .'- **securitypolicy**:安全策略。'."\n" + .'- **servergroup**:服务器组。', 'type' => 'string', 'required' => false, 'example' => 'loadbalancer'], + ], + [ + 'name' => 'ResourceIds', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会删除一条转发规则。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', - 'type' => 'boolean', + 'title' => '资源实例ID列表', + 'description' => '资源实例ID列表。', + 'type' => 'array', + 'items' => ['description' => '资源实例ID。', 'type' => 'string', 'required' => false, 'example' => 'alb-o8mszt95oamfjy****'], 'required' => false, - 'example' => 'true', + 'maxItems' => 10, ], ], [ - 'name' => 'RuleId', + 'name' => 'ApiName', 'in' => 'query', - 'schema' => [ - 'title' => '转发规则标识', - 'description' => '转发规则ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rule-doc****', - ], + 'schema' => ['title' => '操作接口名', 'description' => '操作接口名称。', 'type' => 'string', 'required' => false, 'example' => 'CreateLoadBalancer'], + ], + [ + 'name' => 'BeginTime', + 'in' => 'query', + 'schema' => ['title' => '任务过滤时间范围-开始时间', 'description' => '任务开始时间戳。单位:毫秒。'."\n" + ."\n" + .'时间戳的格式采用Unix时间戳,表示从格林威治时间1970年01月01日00时00分00秒至开始查询异步任务状态时的总时长。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2134663231234'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['title' => '任务过滤时间范围-结束时间', 'description' => '任务结束时间戳。单位:毫秒。'."\n" + ."\n" + .'时间戳的格式采用Unix时间戳,表示从格林威治时间1970年01月01日00时00分00秒至查询异步任务状态结束时的总时长。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2144663233315'], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['title' => '下一个查询开始Token', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['title' => '本次读取的最大数据记录数量', 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值:**20**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '删除一条转发规则。', + 'description' => '任务列表。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + 'Jobs' => [ + 'title' => '任务列表', + 'description' => '任务列表。', + 'type' => 'array', + 'items' => [ + 'description' => '任务列表。', + 'type' => 'object', + 'properties' => [ + 'ApiName' => ['title' => 'openapi名称', 'description' => '操作接口名称。', 'type' => 'string', 'example' => 'CreateLoadBalancer'], + 'CreateTime' => ['title' => '任务开始时间戳', 'description' => '任务开始时间戳。单位:毫秒。'."\n" + ."\n" + .'时间戳的格式采用Unix时间戳,表示从格林威治时间1970年01月01日00时00分00秒至开始查询异步任务状态时的总时长。', 'type' => 'integer', 'format' => 'int64', 'example' => '2134663231234'], + 'ErrorCode' => ['title' => '如果Status为失败,则为错误码', 'description' => '如果**Status**为失败,则为错误码。', 'type' => 'string', 'example' => '506'], + 'ErrorMessage' => ['title' => '如果Status为失败,则为错误信息', 'description' => '如果**Status**为失败,则为错误信息。', 'type' => 'string', 'example' => 'AllocateEipAddress Failed'], + 'Id' => ['title' => '任务ID', 'description' => '任务ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B5****'], + 'ModifyTime' => ['title' => '任务结束时间戳', 'description' => '任务结束时间戳。单位:毫秒。'."\n" + ."\n" + .'时间戳的格式采用Unix时间戳,表示从格林威治时间1970年01月01日00时00分00秒至查询异步任务状态结束时的总时长。', 'type' => 'integer', 'format' => 'int64', 'example' => '2144663233315'], + 'OperateType' => ['title' => '操作类型', 'description' => '操作类型,取值:'."\n" + ."\n" + .'- **Create**:创建。'."\n" + ."\n" + .'- **Update**:修改。'."\n" + ."\n" + .'- **Delete**: 删除。', 'type' => 'string', 'example' => 'Create'], + 'ResourceId' => ['title' => '关联的资源实例ID', 'description' => '关联的资源实例ID。', 'type' => 'string', 'example' => 'alb-o8mszt95oamfjy****'], + 'ResourceType' => ['title' => '关联的资源类型', 'description' => '关联的资源类型。取值:'."\n" + ."\n" + .'- **loadbalancer**:应用型负载均衡实例。'."\n" + .'- **listener**:监听。'."\n" + .'- **rule**:转发规则。'."\n" + .'- **acl**:访问控制。'."\n" + .'- **securitypolicy**:安全策略。'."\n" + .'- **servergroup**:服务器组。', 'type' => 'string', 'example' => 'loadbalancer'], + 'Status' => ['title' => '任务状态', 'description' => '任务状态,取值:'."\n" + ."\n" + .'- **Succeeded**:成功。'."\n" + ."\n" + .'- **Failed**:失败。'."\n" + ."\n" + .'- **Processing**:执行。', 'type' => 'string', 'example' => 'Succeeded'], + ], + ], ], + 'MaxResults' => ['title' => '本次查询返回记录数量', 'description' => '分批次查询时每次显示的条目数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'NextToken' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], + 'TotalCount' => ['title' => '总记录数 ', 'description' => '列表条目数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Rule', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.Listener', - 'errorMessage' => 'The specified listener is being configured, please try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Rule', - 'errorMessage' => 'The specified resource %s is not found.', + 'title' => '查询异步任务', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListAsynJobs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '删除转发规则', - 'description' => '**DeleteRule**接口属于异步接口,即系统返回一个请求ID,但该转发规则尚未删除成功,系统后台的删除任务仍在进行。您可以调用[ListRules](~~214379~~)查询转发规则的删除状态:'."\n" - .'- 当转发规则处于**Deleting**状态时,表示转发规则正在删除中。'."\n" - .'- 当查询不到转发规则状态时,表示转发规则删除成功。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Jobs\\": [\\n {\\n \\"ApiName\\": \\"CreateLoadBalancer\\",\\n \\"CreateTime\\": 2134663231234,\\n \\"ErrorCode\\": \\"506\\",\\n \\"ErrorMessage\\": \\"AllocateEipAddress Failed\\",\\n \\"Id\\": \\"365F4154-92F6-4AE4-92F8-7FF34B5****\\",\\n \\"ModifyTime\\": 2144663233315,\\n \\"OperateType\\": \\"Create\\",\\n \\"ResourceId\\": \\"alb-o8mszt95oamfjy****\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"Status\\": \\"Succeeded\\"\\n }\\n ],\\n \\"MaxResults\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n \\n CreateLoadBalancer\\n 2134663231234\\n 506\\n AllocateEipAddress Failed\\n 365F4154-92F6-4AE4-92F8-7FF34B5****\\n 2144663233315\\n Create\\n alb-o8mszt95oamfjy****\\n acl\\n Succeeded\\n \\n 10\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 1000\\n","errorExample":""}]', ], - 'DeleteRules' => [ - 'summary' => '批量删除同一监听下的转发规则。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListHealthCheckTemplates' => [ + 'summary' => '查询指定地域的健康检查模板。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '185', - 'abilityTreeNodes' => [ - 'FEATUREslbBIWWMH', - 'FEATUREslbTXOYED', - 'FEATUREslbQCCQ6L', - 'FEATUREslb4T90LL', - 'FEATUREslbIT4IYN', - 'FEATUREslbA51OGD', - 'FEATUREslbUBPZWI', - 'FEATUREslbGVK35E', - 'FEATUREslbYG3GCF', - 'FEATUREslbRBR9GZ', - 'FEATUREslbMWZQWL', - 'FEATUREslbJCYSIV', - 'FEATUREslbY93SFN', - 'FEATUREslbVUMBEO', - 'FEATUREslbZ4XFTS', - 'FEATUREslb2Q6O49', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'operationType' => 'list', + 'abilityTreeCode' => '151', + 'abilityTreeNodes' => ['FEATUREslb6RAQIN'], ], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['title' => '查询数量', 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '50', 'default' => '20'], + ], + [ + 'name' => 'HealthCheckTemplateIds', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', + 'title' => '健康检查模板ID列表', + 'description' => '健康检查模版ID列表。', + 'type' => 'array', + 'items' => ['description' => '健康检查模版ID。最多支持20个健康检查模板ID。如果传入则根据模板ID过滤。', 'type' => 'string', 'required' => false, 'example' => 'hct-bp1qjwo61pqz3ahltv****'], 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', + 'maxItems' => 20, ], ], [ - 'name' => 'DryRun', + 'name' => 'HealthCheckTemplateNames', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会删除多条转发规则。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', - 'type' => 'boolean', + 'title' => '健康检查模板名称列表', + 'description' => '健康检查模板名称列表。', + 'type' => 'array', + 'items' => ['description' => '健康检查模版名称。最多支持10个健康检查模板名称。如果传入则根据模板名称过滤。', 'type' => 'string', 'required' => false, 'example' => 'test'], 'required' => false, - 'example' => 'false', + 'maxItems' => 20, ], ], [ - 'name' => 'RuleIds', + 'name' => 'Tag', 'in' => 'query', - 'style' => 'repeatList', + 'style' => 'flat', 'schema' => [ - 'title' => '同一个监听下的转发规则标识列表', - 'description' => '转发规则列表。一次最多不能超过100条。', + 'description' => '标签。', 'type' => 'array', 'items' => [ - 'description' => '转发规则ID。', - 'type' => 'string', + '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, - 'example' => 'rule-a3x3pg1yohq3lq****', ], - 'required' => true, - 'maxItems' => 100, - 'minItems' => 1, + 'required' => false, ], ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID,根据设置的资源组ID来过滤。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '删除多条转发规则。', + 'description' => '健康检查模板信息。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7BED4F62-3E6E-5E4F-8C53-2D8CCE77F2ED', + 'HealthCheckTemplates' => [ + 'title' => '健康检查模板', + 'description' => '健康检查模板列表。', + 'type' => 'array', + 'items' => [ + 'description' => '健康检查模板结构。', + 'type' => 'object', + 'properties' => [ + 'HealthCheckConnectPort' => ['title' => '端口', 'description' => '健康检查使用的端口。'."\n" + ."\n" + .'取值:** 0~65535**。'."\n" + ."\n" + .'默认值:**0**,表示使用后端服务器的端口进行健康检查。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'HealthCheckHost' => ['title' => '域名', 'description' => '用于健康检查的域名,取值:'."\n" + ."\n" + .'- **$SERVER_IP**(默认值): 后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用各后端服务器的私网IP当做健康检查使用的域名。'."\n" + ."\n" + .'- **domain**:域名长度为1~80字符,只能包含字母、数字、半角句号(.)和短划线(-)。'."\n" + ."\n" + .'> 只有`HealthCheckProtocol`为**HTTP**或**HTTPS**时才有效。', 'type' => 'string', 'example' => '$SERVER_IP'], + 'HealthCheckCodes' => [ + 'title' => '状态码', + 'description' => '健康检查正常的状态码列表。', + 'type' => 'array', + 'items' => ['description' => '健康检查正常的HTTP状态码。'."\n" + ."\n" + .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http_2xx**(默认值)、 **http_3xx**、**http_4xx**和**http_5xx**,多个状态码用半角逗号(,)分隔。'."\n" + ."\n" + .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**,默认值:**0**。支持范围输入,最多支持20个范围值,多个范围值使用半角逗号(,)隔开。'."\n" + ."\n" + .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时才有该参数。', 'type' => 'string', 'example' => 'http_2xx'], + ], + 'HealthCheckHttpVersion' => ['title' => '版本', 'description' => '健康检查HTTP协议版本。'."\n" + ."\n" + .'取值:**HTTP 1.0**或**HTTP 1.1**。'."\n" + ."\n" + .'默认值:**HTTP 1.1**。'."\n" + ."\n" + .'> 只有`HealthCheckProtocol`为**HTTP**或**HTTPS**时才有效。', 'type' => 'string', 'example' => 'HTTP 1.0'], + 'HealthCheckInterval' => ['title' => '间隔时间', 'description' => '健康检查的时间间隔。单位:秒。取值范围:**1~50**。默认值:**2**秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'HealthCheckMethod' => ['title' => '方法', 'description' => '健康检查方法。取值:'."\n" + ."\n" + .'- **HEAD**(默认值):HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" + ."\n" + .'- **GET**:如果响应报文长度超过8K,会被截断,但不会影响健康检查结果的判定。'."\n" + ."\n" + .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" + ."\n" + .'> 只有**HealthCheckProtocol**为**HTTP** 或**HTTPS**或**gRPC**时才有效。', 'type' => 'string', 'example' => 'HEAD'], + 'HealthCheckPath' => ['title' => 'uri', 'description' => '用于健康检查的URL。'."\n" + ."\n" + .'长度限制为1~80,只能使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)、and(&)这些字符以及扩展字符集`_;~!()*[]@$^:\',+`。URL必须以正斜线(/)开头。', 'type' => 'string', 'example' => '/test/index.html'], + 'HealthCheckProtocol' => ['title' => '协议', 'description' => '健康检查采用的协议。取值:'."\n" + ."\n" + .'- **HTTP**(默认值):通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" + ."\n" + .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" + ."\n" + .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" + ."\n" + .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', 'type' => 'string', 'example' => 'HTTP'], + 'HealthCheckTemplateId' => ['title' => '健康检查模板Id', 'description' => '健康检查模板ID。', 'type' => 'string', 'example' => 'hct-bp1qjwo61pqz3ahltv****'], + 'HealthCheckTemplateName' => ['title' => '名称', 'description' => '健康检查模板名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'example' => 'HealthCheckTemplate1'], + 'HealthCheckTimeout' => ['title' => '超时时间', 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败。'."\n" + ."\n" + .'取值:**1~300**秒。'."\n" + ."\n" + .'默认值:**5**秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'HealthyThreshold' => ['title' => '健康阈值', 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n" + ."\n" + .'取值:**2~10**。'."\n" + ."\n" + .'默认值:**3**。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], + 'UnhealthyThreshold' => ['title' => '不健康阈值', 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n" + ."\n" + .'取值:**2~10**。'."\n" + ."\n" + .'默认值:**3**。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], + 'Tags' => [ + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签结构。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'example' => 'env'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'example' => 'product'], + ], + ], + ], + 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-atstuj3rtop****'], + ], + ], ], + 'MaxResults' => ['title' => '本次查询返回记录数量', 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'NextToken' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], + 'TotalCount' => ['title' => '总记录数', 'description' => '本次请求条件下返回的总数据记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Rule', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.CrossLoadBalancerRules', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - ], 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], + ['errorCode' => 'Forbidden.HealthCheckTemplate', 'errorMessage' => 'Authentication has failed for HealthCheckTemplate.', 'description' => '对HealthCheckTemplate鉴权失败'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.Rule', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => '查询健康检查模板', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'alb:ListHealthCheckTemplates', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Alb::2020-06-16::ListAsynJobs', - 'callbackInterval' => 1000, - 'maxCallbackTimes' => 60, - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"7BED4F62-3E6E-5E4F-8C53-2D8CCE77F2ED\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 7BED4F62-3E6E-5E4F-8C53-2D8CCE77F2ED\\n","errorExample":""}]', - 'title' => '批量删除转发规则', - 'description' => '**DeleteRules**接口属于异步接口,即系统返回一个请求ID,但该多条转发规则尚未删除成功,系统后台的删除任务仍在进行。您可以调用[ListRules](~~214379~~)查询多条转发规则的删除状态:'."\n" - .'- 当多条转发规则处于**Deleting**状态时,表示多条转发规则正在删除中。'."\n" - .'- 当查询不到多条转发规则的状态时,表示多条转发规则删除成功。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"HealthCheckTemplates\\": [\\n {\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckHost\\": \\"$SERVER_IP\\",\\n \\"HealthCheckCodes\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckHttpVersion\\": \\"HTTP 1.0\\",\\n \\"HealthCheckInterval\\": 5,\\n \\"HealthCheckMethod\\": \\"HEAD\\",\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"HTTP\\",\\n \\"HealthCheckTemplateId\\": \\"hct-bp1qjwo61pqz3ahltv****\\",\\n \\"HealthCheckTemplateName\\": \\"HealthCheckTemplate1\\",\\n \\"HealthCheckTimeout\\": 3,\\n \\"HealthyThreshold\\": 4,\\n \\"UnhealthyThreshold\\": 4,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\"\\n }\\n ],\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 80\\n $_ip\\n http_2xx,http_3xx\\n HTTP 1.0\\n 5\\n HEAD\\n /test/index.html\\n HTTP\\n hct-bp1qjwo61pqz3ahltv****\\n HealthCheckTemplate1\\n 3\\n 4\\n 4\\n \\n 50\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 1000\\n","errorExample":""}]', ], - 'UpdateRuleAttribute' => [ - 'summary' => '更新转发规则属性,如条件、动作、名称等。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListListenerCertificates' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '177', - 'abilityTreeNodes' => [ - 'FEATUREslbM7ALO6', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'RuleId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '转发规则标识', - 'description' => '转发规则ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rule-4dp5i6ea****', - ], + 'schema' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'ClientToken', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['title' => '查询数量', 'description' => '本次读取的最大数据记录。取值范围:**1~100**。入参为空时,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '50', 'default' => '20'], ], [ - 'name' => 'DryRun', + 'name' => 'ListenerId', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会更新转发规则属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '监听Id', 'description' => '监听ID。HTTPS和QUIC监听有效。', 'type' => 'string', 'required' => true, 'example' => 'lsn-5qnirjhpt******'], ], [ - 'name' => 'RuleConditions', + 'name' => 'CertificateType', + 'in' => 'query', + 'schema' => ['title' => '证书类型', 'description' => '证书类型。取值:**Ca**或**Server**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'Server'], + ], + [ + 'name' => 'CertificateIds', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '转发规则条件', - 'description' => '转发规则条件。', + 'title' => '证书id列表', + 'description' => '证书ID列表', + 'type' => 'array', + 'items' => ['description' => '证书ID', 'type' => 'string', 'required' => false, 'example' => '1416****-cn-hangzhou'], + 'required' => false, + 'maxItems' => 20, + 'minItems' => 1, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '监听证书结构。', + 'type' => 'object', + 'properties' => [ + 'MaxResults' => ['title' => '本次查询返回记录数量', 'description' => '本次请求所返回的最大记录条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'NextToken' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], + 'TotalCount' => ['title' => '总记录数', 'description' => '本次请求条件下的数据总量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'Certificates' => [ + 'title' => '监听SSL证书列表', + 'description' => '证书列表。', + 'type' => 'array', + 'items' => [ + 'description' => '证书结构。', + 'type' => 'object', + 'properties' => [ + 'CertificateId' => ['title' => '证书Id', 'description' => '证书ID,当前仅支持服务器证书。', 'type' => 'string', 'example' => '123157******'], + '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'], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.HttpListenerNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是不支持HTTP协议监听。'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], + ], + ], + 'title' => '查询监听证书', + 'summary' => '查询指定监听关联的证书,包含扩展证书和默认证书。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListListenerCertificates', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000,\\n \\"Certificates\\": [\\n {\\n \\"CertificateId\\": \\"123157******\\",\\n \\"IsDefault\\": true,\\n \\"Status\\": \\"Associating\\",\\n \\"CertificateType\\": \\"Server\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 50\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 1000\\n \\n 12315790343_166f8204689_1714763408_70998****\\n true\\n Associating\\n Server\\n \\n","errorExample":""}]', + ], + 'ListListeners' => [ + 'summary' => '查询指定地域的监听。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '190', + 'abilityTreeNodes' => ['FEATUREslbM7ALO6', 'FEATUREslbK3ZR0L', 'FEATUREslbN5IE4S'], + ], + 'parameters' => [ + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['title' => '用来标记当前开始读取的位置,置空表示从头开始。', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I4FmYAXGKPd****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['title' => '本次读取的最大数据记录数量,此参数为可选参数,取值1-100,用户传入为空时,默认为20。', 'description' => '本次读取的最大数据记录数量,此参数为可选参数。取值范围:**1~100**。入参为空时,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '50'], + ], + [ + 'name' => 'ListenerIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '监听ID列表,N最大支持20', + 'description' => '监听实例ID列表。最多支持20个监听ID。', + 'type' => 'array', + 'items' => ['description' => '监听实例ID。', 'type' => 'string', 'required' => false, 'example' => 'lsn-o4u54y73wq7b******'], + 'required' => false, + 'maxItems' => 20, + 'minItems' => 1, + ], + ], + [ + 'name' => 'LoadBalancerIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '实例ID列表,N最大支持20', + 'description' => '应用型负载均衡实例ID。最多支持20个实例ID。', + 'type' => 'array', + 'items' => ['description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => false, 'example' => 'alb-bd6oylbckp6k9x****'], + 'required' => false, + 'maxItems' => 21, + 'minItems' => 1, + ], + ], + [ + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => ['title' => '监听协议', 'description' => '需要过滤的监听协议。取值:'."\n" + ."\n" + .'- **HTTP**:协议类型为HTTP。'."\n" + .'- **HTTPS**:协议类型为HTTPS。'."\n" + .'- **QUIC**:协议类型为QUIC。', 'type' => 'string', 'required' => false, 'example' => 'HTTP'], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => '标签。', 'type' => 'array', 'items' => [ - 'description' => '转发规则条件。', + 'description' => '标签结构。', 'type' => 'object', 'properties' => [ - 'CookieConfig' => [ - 'title' => 'Cookie条件配置', - 'description' => 'Cookie配置。', + '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, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '应用型负载均衡监听信息。', + 'type' => 'object', + 'properties' => [ + 'Listeners' => [ + 'title' => '监听列表', + 'description' => '应用型负载均衡监听列表。', + 'type' => 'array', + 'items' => [ + 'description' => '应用型负载均衡监听结构。', 'type' => 'object', 'properties' => [ - 'Values' => [ - 'title' => 'Cookie键值对列表', - 'description' => 'Cookie配置。', + 'DefaultActions' => [ + 'title' => '默认动作', + 'description' => '默认规则动作列表。', 'type' => 'array', 'items' => [ - 'description' => 'Cookie配置。', + 'description' => '默认规则动作结构。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'title' => 'Cookie条件键', - 'description' => 'Cookie键。长度为1~100个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&";`。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'Value' => [ - 'title' => 'Cookie条件值', - 'description' => 'Cookie值。长度为1~128个字符,支持小写英文字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&`。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'ForwardGroupConfig' => [ + 'title' => '转发到服务器组', + 'description' => '转发规则动作对应的配置。动作类型为**ForwardGroup**时有效。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'title' => '服务器组列表', + 'description' => '转发目标服务器组。', + 'type' => 'array', + 'items' => [ + 'description' => '转发目标服务器组。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['title' => '服务器组ID', 'description' => '转发到的目的服务器组ID。', 'type' => 'string', 'example' => 'sgp-i5qt20******'], + ], + ], + ], + ], ], + 'Type' => ['title' => '类型', 'description' => '动作类型。取值:**ForwardGroup**,表示转发至多个服务器组。', 'type' => 'string', 'example' => 'ForwardGroup'], ], - 'required' => false, ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'HeaderConfig' => [ - 'title' => 'HTTP标头条件配置', - 'description' => '头字段配置。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头键', - 'description' => '头字段键。长度为1~40个字符,支持字母、数字、短划线(-)和下划线(_),不支持Cookie和Host。', - 'type' => 'string', - 'required' => false, - 'example' => 'Port', ], - 'Values' => [ - 'title' => 'HTTP标头值列表', - 'description' => '头字段值。', - 'type' => 'array', - 'items' => [ - 'description' => '头字段值。同一个转发规则条件内头字段值不能重复。命名规则:'."\n" - .'- 支持1~128个字符。'."\n" - .'- 支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、星号(*)和半角问号(?)。不支持`"`。'."\n" - .'- 开头和结尾不能为空格。结尾不能为`\\`。', - 'type' => 'string', - 'required' => false, - 'example' => '5006', + 'GzipEnabled' => ['title' => '是否开启Gzip压缩', 'description' => '是否开启Gzip压缩,对特定文件类型进行压缩。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n", 'type' => 'boolean', 'example' => 'false'], + 'Http2Enabled' => ['title' => '是否开启HTTP/2特性', 'description' => '是否开启HTTP/2特性。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'false'], + 'IdleTimeout' => ['title' => '连接空闲超时时间', 'description' => '指定连接空闲超时时间。单位:秒。取值范围:**1~60**。'."\n" + ."\n" + .'如果在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到接收到下一次请求时重新建立新的连接。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'ListenerDescription' => ['title' => '监听描述', 'description' => '自定义监听名称。', 'type' => 'string', 'example' => 'HTTP_80'], + 'ListenerId' => ['title' => '监听标识', 'description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-o4u34y73wq7b******'], + 'ListenerPort' => ['title' => '监听端口', 'description' => '应用型负载均衡实例前端使用的端口。取值:**1~65535**。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'ListenerProtocol' => ['title' => '监听协议', 'description' => '监听协议。取值:'."\n" + ."\n" + .'- **HTTP**:协议类型为HTTP。'."\n" + .'- **HTTPS**:协议类型为HTTPS。'."\n" + .'- **QUIC**:协议类型为QUIC。', 'type' => 'string', 'example' => 'HTTP'], + 'ListenerStatus' => ['title' => '监听状态', 'description' => '当前监听的状态,取值:'."\n" + ."\n" + .'- **Provisioning**:创建中。'."\n" + ."\n" + .'- **Running**:运行中。'."\n" + ."\n" + .'- **Configuring**:配置中。'."\n" + ."\n" + .'- **Stopped**:已停止。', 'type' => 'string', 'example' => 'Running'], + 'LoadBalancerId' => ['title' => '负载均衡标识', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'example' => 'alb-bd6oylbckp6k9x****'], + 'LogConfig' => [ + 'title' => '监听访问日志相关配置', + 'description' => '日志配置。', + 'type' => 'object', + 'properties' => [ + 'AccessLogRecordCustomizedHeadersEnabled' => ['title' => '访问日志是否开启携带自定义Header', 'description' => '访问日志是否开启携带自定义头。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'AccessLogTracingConfig' => [ + 'title' => '访问日志Xtrace相关的配置', + 'description' => '访问日志Xtrace相关的配置信息。', + 'type' => 'object', + 'properties' => [ + 'TracingEnabled' => ['title' => 'Xtrace功能状态', 'description' => '是否开启Xtrace功能。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 只有实例访问日志开关**AccessLogEnabled**打开时,才能设置此参数为**true**。', 'type' => 'boolean', 'example' => 'true'], + 'TracingSample' => ['title' => 'Xtrace功能状态', 'description' => 'Xtrace的采样率。取值:**1~10000**。'."\n" + ."\n" + .'> **TracingEnabled**为**true**时,此值有效。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'TracingType' => ['title' => 'xtrace的类型', 'description' => 'Xtrace类型,合法取值为**Zipkin**。'."\n" + ."\n" + .'> **TracingEnabled**为**true**时,此值有效。', 'type' => 'string', 'example' => 'Zipkin'], + ], + ], ], - 'required' => false, ], - ], - 'required' => false, - ], - 'HostConfig' => [ - 'title' => '主机名条件配置', - 'description' => '主机配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '主机名列表', - 'description' => '主机名列表。', - 'type' => 'array', - 'items' => [ - 'description' => '主机名。命名规则:'."\n" - ."\n" - .'- 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及星号(*)和半角问号(?)。'."\n" + 'QuicConfig' => [ + 'title' => 'HTTPS启用QUIC时相关属性', + 'description' => '启用关联QUIC监听时的配置信息。', + 'type' => 'object', + 'properties' => [ + 'QuicListenerId' => ['title' => '需要关联的QUIC监听ID,HTTPS监听时有效,QuicUpgradeEnabled为true时必选', 'description' => '需要关联的QUIC监听ID。**QuicUpgradeEnabled**为**true**时必选。HTTPS监听时有效。'."\n" ."\n" - .'- 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + .'> 原始监听和关联的QUIC监听必须属于同一个ALB实例,并且此QUIC监听之前没有被关联过。', 'type' => 'string', 'example' => 'lsn-o4u54y73wq7b******'], + 'QuicUpgradeEnabled' => ['title' => '是否开启quic升级,HTTPS监听时有效', 'description' => '是否开启QUIC升级。取值:'."\n" ."\n" - .'- 最右侧的域标签只能包含字母、星号(*)和问号(?),不能包含数字或短划线(-)。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" ."\n" - .'- 短划线(-)不能出现在其它域标签的开头或结尾。星号(*)和半角问号(?)可以出现在域标签的任意位置。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', + .'> 仅HTTPS监听时有效。', 'type' => 'boolean', 'example' => 'true'], ], - 'required' => false, ], - ], - 'required' => false, - ], - 'MethodConfig' => [ - 'title' => 'HTTP请求方法条件配置', - 'description' => '请求方法配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => 'HTTP请求方法列表', - 'description' => '请求方法列表。', - 'type' => 'array', - 'items' => [ - 'description' => '请求方法。'."\n" + 'RequestTimeout' => ['title' => '请求超时时间', 'description' => '指定请求超时时间。单位:秒。取值:**1~180**。'."\n" + ."\n" + .'如果在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回`HTTP 504`错误码。', 'type' => 'integer', 'format' => 'int32', 'example' => '34'], + 'SecurityPolicyId' => ['title' => '安全策略', 'description' => '安全策略。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'example' => 'tls_cipher_policy_1_1'], + 'XForwardedForConfig' => [ + 'title' => 'XForward字段相关的配置', + 'description' => '`XForward`头字段配置信息。', + 'type' => 'object', + 'properties' => [ + 'XForwardedForClientCertClientVerifyAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertClientVerifyEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头字段名称,只有当**XForwardedForClientCertClientVerifyEnabled**的值为**true**的时候,此值才会生效;否则该值不会生效。'."\n" ."\n" - .'取值:**HEAD**、**GET**、**POST**、**OPTIONS**、**PUT**、**PATCH**或**DELETE**。', - 'type' => 'string', - 'required' => false, - 'example' => 'PUT', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'PathConfig' => [ - 'title' => '路径条件配置', - 'description' => '转发的路径配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '路径条件列表', - 'description' => '转发路径列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发路径。命名规则:'."\n" - .'- 长度为1~128个字符。'."\n" - .'- 必须以正斜线(/)开头,支持字母、数字和特殊字符`$-_.+/&~@:`,不支持`“%#;!()[]^,”\\"`,支持星号(*)和半角问号(?)作为通配符使用。', - 'type' => 'string', - 'required' => false, - 'example' => '/test', + .'取值限制:长度为1~40字符。支持字母a-z、数字、短划线(-)和下划线(_)。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'example' => 'test_client-verify-alias_123456'], + 'XForwardedForClientCertClientVerifyEnabled' => ['title' => '是否通过X-Forwarded-Clientcert-clientverify 头字段获取对访问负载均衡实例客户端证书的校验结果。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-clientverify`头字段获取对访问负载均衡实例客户端证书的校验结果。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForClientCertFingerprintAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertFingerprintEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头名称,只有当**XForwardedForClientCertFingerprintEnabled**的值为**true**时生效。'."\n" + ."\n" + .'取值限制:长度为1~40字符。支持字母a-z、数字、短划线(-)和下划线(_)。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'example' => 'test_finger-print-alias_123456'], + 'XForwardedForClientCertFingerprintEnabled' => ['title' => '是否通过X-Forwarded-Clientcert-fingerprint 头字段获取访问负载均衡实例客户端证书的指纹取值,HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-fingerprint`头字段获取访问负载均衡实例客户端证书的指纹取值。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForClientCertIssuerDNAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertIssuerDNEnabled的值为‘On’的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头名称,只有当**XForwardedForClientCertIssuerDNEnabled**的值为**true**的时候,此值才会生效。'."\n" + ."\n" + .'取值限制:长度为1~40字符。支持字母a-z、数字、短划线(-)和下划线(_)。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'example' => 'test_issue-dn-alias_123456'], + 'XForwardedForClientCertIssuerDNEnabled' => ['title' => '是否通过 X-Forwarded-Clientcert-issuerdn 头字段获取访问负载均衡实例客户端证书的发行者信息。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-issuerdn`头字段获取访问负载均衡实例客户端证书的发行者信息。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForClientCertSubjectDNAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertSubjectDNEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头名称,只有当**XForwardedForClientCertSubjectDNEnabled**的值为**true**时,此值才会生效。'."\n" + ."\n" + .'取值限制:长度为1~40字符。支持字母a-z、数字、短划线(-)和下划线(_)。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'example' => 'test_subject-dn-alias_123456'], + 'XForwardedForClientCertSubjectDNEnabled' => ['title' => '是否通过X-Forwarded-Clientcert-subjectdn 头字段获取访问负载均衡实例客户端证书的所有者信息。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-subjectdn`头字段获取访问负载均衡实例客户端证书的所有者信息。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForClientSrcPortEnabled' => ['title' => '是否通过X-Forwarded-Client-Port 头字段获取访问负载均衡实例客户端的端口。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Client-Port`头字段获取访问负载均衡实例客户端的端口。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP和HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForEnabled' => ['title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP', 'description' => '是否通过`X-Forwarded-For`头字段获取来访者真实IP。取值:'."\n" + .'- **true**(默认值):是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 1. 配置**true**,**XForwardedForProcessingMode**默认取值**append**,支持修改为**remove**。'."\n" + .'> 2. 配置**false**,将请求发送至后端服务之前保留`X-Forwarded-For`头字段,不做额外处理。'."\n" + .'> 3. HTTP和HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForProcessingMode' => ['description' => '处理`X-Forwarded-For`头字段的模式。只有当**XForwardedForEnabled**为**true**时,此值才会生效。取值:'."\n" + .'- **append**(默认值):附加。'."\n" + .'- **remove**:删除。'."\n" + ."\n" + .'> 1. 配置**append**,将请求发送至后端服务之前把最后一跳IP加入`X-Forwarded-For`头字段。'."\n" + .'> 2. 配置**remove**,将请求发送至后端服务之前删除`X-Forwarded-For`标头,无论请求是否携带`X-Forwarded-For`头字段。'."\n" + .'> 3. HTTP和HTTPS监听支持此参数。', 'type' => 'string', 'example' => 'append'], + 'XForwardedForProtoEnabled' => ['title' => '是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。', 'description' => '是否通过`X-Forwarded-Proto`头字段获取负载均衡实例的监听协议。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForSLBIdEnabled' => ['title' => '是否通过SLB-ID头字段获取负载均衡实例ID。', 'description' => '是否通过`SLB-ID`头字段获取负载均衡实例ID。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForSLBPortEnabled' => ['title' => '是否通过X-Forwarded-Port 头字段获取负载均衡实例的监听端口。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Port`头字段获取负载均衡实例的监听端口。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'example' => 'true'], + 'XForwardedForClientSourceIpsEnabled' => ['description' => '是否允许ALB从X-Forwarded-For头字段中查找真实客户端IP。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP、HTTPS监听支持此参数。', 'type' => 'boolean', 'example' => 'false'], + 'XForwardedForClientSourceIpsTrusted' => ['description' => '指定可信的代理IP。'."\n" + ."\n" + .'应用型负载均衡ALB会从后往前遍历`X-Forwarded-For`,选取第一个不在可信IP列表中的IP作为真实的客户端IP,该IP会被用于源IP限速。', 'type' => 'string', 'example' => '10.1.1.0/24'], + 'XForwardedForHostEnabled' => ['description' => '是否开启通过`X-Forwarded-Host`头字段获取访问负载均衡实例客户端的域名。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'example' => 'false'], ], - 'required' => false, ], - ], - 'required' => false, - ], - 'QueryStringConfig' => [ - 'title' => '查询字符串条件配置', - 'description' => '查询字符串配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '查询字符串条件键值对列表', - 'description' => '查询字符串列表。最多支持添加20个查询字符串。', + 'Tags' => [ + 'description' => '标签。', 'type' => 'array', 'items' => [ - 'description' => '查询字符串结构。', + 'description' => '标签结构。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'title' => '查询字符串条件键', - 'description' => '查询字符串键。长度为1~100个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&"`。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'Value' => [ - 'title' => '查询字符串条件值', - 'description' => '查询字符串值。长度为1~128个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&"`。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'Key' => ['description' => '标签键。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', 'type' => 'string', 'example' => 'env'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', 'type' => 'string', 'example' => 'product'], ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'Type' => [ - 'title' => '条件类型', - 'description' => '转发规则类型。最多支持添加7个转发规则类型。取值:'."\n" - ."\n" - .'- **Host**:主机。'."\n" - ."\n" - .'- **Path**:路径。'."\n" - ."\n" - .'- **Header**:HTTP头字段。'."\n" - ."\n" - .'- **QueryString**:查询字符串。'."\n" - ."\n" - .'- **Method**:请求方法。'."\n" - ."\n" - .'- **Cookie**:Cookie。'."\n" - ."\n" - .'- **SourceIp**:源IP。'."\n" - ."\n" - .'- **ResponseHeader**:响应HTTP头字段。'."\n" - ."\n" - .'- **ResponseStatusCode**: 响应状态码。', - 'type' => 'string', - 'required' => false, - 'example' => 'Host', - ], - 'ResponseStatusCodeConfig' => [ - 'title' => '返回状态码条件', - 'description' => '响应状态码配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '返回状态码条件', - 'description' => '响应状态码列表。', - 'type' => 'array', - 'items' => [ - 'description' => '响应状态码。', - 'type' => 'string', - 'required' => false, - 'example' => '301', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'ResponseHeaderConfig' => [ - 'title' => '返回HTTP标头', - 'description' => '标头条件配置。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '返回HTTP标头键', - 'description' => '头字段键。'."\n" - .'- 长度为1~40个字符。'."\n" - .'- 支持字母a~z、数字、短划线(-)和下划线(_)。'."\n" - .'- 不支持Cookie和Host。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'Values' => [ - 'title' => '返回HTTP标头值', - 'description' => '头字段值。', - 'type' => 'array', - 'items' => [ - 'description' => '头字段值。'."\n" - ."\n" - .'- 长度为1~128个字符。'."\n" - .'- 支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、小写字母以及通配符星号(*)和半角问号(?)。不支持`"`。'."\n" - .'- 开头和结尾不能为空格。结尾不能为`\\`。', - 'type' => 'string', - 'required' => false, - 'example' => '50006', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'SourceIpConfig' => [ - 'title' => '基于源IP业务流量匹配', - 'description' => '基于源IP业务流量匹配。最多支持添加5个基于源IP业务流量匹配。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '基于源IP业务流量匹配', - 'description' => '添加一个或多个IP地址或者IP地址段。'."\n" - ."\n", - 'type' => 'array', - 'items' => [ - 'description' => '添加一个或多个IP地址或者IP地址段。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/32', ], - 'required' => false, ], ], - 'required' => false, ], ], - 'required' => false, + 'MaxResults' => ['title' => '本次请求所返回的最大记录条数。', 'description' => '本次请求所返回的最大记录条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'NextToken' => ['title' => '用来表示当前调用返回读取到的位置,空代表数据已经读取完毕。', 'description' => '当前调用返回读取到的位置,设置为空代表数据已经读取完毕。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], + 'TotalCount' => ['title' => '本次请求条件下的数据总量。', 'description' => '本次请求条件下的数据总量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ], + ], + 'title' => '查询监听', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListListeners', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Listeners\\": [\\n {\\n \\"DefaultActions\\": [\\n {\\n \\"ForwardGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-i5qt20******\\"\\n }\\n ]\\n },\\n \\"Type\\": \\"ForwardGroup\\"\\n }\\n ],\\n \\"GzipEnabled\\": false,\\n \\"Http2Enabled\\": false,\\n \\"IdleTimeout\\": 3,\\n \\"ListenerDescription\\": \\"HTTP_80\\",\\n \\"ListenerId\\": \\"lsn-o4u34y73wq7b******\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTP\\",\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"LoadBalancerId\\": \\"alb-bd6oylbckp6k9x****\\",\\n \\"LogConfig\\": {\\n \\"AccessLogRecordCustomizedHeadersEnabled\\": true,\\n \\"AccessLogTracingConfig\\": {\\n \\"TracingEnabled\\": true,\\n \\"TracingSample\\": 100,\\n \\"TracingType\\": \\"Zipkin\\"\\n }\\n },\\n \\"QuicConfig\\": {\\n \\"QuicListenerId\\": \\"lsn-o4u54y73wq7b******\\",\\n \\"QuicUpgradeEnabled\\": true\\n },\\n \\"RequestTimeout\\": 34,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_1\\",\\n \\"XForwardedForConfig\\": {\\n \\"XForwardedForClientCertClientVerifyAlias\\": \\"test_client-verify-alias_123456\\",\\n \\"XForwardedForClientCertClientVerifyEnabled\\": true,\\n \\"XForwardedForClientCertFingerprintAlias\\": \\"test_finger-print-alias_123456\\",\\n \\"XForwardedForClientCertFingerprintEnabled\\": true,\\n \\"XForwardedForClientCertIssuerDNAlias\\": \\"test_issue-dn-alias_123456\\",\\n \\"XForwardedForClientCertIssuerDNEnabled\\": true,\\n \\"XForwardedForClientCertSubjectDNAlias\\": \\"test_subject-dn-alias_123456\\",\\n \\"XForwardedForClientCertSubjectDNEnabled\\": true,\\n \\"XForwardedForClientSrcPortEnabled\\": true,\\n \\"XForwardedForEnabled\\": true,\\n \\"XForwardedForProcessingMode\\": \\"append\\",\\n \\"XForwardedForProtoEnabled\\": true,\\n \\"XForwardedForSLBIdEnabled\\": true,\\n \\"XForwardedForSLBPortEnabled\\": true,\\n \\"XForwardedForClientSourceIpsEnabled\\": false,\\n \\"XForwardedForClientSourceIpsTrusted\\": \\"10.1.1.0/24\\",\\n \\"XForwardedForHostEnabled\\": false\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n \\n \\n rsp-cige6j****\\n \\n \\n ForwardGroup\\n \\n false\\n false\\n 3\\n HTTP_80\\n lsr-bp1bpn0kn908w4nbw****\\n 80\\n HTTP\\n Running\\n alb-bd6oylbckp6k9x****\\n \\n true\\n \\n true\\n 100\\n Zipkin\\n \\n \\n \\n lsr-bp1bpn908w4nbw****\\n true\\n \\n 34\\n tls_cipher_policy_1_1\\n \\n test_client-verify-alias_123456\\n true\\n test_finger-print-alias_123456\\n true\\n test_issue-dn-alias_123456\\n true\\n test_subject-dn-alias_123456\\n true\\n true\\n true\\n true\\n true\\n true\\n false\\n 10.1.1.0/24\\n \\n \\n 50\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 1000\\n","errorExample":""}]', + ], + 'ListLoadBalancers' => [ + 'summary' => '查询实例配置', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslb6TP8T4'], + ], + 'parameters' => [ + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['title' => '用来标记当前开始读取的位置,置空表示从头开始。', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['title' => '本次读取的最大数据记录数量,此参数为可选参数,取值1-100,用户传入为空时,默认为20。', 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值:**20**。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'ZoneId', + 'in' => 'query', + 'schema' => ['title' => '可用区ID', 'description' => '应用型负载均衡实例所在的可用区ID。'."\n" + ."\n" + .'您可以通过调用[DescribeZones](~~189196~~)接口获取可用区ID对应的可用区信息。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou-a'], + ], + [ + 'name' => 'LoadBalancerStatus', + 'in' => 'query', + 'schema' => ['title' => '实例状态', 'description' => '应用型负载均衡实例状态。取值:'."\n" + ."\n" + .'- **Inactive**: 已停止,监听不再转发流量。'."\n" + ."\n" + .'- **Active**::运行中。'."\n" + ."\n" + .'- **Provisioning**:创建中。'."\n" + ."\n" + .'- **Configuring**:变配中。'."\n" + ."\n" + .'- **CreateFailed**:创建失败,此时不会产生费用,实例只能被删除。系统默认清理最近1天创建失败的实例。', 'type' => 'string', 'required' => false, 'example' => 'Active'], + ], + [ + 'name' => 'LoadBalancerBussinessStatus', + 'in' => 'query', + 'schema' => ['title' => '实例业务状态', 'description' => '应用型负载均衡的业务状态。取值:'."\n" + ."\n" + .'- **Abnormal**:异常。'."\n" + ."\n" + .'- **Normal**:正常。', 'type' => 'string', 'required' => false, 'example' => 'Normal'], + ], + [ + 'name' => 'LoadBalancerIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '实例ID列表,N最大支持20', + 'description' => '实例ID列表。最多支持20个应用型负载均衡实例ID。', + 'type' => 'array', + 'items' => ['description' => '实例的ID。', 'type' => 'string', 'required' => false, 'example' => 'alb-o9ulmq5hgn68jk****'], 'required' => false, - 'maxItems' => 100, + 'maxItems' => 21, 'minItems' => 1, ], ], [ - 'name' => 'RuleActions', + 'name' => 'LoadBalancerNames', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '转发规则动作', - 'description' => '转发规则动作列表。', + 'title' => '实例Name列表,N最大支持10', + 'description' => '实例名称列表。最多支持10个实例名称。', 'type' => 'array', - 'items' => [ - 'description' => '转发规则动作列表。', - 'type' => 'object', - 'properties' => [ - 'FixedResponseConfig' => [ - 'title' => '返回固定内容动作配置', - 'description' => '固定响应内容配置。', - 'type' => 'object', - 'properties' => [ - 'Content' => [ - 'title' => '内容', - 'description' => '返回的固定内容。最大1 KB,只支持ASCII字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'dssacav', - ], - 'ContentType' => [ - 'title' => '内容类型', - 'description' => '返回固定内容的格式。'."\n" - ."\n" - .'取值:**text/plain**、**text/css**、**text/html**、**application/javascript**或**application/json**。', - 'type' => 'string', - 'required' => false, - 'example' => 'text/plain', - ], - 'HttpCode' => [ - 'title' => 'HTTP响应码', - 'description' => '返回的HTTP响应码,仅支持**2xx**、**4xx**、**5xx**数字型字符串,**x**为任意数字。', - 'type' => 'string', - 'required' => false, - 'example' => '200', - ], - ], - 'required' => false, - ], - 'ForwardGroupConfig' => [ - 'title' => '转发组动作配置', - 'description' => '转发组配置。', + 'items' => ['description' => '实例名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'alb-instance-test'], + 'required' => false, + 'maxItems' => 11, + 'minItems' => 1, + ], + ], + [ + 'name' => 'VpcIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => 'vpcId列表', + 'description' => '应用型负载均衡实例所属的VPC ID。最多支持10个VPC ID。', + 'type' => 'array', + 'items' => ['description' => '应用型负载均衡实例所属的VPC ID。', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp1b49rqrybk45nio****'], + 'required' => false, + 'maxItems' => 11, + 'minItems' => 1, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => 'tag列表', + 'description' => '实例标签。', + 'type' => 'array', + 'items' => [ + 'description' => '实例标签结构。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '实例的标签键', 'description' => '实例的标签键。最多支持输入20个标签键。一旦输入该值,则不允许为空字符串。'."\n" + ."\n" + .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'KeyTest'], + 'Value' => ['title' => '实例的标签值', 'description' => '实例的标签值。最多支持输入20个标签值。一旦输入该值,可以为空字符串。'."\n" + ."\n" + .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'alueTest'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + 'minItems' => 1, + ], + ], + [ + 'name' => 'AddressType', + 'in' => 'query', + 'schema' => ['title' => '负载均衡的地址类型', 'description' => '实例地址类型。取值:'."\n" + ."\n" + .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + ."\n" + .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'required' => false, 'example' => 'Intranet'], + ], + [ + 'name' => 'PayType', + 'in' => 'query', + 'schema' => ['title' => '付费类型', 'description' => '实例的计费类型。取值:'."\n" + ."\n" + .'**PostPay**(默认值):表示按量计费。', 'type' => 'string', 'required' => false, 'example' => 'PostPay'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['title' => '资源组ID', 'description' => '企业资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph****'], + ], + [ + 'name' => 'AddressIpVersion', + 'in' => 'query', + 'schema' => ['title' => '需要过滤的协议版本', 'description' => '协议版本。取值:'."\n" + ."\n" + .'- **IPv4**:IPv4类型。'."\n" + .'- **DualStack**:双栈类型。', 'type' => 'string', 'required' => false, 'example' => 'IPv4'], + ], + [ + 'name' => 'Ipv6AddressType', + 'in' => 'query', + 'schema' => ['title' => 'IPV6的地址网络类型', 'description' => '应用型负载均衡的IPv6地址类型。取值:'."\n" + ."\n" + .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + ."\n" + .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'required' => false, 'example' => 'Intranet'], + ], + [ + 'name' => 'DNSName', + 'in' => 'query', + 'schema' => ['description' => 'DNS域名。', 'type' => 'string', 'required' => false, 'example' => 'alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '应用型负载均衡实例配置信息。', + 'type' => 'object', + 'properties' => [ + 'LoadBalancers' => [ + 'title' => '实例列表', + 'description' => '应用型负载均衡实例列表。', + 'type' => 'array', + 'items' => [ + 'description' => '应用型负载均衡实例结构。', 'type' => 'object', 'properties' => [ - 'ServerGroupTuples' => [ - 'title' => '转发到的目的服务器组列表', - 'description' => '转发到的目标服务器组列表。', + 'AccessLogConfig' => [ + 'title' => '访问日志属性', + 'description' => '访问日志配置结构。', + 'type' => 'object', + 'properties' => [ + 'LogProject' => ['title' => '访问日志投递的logProject', 'description' => '日志项目。', 'type' => 'string', 'example' => 'sls-setter'], + 'LogStore' => ['title' => '删除保护开启时间', 'description' => '日志存储。', 'type' => 'string', 'example' => 'test'], + ], + ], + 'AddressAllocatedMode' => ['title' => '地址模式', 'description' => '地址模式。取值 :'."\n" + ."\n" + .'- **Fixed**:固定IP模式,表示使用固定IP地址。'."\n" + ."\n" + .'- **Dynamic**:动态IP模式,表示每个可用区动态分配IP地址。', 'type' => 'string', 'example' => 'Fixed'], + 'AddressType' => ['title' => '地址类型', 'description' => '负载均衡的地址类型。取值:'."\n" + ."\n" + .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + ."\n" + .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'example' => 'Intranet'], + 'BandwidthPackageId' => ['title' => '带宽包ID', 'description' => '公网类型实例关联的共享带宽包ID。', 'type' => 'string', 'example' => 'cbwp-bp1vevu8h3ieh****'], + 'CreateTime' => ['title' => '资源创建时间', 'description' => '资源创建时间。', 'type' => 'string', 'example' => '2022-07-02T02:49:05Z'], + 'DNSName' => ['title' => 'DNS域名', 'description' => 'DNS域名。', 'type' => 'string', 'example' => 'alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com'], + 'DeletionProtectionConfig' => [ + 'title' => '负载均衡删除保护相关信息', + 'description' => '删除保护配置。', + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['title' => '删除保护状态', 'description' => '删除保护状态,取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'true'], + 'EnabledTime' => ['title' => '删除保护开启时间', 'description' => '开启删除保护时间。', 'type' => 'string', 'example' => '2022-08-02T02:49:05Z'], + ], + ], + 'LoadBalancerBillingConfig' => [ + 'title' => '计费相关属性', + 'description' => '负载均衡实例计费配置。', + 'type' => 'object', + 'properties' => [ + 'PayType' => ['title' => '实例的计费类型', 'description' => '计费类型。取值:'."\n" + ."\n" + .'**PostPay**:按量计费。', 'type' => 'string', 'example' => 'PostPay', 'default' => 'PostPay'], + ], + ], + 'LoadBalancerBussinessStatus' => ['title' => '实例业务状态', 'description' => '负载均衡的业务状态。取值:'."\n" + ."\n" + .'- **Abnormal**:异常。'."\n" + ."\n" + .'- **Normal**:正常。', 'type' => 'string', 'example' => 'Normal'], + 'LoadBalancerEdition' => ['title' => '负载均衡的版本', 'description' => '负载均衡的版本,不同版本有不同功能限制和计费策略。取值:'."\n" + ."\n" + .'- **Basic**:基础版。'."\n" + ."\n" + .'- **Standard**:标准版。'."\n" + ."\n" + .'- **StandardWithWaf**:WAF增强版。'."\n" + ."\n", 'type' => 'string', 'example' => 'Standard'], + 'LoadBalancerId' => ['title' => '负载均衡标识', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'example' => 'alb-o9ulmq5hgn68jk****'], + 'LoadBalancerName' => ['title' => '实例名称', 'description' => '负载均衡实例名称。', 'type' => 'string', 'example' => 'alb-instance-test'], + 'LoadBalancerOperationLocks' => [ + 'title' => '锁定的原因', + 'description' => '负载均衡操作锁配置。', 'type' => 'array', 'items' => [ - 'description' => '转发到的目的服务器组结构。', + 'description' => '负载均衡操作锁结构。', 'type' => 'object', 'properties' => [ - 'ServerGroupId' => [ - 'title' => '服务器组标识', - 'description' => '转发到的目的服务器组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sg--atstuj3rtoptyui****', - ], - 'Weight' => [ - 'title' => '权重', - 'description' => '权重。取值越大,权重越大,表示转发的访问请求更多。取值范围:**0**~**100**。'."\n" - ."\n" - .'- 目的服务器组数为1时,未指定权重时默认值为**100**。'."\n" - ."\n" - .'- 目的服务器组数大于1时,需要用户指定权重值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '0', - 'example' => '30', - ], + 'LockReason' => ['title' => '锁定的原因', 'description' => '锁定的原因。在**LoadBalancerBussinessStatus**为**异常**时有效。', 'type' => 'string'], + 'LockType' => ['title' => '锁定的类型', 'description' => '锁定的类型。取值 :'."\n" + ."\n" + .'- **SecurityLocked**:安全锁定。'."\n" + ."\n" + .'- **RelatedResourceLocked**:关联锁定。'."\n" + ."\n" + .'- **FinancialLocked**:欠费锁定。'."\n" + ."\n" + .'- **ResidualLocked**:残留锁定。', 'type' => 'string', 'example' => 'FinancialLocked'], ], - 'required' => false, ], - 'required' => false, ], - 'ServerGroupStickySession' => [ - 'title' => '服务器组之间会话保持', - 'description' => '服务器组之间会话保持。', + 'LoadBalancerStatus' => ['title' => '实例状态', 'description' => '应用型负载均衡实例状态。取值:'."\n" + ."\n" + .'- **Inactive**: 已停止,表示实例监听不会再转发流量。'."\n" + ."\n" + .'- **Active**: 运行中。'."\n" + ."\n" + .'- **Provisioning**:创建中。'."\n" + ."\n" + .'- **Configuring**:变配中。'."\n" + ."\n" + .'- **CreateFailed**:创建失败。', 'type' => 'string', 'example' => 'Active'], + 'ModificationProtectionConfig' => [ + 'title' => '负载均衡修改保护相关信息', + 'description' => '修改保护配置。', 'type' => 'object', 'properties' => [ - 'Enabled' => [ - 'title' => '是否开启会话保持', - 'description' => '是否开启会话保持。取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**(默认值):不开启。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'Timeout' => [ - 'title' => '超时时间', - 'description' => '超时时间。单位:秒。取值范围:1~86400。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'Reason' => ['title' => '设置修改保护状态的原因', 'description' => '开启修改保护的原因。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" + ."\n" + .'仅在**Status**为**ConsoleProtection**时返回。', 'type' => 'string', 'example' => 'Managed Instance'], + 'Status' => ['title' => '负载均衡修改保护状态', 'description' => '应用型负载均衡实例的修改保护状态。取值:'."\n" + ."\n" + .'- **NonProtection**:未开启修改保护。如有配置**Reason**,**Reason**会被强制置空。'."\n" + ."\n" + .'- **ConsoleProtection**:已开启控制台修改保护。如有配置**Reason**,**Reason**可生效。'."\n" + ."\n" + .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', 'type' => 'string', 'example' => 'ConsoleProtection'], ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'InsertHeaderConfig' => [ - 'title' => '插入头部动作配置', - 'description' => '写入头字段配置。', - 'type' => 'object', - 'properties' => [ - 'CoverEnabled' => [ - 'title' => '是否覆盖请求中的值', - 'description' => '是否覆盖请求中的值。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'Key' => [ - 'title' => 'HTTP标头', - 'description' => '插入的头字段名称,长度为1\\~40个字符,支持大小写字母a\\~z、数字、下划线(_)和短划线(-)。**InsertHeaderConfig**中的头字段名称不能重复。'."\n" - ."\n" - .'> 不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`x-forwarded-host`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`。', - 'type' => 'string', - 'required' => false, - 'example' => 'key', - ], - 'Value' => [ - 'title' => 'HTTP标头内容', - 'description' => '插入的头字段内容。'."\n" - ."\n" - .'- **ValueType**取值为**SystemDefined**时取值如下:'."\n" - .' - **ClientSrcPort**:客户端端口。'."\n" - .' - **ClientSrcIp**:客户端IP地址。'."\n" - .' - **Protocol**:客户端请求的协议(HTTP或HTTPS)。'."\n" - .' - **SLBId**:应用型负载均衡实例ID。'."\n" - .' - **SLBPort**:应用型负载均衡实例监听端口。'."\n" - .'- **ValueType**取值为**UserDefined**时:您可自定义头字段内容,限制长度为1\\~128个字符,支持通配符星号(*)、半角问号(?)和ASCII码值`ch >= 32 && ch < 127`范围内的可打印字符,不支持`"`。开头和结尾不能为空格。结尾不能为`\\`。'."\n" - .'- **ValueType**取值为**ReferenceHeader**时:您可以引用请求头字段中的某一个字段,限制长度限制为1\\~128个字符,支持小写字母a\\~z、数字、短划线(-)和下划线(_)。', - 'type' => 'string', - 'required' => false, - 'example' => 'UserDefined', - ], - 'ValueType' => [ - 'title' => '取值类型', - 'description' => '头字段内容类型。取值:'."\n" - ."\n" - .'- **UserDefined**:您自定义头字段内容。'."\n" - ."\n" - .'- **ReferenceHeader**:引用请求头中的某一个头字段内容。'."\n" - ."\n" - .'- **SystemDefined**:系统定义头字段内容。', - 'type' => 'string', - 'required' => false, - 'example' => 'UserDefined', - ], - ], - 'required' => false, - ], - 'Order' => [ - 'title' => '优先级', - 'description' => '转发规则动作执行的顺序,取值范围:**1~50000**,按值从小到大执行动作。值不能为空,不能重复。最多支持添加20个转发规则动作执行的顺序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'RedirectConfig' => [ - 'title' => '重定向动作配置', - 'description' => '重定向配置。最多支持添加20个重定向。', - 'type' => 'object', - 'properties' => [ - 'Host' => [ - 'title' => '要跳转的主机地址', - 'description' => '要跳转的主机地址。取值:'."\n" - .'- **${host}**(默认值):取此值时不支持和其他字符拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)和半角问号(?)。'."\n" - .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" - .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。'."\n" - .' - 短划线(-)不能出现在其它域标签的开头或结尾。'."\n" - .' - 通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], - 'HttpCode' => [ - 'title' => '跳转方式', - 'description' => '跳转方式,取值为**301**、**302**、**303**、**307**或**308**。', - 'type' => 'string', - 'required' => false, - 'example' => '301', - ], - 'Path' => [ - 'title' => '要跳转的路径', - 'description' => '要跳转的路径。取值:'."\n" - .'- **${path}**(默认值):可以引用**${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1~128个字符。'."\n" - .' - 必须以正斜线(/)开头,支持字母、数字和特殊字符`$-_.+/&~@:`,不支持`“%#;!()[]^,”\\"`,同时支持通配符星号(*)和半角问号(?)。', - 'type' => 'string', - 'required' => false, - 'example' => '/test', - ], - 'Port' => [ - 'title' => '要跳转的端口', - 'description' => '要跳转的端口。取值:'."\n" - .'- **${port}**(默认值):该取值仅允许单独使用,不支持和其他字符拼接使用。'."\n" - .'- 其他取值:**1~63335**。', - 'type' => 'string', - 'required' => false, - 'example' => '10', ], - 'Protocol' => [ - 'title' => '要跳转的协议', - 'description' => '要跳转的协议。取值:'."\n" - ."\n" - .'- **${protocol}**(默认值):取该值时不支持和其他字符拼接使用。'."\n" - ."\n" - .'- **HTTP**或**HTTPS**。'."\n" - ."\n" - .'> HTTPS监听仅支持跳转HTTPS协议。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP', + 'ResourceGroupId' => ['title' => '企业资源组ID', 'description' => '企业资源组ID。', 'type' => 'string', 'example' => 'rg-atstuj3rtop****'], + 'Tags' => [ + 'title' => '标签列表', + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签结构。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '实例的标签键', 'description' => '实例的标签键。', 'type' => 'string', 'example' => 'KeyTest'], + 'Value' => ['title' => '实例的标签值', 'description' => '实例的标签值。', 'type' => 'string', 'example' => 'alueTest'], + ], + ], ], - 'Query' => [ - 'title' => '要跳转的查询字符串', - 'description' => '要跳转的查询字符串。取值:'."\n" - .'- **${query}**(默认值):可以引用**${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1~128个字符。'."\n" - .' - 支持可见字符,不支持空格和 `#[]{}\\|<>"`。如果是字母则必须是小写字母。', - 'type' => 'string', - 'required' => false, - 'example' => 'quert', + 'VpcId' => ['title' => 'Vpc网络ID', 'description' => '应用型负载均衡实例的专有网络ID。', 'type' => 'string', 'example' => 'vpc-bp1b49rqryhk45nio****'], + 'AddressIpVersion' => ['title' => '协议版本', 'description' => '协议版本。取值:'."\n" + ."\n" + .'- **IPv4**:IPv4类型。'."\n" + ."\n" + .'- **DualStack**:双栈类型。', 'type' => 'string', 'example' => 'DualStack'], + 'Ipv6AddressType' => ['title' => 'IPV6地址类型', 'description' => '应用型负载均衡IPv6的网络地址类型。取值:'."\n" + ."\n" + .'- **Internet**:公网。负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + ."\n" + .'- **Intranet**:私网。负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'example' => 'Intranet'], + 'SecurityGroupIds' => [ + 'description' => '应用型负载均衡实例加入的安全组。', + 'type' => 'array', + 'items' => ['description' => '应用型负载均衡实例加入的安全组。', 'type' => 'string', 'example' => 'sg-2zejdtxxpu8c9tny****'], ], ], - 'required' => false, - ], - 'RewriteConfig' => [ - 'title' => '内部重定向动作配置', - 'description' => '重写配置。', - 'type' => 'object', - 'properties' => [ - 'Host' => [ - 'title' => '主机名', - 'description' => '内部跳转的目的主机地址。取值:'."\n" - .'- **${host}**(默认值):该取值不支持和其他字符拼接。'."\n" - ."\n" - .'- 其他取值,字符格式限制如下:'."\n" - ."\n" - .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)和半角问号(?)。'."\n" - ."\n" - .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" - ."\n" - .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。'."\n" - ."\n" - .' - 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], - 'Path' => [ - 'title' => '路径', - 'description' => '要跳转的路径。取值:'."\n" - .'- **${path}**(默认值):可以引用**${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1~128个字符。'."\n" - .' - 必须以正斜线(/)开头,支持字母、数字和特殊字符`$-_.+/&~@:`,不支持`“%#;!()[]^,”\\"`,同时支持通配符星号(*)和半角问号(?)。', - 'type' => 'string', - 'required' => false, - 'example' => '/tsdf', - ], - 'Query' => [ - 'title' => '查询', - 'description' => '内部跳转的查询字符串。取值:'."\n" - .'- **${query}**(默认值):可以引用**${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1~128个字符。'."\n" - .' - 支持可见字符,不支持空格和 `#[]{}\\|<>"`。如果是字母则必须是小写字母。', - 'type' => 'string', - 'required' => false, - 'example' => 'quedsa', - ], - ], - 'required' => false, - ], - 'Type' => [ - 'title' => '转发规则动作类型', - 'description' => '动作类型。最多支持添加11个动作类型。取值:'."\n" - ."\n" - .'- **ForwardGroup**:转发至多个虚拟服务器组。'."\n" - ."\n" - .'- **Redirect**:重定向。'."\n" - ."\n" - .'- **FixedResponse**:返回固定内容。'."\n" - ."\n" - .'- **Rewrite**:重写。'."\n" - ."\n" - .'- **InsertHeader**:写入头字段。'."\n" - ."\n" - .'- **RemoveHeader**:删除头字段。'."\n" - ."\n" - .'- **TrafficLimit**:流量限速。'."\n" - ."\n" - .'- **TrafficMirror**:流量镜像。'."\n" - ."\n" - .'- **Cors**:跨域。'."\n" - ."\n" - .'> 一个转发规则必须包含有一条**ForwardGroup**(转发至)、**Redirect**(重定向)或**FixedResponse**(返回固定响应)转发动作,与其他类型转发动作并存时,必须放在最后执行。', - 'type' => 'string', - 'required' => false, - 'example' => 'ForwardGroup', - ], - 'TrafficLimitConfig' => [ - 'title' => '流量限速', - 'description' => '流量限速。', - 'type' => 'object', - 'properties' => [ - 'QPS' => [ - 'description' => '每秒请求次数。取值范围:**1~1000000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - 'PerIpQps' => [ - 'description' => '单IP每秒请求次数。 取值范围:**1 ~ 1000000**。'."\n" - ."\n" - .'> 如果同时配置**QPS**参数,**PerIpQps**参数的取值必须小于**QPS**参数的取值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '80', - ], - ], - 'required' => false, - ], - 'TrafficMirrorConfig' => [ - 'title' => '流量镜像', - 'description' => '流量镜像。', - 'type' => 'object', - 'properties' => [ - 'TargetType' => [ - 'title' => '镜像目标类型', - 'description' => '镜像的目标类型。取值:'."\n" - .'- **ForwardGroupMirror**:表示镜像至服务器组。', - 'type' => 'string', - 'required' => false, - 'example' => 'ForwardGroupMirror', - ], - 'MirrorGroupConfig' => [ - 'title' => '镜像至服务器组', - 'description' => '流量镜像至服务器组。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupTuples' => [ - 'description' => '流量镜像至服务器组。', - 'type' => 'array', - 'items' => [ - 'description' => '流量镜像至服务器组。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupId' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'srg-00mkgijak0w4qgz9****', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'RemoveHeaderConfig' => [ - 'title' => '去除HTTP标头', - 'description' => '去除HTTP头部配置。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头键', - 'description' => '去除的头字段名称,长度为1~40个字符,支持大小写字母a~z、数字、下划线(_)和短划线(-)。头字段名称不能重复用于RemoveHeader中。'."\n" - ."\n" - .'- 请求方向(Direction取值为Request):不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`x-forwarded-host`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`。'."\n" - .'- 响应方向(Direction取值为Response):响应方向不允许将头名称设置为以下字段(不区分大小写):`connection`、`upgrade`、`content-length`、`transfer-encoding`。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - 'required' => false, - ], - 'CorsConfig' => [ - 'title' => '跨域', - 'description' => '跨域。', - 'type' => 'object', - 'properties' => [ - 'AllowOrigin' => [ - 'title' => '允许的访问来源', - 'description' => '允许的访问来源列表。支持只配置一个元素`*`,或配置一个或多个值。'."\n" - .'- 单个值必须以`http://`或者`https://`开头,后边加一个正确的域名或一级泛域名。(例:`http://*.test.abc.example.com`)'."\n" - .'- 单个值可以不加端口,也可以指定端口,端口范围:**1**~**65535**。', - 'type' => 'array', - 'items' => [ - 'description' => '允许的访问来源。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://test.com', - ], - 'required' => false, - ], - 'AllowMethods' => [ - 'title' => '选择跨域访问时允许的HTTP方法', - 'description' => '选择跨域访问时允许的HTTP方法。', - 'type' => 'array', - 'items' => [ - 'description' => '选择跨域访问时允许的HTTP方法。取值:'."\n" - ."\n" - .'- **GET**。'."\n" - .'- **POST**。'."\n" - .'- **PUT**。'."\n" - .'- **DELETE**。'."\n" - .'- **HEAD**。'."\n" - .'- **OPTIONS**。'."\n" - .'- **PATCH**。', - 'type' => 'string', - 'required' => false, - 'example' => 'GET', - ], - 'required' => false, - ], - 'AllowHeaders' => [ - 'title' => '允许跨域的Header列表', - 'description' => '允许跨域的Header列表。', - 'type' => 'array', - 'items' => [ - 'description' => '允许跨域的Header列表。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_123', - ], - 'required' => false, - ], - 'ExposeHeaders' => [ - 'title' => '允许暴露的Header列表', - 'description' => '允许暴露的Header列表。', - 'type' => 'array', - 'items' => [ - 'description' => '允许暴露的 Header 列表。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_123', - ], - 'required' => false, - ], - 'AllowCredentials' => [ - 'title' => '是否允许携带凭证信息', - 'description' => '是否允许携带凭证信息。取值:'."\n" - ."\n" - .'- **on**:是。'."\n" - .'- **off**:否。', - 'type' => 'string', - 'required' => false, - 'example' => 'on', - ], - 'MaxAge' => [ - 'title' => '预检请求在浏览器的最大缓存时间', - 'description' => '预检请求在浏览器的最大缓存时间,单位:秒。'."\n" - ."\n" - .'取值范围:**-1**~**172800**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1000', - ], - ], - 'required' => false, ], ], - 'required' => false, + 'MaxResults' => ['title' => '本次请求所返回的最大记录条数。', 'description' => '分批次查询时每次显示的条目数。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'NextToken' => ['title' => '用来表示当前调用返回读取到的位置,空代表数据已经读取完毕。', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'], + 'TotalCount' => ['title' => '本次请求条件下的数据总量。', 'description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], ], - 'required' => false, - 'maxItems' => 100, - 'minItems' => 1, - ], - ], - [ - 'name' => 'RuleName', - 'in' => 'query', - 'schema' => [ - 'title' => '转发规则名称', - 'description' => '转发规则名称。 长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字,半角句号(.),下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'rule-instance-test', - ], - ], - [ - 'name' => 'Priority', - 'in' => 'query', - 'schema' => [ - 'title' => '转发规则优先级', - 'description' => '规则优先级,取值范围:**1~10000**。值越小表示优先级越高。'."\n" - ."\n" - .'> 同一个监听内规则优先级必须唯一。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '更新转发规则属性。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => ' 异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F5378-41F6-4AE4-92F8-7FF34B540710', - ], + 'title' => '查询负载均衡', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListLoadBalancers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/*'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Rule', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.GRPCServerGroup', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'Conflict.Priority', - 'errorMessage' => 'There is already %s having the same configuration with %s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'QuotaExceeded.RuleWildcardsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'QuotaExceeded.RuleActionsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'Mismatch.Protocol', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'OperationDenied.RewriteMissingForwardGroup', - 'errorMessage' => 'The operation is not allowed because of RewriteMissingForwardGroup.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.Listener', - 'errorMessage' => 'The specified listener is being configured, please try again later.', - ], - [ - 'errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', - 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.ServerGroup', - 'errorMessage' => 'Authentication has failed for ServerGroup.', - ], - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.Rule', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F5378-41F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F5378-41F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '更新转发规则属性', - 'description' => '- **UpdateRuleAttribute**接口属于异步接口,即系统返回一个请求ID,但该转发规则属性尚未更新成功,系统后台的更新任务仍在进行。您可以调用[ListRules](~~214379~~)查询转发规则属性的更新状态:'."\n" - .' - 当转发规则属性处于**Configuring**状态时,表示转发规则属性正在更新中。'."\n" - .' - 当转发规则属性处于**Available**状态时,表示转发规则属性更新成功。'."\n" - ."\n" - .'- 一条转发规则最多支持添加的条件数(**RuleConditions**)和动作数(**RuleActions**)如下:'."\n" - .' - 条件数:基础版5条、标准版10条、WAF增强版10条。'."\n" - .' - 动作数:基础版3条,标准版5条、WAF增强版5条。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LoadBalancers\\": [\\n {\\n \\"AccessLogConfig\\": {\\n \\"LogProject\\": \\"sls-setter\\",\\n \\"LogStore\\": \\"test\\"\\n },\\n \\"AddressAllocatedMode\\": \\"Fixed\\",\\n \\"AddressType\\": \\"Intranet\\",\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"DNSName\\": \\"alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\",\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"EnabledTime\\": \\"2022-08-02T02:49:05Z\\"\\n },\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"LoadBalancerBussinessStatus\\": \\"Normal\\",\\n \\"LoadBalancerEdition\\": \\"Standard\\",\\n \\"LoadBalancerId\\": \\"alb-o9ulmq5hgn68jk****\\",\\n \\"LoadBalancerName\\": \\"alb-instance-test\\",\\n \\"LoadBalancerOperationLocks\\": [\\n {\\n \\"LockReason\\": \\"\\",\\n \\"LockType\\": \\"FinancialLocked\\"\\n }\\n ],\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"ModificationProtectionConfig\\": {\\n \\"Reason\\": \\"Managed Instance\\",\\n \\"Status\\": \\"ConsoleProtection\\"\\n },\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"alueTest\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqryhk45nio****\\",\\n \\"AddressIpVersion\\": \\"DualStack\\",\\n \\"Ipv6AddressType\\": \\"Intranet\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-2zejdtxxpu8c9tny****\\"\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"TotalCount\\": 100\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n sls-setter\\n test\\n \\n Fixed\\n Intranet\\n cbwp-bp1vevu8h3ieh****\\n 2022-07-02T02:49:05Z\\n alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\n \\n true\\n 2022-08-02T02:49:05Z\\n \\n \\n PostPay\\n \\n Normal\\n Standard\\n alb-o9ulmq5hgn68jk****\\n alb-instance-test\\n \\n 欠费\\n FinancialLocked\\n \\n Active\\n \\n 托管实例\\n ConsoleProtection\\n \\n rg-atstuj3rtop****\\n \\n KeyTest\\n alueTest\\n \\n vpc-bp1b49rqrybk45nio****\\n DualStack\\n Intranet\\n \\n 20\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 100\\n","errorExample":""}]', ], - 'UpdateRulesAttribute' => [ - 'summary' => '批量更新转发规则属性。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListRules' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '35808', - 'abilityTreeNodes' => [ - 'FEATUREslbBIWWMH', - 'FEATUREslbTXOYED', - 'FEATUREslbQCCQ6L', - 'FEATUREslb4T90LL', - 'FEATUREslbIT4IYN', - 'FEATUREslbA51OGD', - 'FEATUREslbUBPZWI', - 'FEATUREslbGVK35E', - 'FEATUREslbYG3GCF', - 'FEATUREslbRBR9GZ', - 'FEATUREslbMWZQWL', - 'FEATUREslbJCYSIV', - 'FEATUREslbY93SFN', - 'FEATUREslbVUMBEO', - 'FEATUREslbZ4XFTS', - 'FEATUREslb2Q6O49', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeNodes' => ['FEATUREslbM7ALO6'], ], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['title' => '用来标记当前开始读取的位置,置空表示从头开始。', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + ."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + ."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['title' => '本次读取的最大数据记录数量,此参数为可选参数,取值1-100,用户传入为空时,默认为20。', 'description' => '本次读取的最大数据记录数。'."\n" + ."\n" + .'取值:**1~100**。'."\n" + ."\n" + .'默认值:**20**,表示用户没有传入数据。'."\n" + ."\n" + .'> 此参数为可选。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'RuleIds', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'由客户端生成该参数值,要保证在不同请求间唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', + 'title' => '转发规则ID列表,N最大支持20', + 'description' => '转发规则列表,一次最多支持查询20个转发规则。', + 'type' => 'array', + 'items' => ['description' => '转发规则ID。', 'type' => 'string', 'required' => false, 'example' => 'rule-sada******'], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665544***', + 'maxItems' => 20, + 'minItems' => 1, ], ], [ - 'name' => 'Rules', - 'in' => 'formData', + 'name' => 'ListenerIds', + 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '转发规则列表', - 'description' => '转发规则列表', + 'title' => '监听ID列表', + 'description' => '监听ID列表。一次最多支持查询20个监听。', 'type' => 'array', - 'items' => [ - 'description' => '转发规则', - 'type' => 'object', - 'properties' => [ - 'Priority' => [ - 'title' => '转发规则优先级', - 'description' => '转发规则优先级', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '80', - ], - 'RuleName' => [ - 'title' => '转发规则名称', - 'description' => '转发规则名称', - 'type' => 'string', - 'required' => false, - 'example' => 'rule_111', - ], - 'RuleActions' => [ - 'title' => '转发规则动作', - 'description' => '转发规则动作列表', - 'type' => 'array', - 'items' => [ - 'description' => '转发规则动作', - 'type' => 'object', - 'properties' => [ - 'FixedResponseConfig' => [ - 'title' => '返回固定内容动作配置', - 'description' => '返回固定内容动作配置', + 'items' => ['description' => '监听ID。', 'type' => 'string', 'required' => false, 'example' => 'lsn-i35udpz3pxsmnf****'], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'LoadBalancerIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '实例ID列表', + 'description' => '负载均衡实例ID列表。一次最多支持查询20个实例。', + 'type' => 'array', + 'items' => ['description' => '负载均衡实例ID。', 'type' => 'string', 'required' => false, 'example' => 'alb-x30o38azsuj0sx****'], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'Direction', + 'in' => 'query', + 'schema' => ['title' => '转发规则方向', 'description' => '转发规则的方向。取值:'."\n" + ."\n" + .'- **Request**(默认值):请求类型,对从客户端发送到ALB的报文进行条件匹配并进行相应的处理。'."\n" + ."\n" + .'- **Response**:响应类型,对从后端服务器组返回到ALB的报文进行条件匹配并进行相应的处理。'."\n" + ."\n" + .'>基础版的ALB实例不支持Response类型.', 'type' => 'string', 'required' => false, 'example' => 'Request'], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + '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, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '转发规则。', + 'type' => 'object', + 'properties' => [ + 'MaxResults' => ['title' => '本次请求所返回的最大记录条数。', 'description' => '本次请求所返回的最大记录条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'NextToken' => ['title' => '用来表示当前调用返回读取到的位置,空代表数据已经读取完毕。', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876F******'], + 'Rules' => [ + 'title' => '转发规则列表', + 'description' => '转发规则列表。', + 'type' => 'array', + 'items' => [ + 'description' => '转发规则结构。', + 'type' => 'object', + 'properties' => [ + 'ListenerId' => ['title' => '监听ID', 'description' => '转发规则所属监听ID。', 'type' => 'string', 'example' => 'lsn-i35udpz3pxsmnf****'], + 'LoadBalancerId' => ['title' => '实例ID', 'description' => '转发规则所属负载均衡实例ID。', 'type' => 'string', 'example' => 'alb-x30o38azsuj0sx****'], + 'Priority' => ['title' => '转发规则优先级', 'description' => '规则优先级,取值为**1~10000**。值越小表示优先级越高。'."\n" + ."\n" + .'> 同一个监听内规则优先级必须唯一。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RuleActions' => [ + 'title' => '转发规则动作', + 'description' => '转发规则动作列表。', + 'type' => 'array', + 'items' => [ + 'description' => '转发规则动作结构。', 'type' => 'object', 'properties' => [ - 'Content' => [ - 'title' => '内容', - 'description' => '内容', - 'type' => 'string', - 'required' => false, - 'example' => 'dssacav', - ], - 'ContentType' => [ - 'title' => '内容类型', - 'description' => '内容类型', - 'type' => 'string', - 'required' => false, - 'example' => 'text/plain', - ], - 'HttpCode' => [ - 'title' => 'HTTP响应码', - 'description' => 'HTTP响应码', - 'type' => 'string', - 'required' => false, - 'example' => '200', + 'FixedResponseConfig' => [ + 'title' => '返回固定内容动作配置', + 'description' => '固定响应内容配置。', + 'type' => 'object', + 'properties' => [ + 'Content' => ['title' => '内容', 'description' => '返回的固定内容。最大1 KB字节,只支持ASCII字符。', 'type' => 'string', 'example' => 'dssacav'], + 'ContentType' => ['title' => '内容类型', 'description' => '返回固定内容的格式。'."\n" + ."\n" + .'取值:**text/plain**、**text/css**、**text/html**、**application/javascript**或**application/json**。', 'type' => 'string', 'example' => 'text/plain'], + 'HttpCode' => ['title' => 'HTTP响应码', 'description' => '返回的HTTP响应码,仅支持**HTTP_2xx**、**HTTP_4xx**、**HTTP_5xx**数字型字符串,**x**为任意数字。', 'type' => 'string', 'example' => 'HTTP_2xx'], + ], ], - ], - 'required' => false, - ], - 'ForwardGroupConfig' => [ - 'title' => '转发组动作配置', - 'description' => '转发组动作配置', - 'type' => 'object', - 'properties' => [ - 'ServerGroupTuples' => [ - 'title' => '转发到的目的服务器组列表', - 'description' => '转发到的目的服务器组列表', - 'type' => 'array', - 'items' => [ - 'description' => '转发到的目的服务器组', - 'type' => 'object', - 'properties' => [ - 'ServerGroupId' => [ - 'title' => '服务器组标识', - 'description' => '服务器组标识', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-3kbj35ay7cvi******', + 'ForwardGroupConfig' => [ + 'title' => '转发组动作配置', + 'description' => '转发组配置。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'title' => '转发到的目的服务器组列表', + 'description' => '转发到的目的服务器组列表。', + 'type' => 'array', + 'items' => [ + 'description' => '转发到的目的服务器组列表。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['title' => '服务器组标识', 'description' => '转发到的目的服务器组ID。', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****'], + 'Weight' => ['title' => '当ServerGroupTuple.N数量大于1时,可配置每个服务器组的权重', 'description' => '权重。取值范围:**0**~**100**。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + ], ], - 'Weight' => [ - 'title' => '权重', - 'description' => '权重', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '0', - 'example' => '100', + ], + 'ServerGroupStickySession' => [ + 'title' => '服务器组间会话保持配置', + 'description' => '服务器组间会话保持配置', + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['title' => '当ServerGroupTuple.N数量大于1时,可选是否开启在服务器组间的会话保持', 'description' => '当ServerGroupTuple.N数量大于1时,可选是否开启在服务器组间的会话保持', 'type' => 'boolean'], + 'Timeout' => ['title' => '当Enabled=True时,可以配置会话保持的超时时间', 'description' => '当Enabled=True时,可以配置会话保持的超时时间', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], ], ], - 'required' => false, ], - 'required' => false, ], - 'ServerGroupStickySession' => [ - 'title' => '服务器组之间会话保持', - 'description' => '服务器组之间会话保持', + 'InsertHeaderConfig' => [ + 'title' => '插入头部动作配置', + 'description' => '写入头字段配置。', 'type' => 'object', 'properties' => [ - 'Enabled' => [ - 'title' => '是否开启会话保持', - 'description' => '是否开启会话保持', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'Timeout' => [ - 'title' => '超时时间', - 'description' => '超时时间', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], + 'Key' => ['title' => 'HTTP标头', 'description' => '插入的头字段名称,长度为1\\~40个字符,支持大小写字母a\\~z、数字、下划线(_)和短划线(-)。头字段名称不能重复用于`InsertHeader`中。'."\n" + ."\n" + .'> 不允许用户在头字段名称中使用**Cookie**和**Host**。', 'type' => 'string', 'example' => 'key'], + 'Value' => ['title' => 'HTTP标头内容', 'description' => '插入的头字段内容。'."\n" + ."\n" + .'- **ValueType**取值为**SystemDefined**时取值如下:'."\n" + .' - **ClientSrcPort**:客户端端口。'."\n" + .' - **ClientSrcIp**:客户端IP地址。'."\n" + .' - **Protocol**:客户端请求的协议(HTTP或HTTPS)。'."\n" + .' - **SLBId**:应用型负载均衡实例ID。'."\n" + .' - **SLBPort**:应用型负载均衡实例监听端口。'."\n" + .'- **ValueType**取值为**UserDefined**时:您可自定义头字段内容,限制长度为1\\~128个字符,支持通配符星号(*)、半角问号(?)和ASCII码值`ch >= 32 && ch < 127`范围内的可打印字符,开头和结尾不能为空格。'."\n" + .'- **ValueType**取值为**ReferenceHeader**时:您可以引用请求头字段中的某一个字段,限制长度限制为1\\~128个字符,支持小写字母a\\~z、数字、短划线(-)和下划线(_)。', 'type' => 'string', 'example' => 'ClientSrcPort'], + 'ValueType' => ['title' => '取值类型', 'description' => '头字段内容类型。取值:'."\n" + ."\n" + .'- **UserDefined**:用户指定。'."\n" + ."\n" + .'- **ReferenceHeader**:引用用户请求头中的某一个字段。'."\n" + ."\n" + .'- **SystemDefined**:系统定义。', 'type' => 'string', 'example' => 'SystemDefined'], ], - 'required' => false, ], - ], - 'required' => false, - ], - 'InsertHeaderConfig' => [ - 'title' => '插入头部动作配置', - 'description' => '插入头部动作配置', - 'type' => 'object', - 'properties' => [ - 'CoverEnabled' => [ - 'title' => '是否覆盖请求中的值', - 'description' => '是否覆盖请求中的值', - 'type' => 'boolean', - 'required' => false, - 'example' => 'False', + 'Order' => ['title' => '优先级', 'description' => '转发规则动作执行的顺序,取值为**1~50000**,按值从小到大执行动作。值不能为空,不能重复。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RedirectConfig' => [ + 'title' => '重定向动作配置', + 'description' => '重定向配置。', + 'type' => 'object', + 'properties' => [ + 'Host' => ['title' => '要跳转的主机地址', 'description' => '要跳转的主机地址。取值:'."\n" + .'- **${host}**(默认值):取此值时不支持和其他字符拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)和半角问号(?)。'."\n" + .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。'."\n" + .' - 短划线(-)不能出现在其它域标签的开头或结尾。'."\n" + .' - 通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', 'type' => 'string', 'example' => 'www.example.com'], + 'HttpCode' => ['title' => '跳转方式', 'description' => '跳转方式,取值为**301**、**302**、**303**、**307**或**308**。', 'type' => 'string', 'example' => '301'], + 'Path' => ['title' => '要跳转的路径', 'description' => '要跳转的路径。取值:'."\n" + .'- **${path}**(默认值):可以引用**${host}**、**${protocol}**和**${port}**,由**${host}**、**${protocol}**和**${port}**组成,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1~128个字符。'."\n" + .' - 必须以正斜线(/)开头,支持字母、数字和特殊字符`$-_.+/&~@:`,不支持`“%#;!()[]^,” `,同时支持通配符星号(*)和半角问号(?)。', 'type' => 'string', 'example' => '/test'], + 'Port' => ['title' => '要跳转的端口', 'description' => '要跳转的端口。取值:'."\n" + .'- **${port}**(默认值):该取值不支持和其他字符同时使用。'."\n" + .'- 其他取值:**1~63335**。', 'type' => 'string', 'example' => '10'], + 'Protocol' => ['title' => '要跳转的协议', 'description' => '要跳转的协议。取值:'."\n" + .'- **${protocol}**(默认值):取该值时不支持和其他字符拼接使用。'."\n" + .'- **HTTP**或**HTTPS**。'."\n" + ."\n" + .' '."\n" + .'> HTTPS监听仅支持跳转HTTPS协议。', 'type' => 'string', 'example' => 'HTTP'], + 'Query' => ['title' => '要跳转的查询字符串', 'description' => '要跳转的查询字符串。长度为1~128个字符,支持小写字母和可见字符,不支持 `#[]{}\\|<>&`。'."\n", 'type' => 'string', 'example' => 'quert'], + ], ], - 'Key' => [ - 'title' => 'HTTP标头', - 'description' => 'HTTP标头', - 'type' => 'string', - 'required' => false, - 'example' => 'key', + 'RemoveHeaderConfig' => [ + 'title' => '去除HTTP标头', + 'description' => '去除HTTP头部配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'HTTP标头', 'description' => '去除的头字段名称,长度为1\\~40个字符,支持大小写字母a~z、数字、下划线(_)和短划线(-)。头字段名称不能重复用于RemoveHeader中。'."\n" + ."\n" + .'* 请求方向(Direction取值为Request):不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`。'."\n" + .'* 响应方向(Direction取值为Response):响应方向不允许将头名称设置为以下字段(不区分大小写):`connection`、`upgrade`、`content-length`、`transfer-encoding`。', 'type' => 'string', 'example' => 'key'], + ], ], - 'Value' => [ - 'title' => 'HTTP标头内容', - 'description' => 'HTTP标头内容', - 'type' => 'string', - 'required' => false, - 'example' => 'value', + 'RewriteConfig' => [ + 'title' => '内部重定向动作配置', + 'description' => '重写配置。', + 'type' => 'object', + 'properties' => [ + 'Host' => ['title' => '主机名', 'description' => '要跳转的主机地址。取值:'."\n" + .'- **${host}**(默认值):取此值时不支持和其他字符拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)和半角问号(?)。'."\n" + .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。'."\n" + .' - 短划线(-)不能出现在其它域标签的开头或结尾。'."\n" + .' - 通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', 'type' => 'string', 'example' => 'www.example.com'], + 'Path' => ['title' => '路径', 'description' => '内部跳转的目的路径。长度为1~128个字符,以正斜线(/)开头,支持字母、数字、星号(*)、半角问号(?)和`$-_.+/&~@:`,不支持`“%#;!()[]^,” `。', 'type' => 'string', 'example' => '/tsdf'], + 'Query' => ['title' => '查询', 'description' => '内部跳转的查询字符串。长度为1~128个字符,支持小写字母和可见字符,不支持 `#[]{}\\|<>&`。'."\n" + ."\n", 'type' => 'string', 'example' => 'quedsa'], + ], ], - 'ValueType' => [ - 'title' => '取值类型', - 'description' => '取值类型', - 'type' => 'string', - 'required' => false, - 'example' => 'SystemDefined', + 'TrafficMirrorConfig' => [ + 'title' => '流量镜像Action对应的配置,type为TrafficMirror时必填且有效', + 'description' => '流量镜像。', + 'type' => 'object', + 'properties' => [ + 'TargetType' => ['title' => '流量镜像的目的,可以是服务器组', 'description' => '流量镜像的目的,可以是服务器组', 'type' => 'string', 'example' => 'ForwardGroupMirror'], + 'MirrorGroupConfig' => [ + 'title' => 'TargetType为服务器组时必选,目标服务器组', + 'description' => '流量镜像至服务器组。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'description' => '流量镜像至服务器组。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-00mkgijak0w4qgz9****'], + 'Weight' => ['description' => '权重。取值范围:**0**~**100**。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + ], + 'description' => '', + ], + ], + ], + ], + ], + ], + 'TrafficLimitConfig' => [ + 'description' => '流量限速。', + 'type' => 'object', + 'properties' => [ + 'QPS' => ['description' => '每秒请求次数。取值范围:**1**~**100000**。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], + 'PerIpQps' => ['description' => '单IP每秒请求次数。 取值范围:**1 ~ 100000**。'."\n" + ."\n" + .'> 如果同时配置**QPS**参数,**PerIpQps**参数的取值必须小于**QPS**参数的取值。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + ], + ], + 'Type' => ['title' => '转发规则动作类型', 'description' => '动作类型。取值:'."\n" + ."\n" + .'- **ForwardGroup**:转发至多个虚拟服务器组。'."\n" + ."\n" + .'- **Redirect**:重定向。'."\n" + ."\n" + .'- **FixedResponse**:返回固定内容。'."\n" + ."\n" + .'- **Rewrite**:重写。'."\n" + ."\n" + .'- **InsertHeader**:写入头字段。'."\n" + ."\n" + .'- **RemoveHeaderConfig**:删除头字段。'."\n" + ."\n" + .'- **TrafficLimitConfig**:流量限速。'."\n" + ."\n" + .'- **TrafficMirrorConfig**:流量镜像。'."\n" + ."\n" + .'- **CorsConfig**:跨域。', 'type' => 'string', 'example' => 'ForwardGroup'], + 'CorsConfig' => [ + 'title' => '跨域', + 'description' => '跨域。', + 'type' => 'object', + 'properties' => [ + 'AllowOrigin' => [ + 'title' => '允许的访问来源', + 'description' => '允许的访问来源。', + 'type' => 'array', + 'items' => ['description' => '允许访问的来源。支持配置为`*`或配置为一个或多个value值。value的值不能为`*`。'."\n" + ."\n" + .'- 单个value值必须以`http://`或者`https://`开头,后面加一个正确的域名或者一级的泛域名(例如,`*.test.abc.example.com`)。'."\n" + .'- 单个value值可以不加端口,也可以指定端口,端口范围:**1**~**65535**。', 'type' => 'string', 'example' => 'http://test.com'], + ], + 'AllowMethods' => [ + 'title' => '选择跨域访问时允许的HTTP方法', + 'description' => '选择跨域访问时允许的HTTP方法。', + 'type' => 'array', + 'items' => ['description' => '选择跨域访问时允许的HTTP方法。取值:'."\n" + .'- **GET**。'."\n" + .'- **POST**。'."\n" + .'- **PUT**。'."\n" + .'- **DELETE**。'."\n" + .'- **HEAD**。'."\n" + .'- **OPTIONS**。'."\n" + .'- **PATCH**。', 'type' => 'string', 'example' => 'GET'], + ], + 'AllowHeaders' => [ + 'title' => '允许跨域的Header列表', + 'description' => '允许跨域的Header列表。', + 'type' => 'array', + 'items' => ['description' => '允许跨域的Header列表。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', 'type' => 'string', 'example' => 'test_123'], + ], + 'ExposeHeaders' => [ + 'title' => '允许暴露的Header列表', + 'description' => '允许暴露的Header列表。', + 'type' => 'array', + 'items' => ['description' => '允许跨域的Header列表。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', 'type' => 'string', 'example' => 'test_123'], + ], + 'AllowCredentials' => ['title' => '是否允许携带凭证信息', 'description' => '是否允许携带凭证信息。取值:'."\n" + ."\n" + .'- **on**:是。'."\n" + .'- **off**:否。', 'type' => 'string', 'example' => 'on'], + 'MaxAge' => ['title' => '预检请求在浏览器的最大缓存时间', 'description' => '预检请求在浏览器的最大缓存时间,单位:秒。'."\n" + ."\n" + .'取值范围:**-1**~**172800**。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + ], ], ], - 'required' => false, - ], - 'Order' => [ - 'title' => '优先级', - 'description' => '优先级', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', ], - 'RedirectConfig' => [ - 'title' => '重定向动作配置', - 'description' => '重定向动作配置', + ], + 'RuleConditions' => [ + 'title' => '转发规则条件', + 'description' => '转发规则条件列表。', + 'type' => 'array', + 'items' => [ + 'description' => '转发规则条件结构。', 'type' => 'object', 'properties' => [ - 'Host' => [ - 'title' => '要跳转的主机地址', - 'description' => '要跳转的主机地址', - 'type' => 'string', - 'required' => false, - 'example' => 'test.alb.com', - ], - 'HttpCode' => [ - 'title' => '跳转方式', - 'description' => '跳转方式', - 'type' => 'string', - 'required' => false, - 'example' => '301', - ], - 'Path' => [ - 'title' => '要跳转的路径', - 'description' => '要跳转的路径', - 'type' => 'string', - 'required' => false, - 'example' => '/', - ], - 'Port' => [ - 'title' => '要跳转的端口', - 'description' => '要跳转的端口', - 'type' => 'string', - 'required' => false, - 'example' => '443', - ], - 'Protocol' => [ - 'title' => '要跳转的协议', - 'description' => '要跳转的协议', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTPS', - ], - 'Query' => [ - 'title' => '要跳转的查询字符串', - 'description' => '要跳转的查询字符串', - 'type' => 'string', - 'required' => false, - 'example' => '${query}', - ], - ], - 'required' => false, - ], - 'RewriteConfig' => [ - 'title' => '内部重定向动作配置', - 'description' => '内部重定向动作配置', - 'type' => 'object', - 'properties' => [ - 'Host' => [ - 'title' => '主机名', - 'description' => '主机名', - 'type' => 'string', - 'required' => false, - 'example' => '${host}', - ], - 'Path' => [ - 'title' => '路径', - 'description' => '路径', - 'type' => 'string', - 'required' => false, - 'example' => '/', - ], - 'Query' => [ - 'title' => '查询', - 'description' => '查询', - 'type' => 'string', - 'required' => false, - 'example' => '${query}', - ], - ], - 'required' => false, - ], - 'Type' => [ - 'title' => '转发规则动作类型', - 'description' => '转发规则动作类型', - 'type' => 'string', - 'required' => true, - 'example' => 'ForwardGroup', - ], - 'TrafficLimitConfig' => [ - 'title' => '流量限速', - 'description' => '流量限速', - 'type' => 'object', - 'properties' => [ - 'QPS' => [ - 'description' => '每秒请求次数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1000', - ], - 'PerIpQps' => [ - 'description' => '单IP每秒请求次数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - ], - 'required' => false, - ], - 'TrafficMirrorConfig' => [ - 'title' => '流量镜像', - 'description' => '流量镜像', - 'type' => 'object', - 'properties' => [ - 'TargetType' => [ - 'title' => '镜像目标类型', - 'description' => '镜像目标类型', - 'type' => 'string', - 'required' => false, - 'example' => 'ForwardGroupMirror', - ], - 'MirrorGroupConfig' => [ - 'title' => '镜像至服务器组', - 'description' => '镜像至服务器组', + 'CookieConfig' => [ + 'title' => 'Cookie条件配置', + 'description' => 'Cookie配置。', 'type' => 'object', 'properties' => [ - 'ServerGroupTuples' => [ - 'description' => '流量镜像至服务器组。', + 'Values' => [ + 'title' => 'Cookie键值对列表', + 'description' => 'Cookie值。', 'type' => 'array', 'items' => [ - 'description' => '流量镜像至服务器组。', + 'description' => 'Cookie值。', 'type' => 'object', 'properties' => [ - 'ServerGroupId' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-vlnjo1rhw0vc******', - ], + 'Key' => ['title' => 'Cookie条件键', 'description' => 'Cookie键。长度为1~100个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&`。', 'type' => 'string', 'example' => 'test'], + 'Value' => ['title' => 'Cookie条件值', 'description' => 'Cookie值。长度为1~128个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&`。', 'type' => 'string', 'example' => 'test'], ], - 'required' => false, ], - 'required' => false, ], ], - 'required' => false, ], - ], - 'required' => false, - ], - 'RemoveHeaderConfig' => [ - 'title' => '去除HTTP标头', - 'description' => '去除HTTP标头', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头键', - 'description' => 'HTTP标头键', - 'type' => 'string', - 'required' => false, - 'example' => 'key', + 'HeaderConfig' => [ + 'title' => 'HTTP标头条件配置', + 'description' => '头字段配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'HTTP标头键', 'description' => '头字段键。长度为1\\~40个字符。支持字母a\\~z、数字、短划线(-)和下划线(_)。不支持Cookie和Host。', 'type' => 'string', 'example' => 'Port'], + 'Values' => [ + 'title' => 'HTTP标头值列表', + 'description' => '头字段值。', + 'type' => 'array', + 'items' => ['description' => '头字段值。长度为1\\~128个字符。支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、小写字母、星号(*)和半角问号(?)。开头和结尾不能为空格。', 'type' => 'string', 'example' => '5006'], + ], + ], ], - ], - 'required' => false, - ], - 'CorsConfig' => [ - 'title' => '跨域', - 'description' => '跨域', - 'type' => 'object', - 'properties' => [ - 'AllowOrigin' => [ - 'title' => '允许的访问来源', - 'description' => '允许的访问来源', - 'type' => 'array', - 'items' => [ - 'description' => '允许的访问来源', - 'type' => 'string', - 'required' => false, - 'example' => '*', + 'HostConfig' => [ + 'title' => '主机名条件配置', + 'description' => '主机配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '主机名列表', + 'description' => '主机名。', + 'type' => 'array', + 'items' => ['description' => '主机名。命名规则:'."\n" + ."\n" + .'- 域名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)、星号(*)和半角问号(?)。'."\n" + ."\n" + .'- 域名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + ."\n" + .'- 最右侧的域标签只能包含字母、星号(*)和半角问号(?),不能包含数字或短划线(-)。'."\n" + ."\n" + .'- 短划线(-)不能出现在其它域标签的开头或结尾。星号(*)和半角问号(?)可以出现在域标签的任意位置。', 'type' => 'string', 'example' => 'www.example.com'], + ], ], - 'required' => false, ], - 'AllowMethods' => [ - 'title' => '选择跨域访问时允许的HTTP方法', - 'description' => '选择跨域访问时允许的HTTP方法', - 'type' => 'array', - 'items' => [ - 'description' => '选择跨域访问时允许的HTTP方法。取值:'."\n" - .'- **GET**。'."\n" - .'- **POST**。'."\n" - .'- **PUT**。'."\n" - .'- **DELETE**。'."\n" - .'- **HEAD**。'."\n" - .'- **OPTIONS**。'."\n" - .'- **PATCH**。', - 'type' => 'string', - 'required' => false, - 'example' => 'GET', + 'MethodConfig' => [ + 'title' => 'HTTP请求方法条件配置', + 'description' => '请求方法配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => 'HTTP请求方法列表', + 'description' => '请求方法。', + 'type' => 'array', + 'items' => ['description' => '请求方法。'."\n" + ."\n" + .'取值:**HEAD**、**GET**、**POST**、**OPTIONS**、**PUT**、**PATCH**或**DELETE**。', 'type' => 'string', 'example' => 'PUT'], + ], ], - 'required' => false, ], - 'AllowHeaders' => [ - 'title' => '允许跨域的Header列表', - 'description' => '允许跨域的Header列表', - 'type' => 'array', - 'items' => [ - 'description' => '允许跨域的Header', - 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'PathConfig' => [ + 'title' => '路径条件配置', + 'description' => '转发路径配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '路径条件列表', + 'description' => '转发路径。', + 'type' => 'array', + 'items' => ['description' => '转发路径。长度为1~128个字符,以正斜线(/)开头,支持字母、数字、星号(*)、半角问号(?)和`$-_.+/&~@:`,不支持`“%#;!()[]^,” `。', 'type' => 'string', 'example' => '/test'], + ], ], - 'required' => false, ], - 'ExposeHeaders' => [ - 'title' => '允许暴露的Header列表', - 'description' => '允许暴露的Header列表', - 'type' => 'array', - 'items' => [ - 'description' => '允许暴露的Header', - 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'QueryStringConfig' => [ + 'title' => '查询字符串条件配置', + 'description' => '查询字符串配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '查询字符串条件键值对列表', + 'description' => '查询字符串。', + 'type' => 'array', + 'items' => [ + 'description' => '查询字符串。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '查询字符串条件键', 'description' => '查询字符串键。长度为1~100个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&`。', 'type' => 'string', 'example' => 'test'], + 'Value' => ['title' => '查询字符串条件值', 'description' => '查询字符串值。长度为1~128个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&`。', 'type' => 'string', 'example' => 'test'], + ], + ], + ], ], - 'required' => false, ], - 'AllowCredentials' => [ - 'title' => '是否允许携带凭证信息', - 'description' => '是否允许携带凭证信息', - 'type' => 'string', - 'required' => false, - 'example' => 'off', + 'SourceIpConfig' => [ + 'title' => '源IP业务流量匹配', + 'description' => '基于源IP业务流量匹配。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '需要匹配的源IP列表', + 'description' => '需要匹配的源IP列表。', + 'type' => 'array', + 'items' => ['description' => '添加一个或多个IP地址或者IP地址段。'."\n" + ."\n" + .'一条转发规则中最多支持添加5条源IP。', 'type' => 'string', 'example' => '192.168.XX.XX/32'], + ], + ], ], - 'MaxAge' => [ - 'title' => '预检请求在浏览器的最大缓存时间', - 'description' => '预检请求在浏览器的最大缓存时间', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '60', + 'ResponseStatusCodeConfig' => [ + 'title' => '返回状态码条件', + 'description' => '响应状态码配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '返回状态码条件列表', + 'description' => '响应状态码列表。', + 'type' => 'array', + 'items' => ['description' => '响应状态码。', 'type' => 'string', 'example' => '200'], + ], + ], + ], + 'ResponseHeaderConfig' => [ + 'title' => '返回HTTP标头', + 'description' => '响应HTTP头部配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '返回HTTP标头键', 'description' => '响应HTTP头部键。长度为1\\~40个字符。支持字母a~z、数字、短划线(-)和下划线(_)。不支持Cookie和Host。', 'type' => 'string', 'example' => 'key'], + 'Values' => [ + 'title' => '返回HTTP标头值', + 'description' => '响应HTTP头部值列表。', + 'type' => 'array', + 'items' => ['description' => '响应HTTP头部值。长度为1~128个字符。', 'type' => 'string', 'example' => 'value'], + ], + ], ], + 'Type' => ['title' => '条件类型', 'description' => '转发规则类型。取值:'."\n" + ."\n" + .'- **Host**:主机。'."\n" + ."\n" + .'- **Path**:路径。'."\n" + ."\n" + .'- **Header**:HTTP头字段。'."\n" + ."\n" + .'- **QueryString**:查询字符串。'."\n" + ."\n" + .'- **Method**:请求方法。'."\n" + ."\n" + .'- **Cookie**:Cookie。'."\n" + ."\n" + .'- **SourceIp**:源IP。', 'type' => 'string', 'example' => 'Host'], ], - 'required' => false, + 'required' => true, ], ], - 'required' => true, - ], - 'required' => false, - ], - 'RuleConditions' => [ - 'title' => '转发规则条件', - 'description' => '转发规则条件列表', - 'type' => 'array', - 'items' => [ - 'description' => '转发规则条件', - 'type' => 'object', - 'properties' => [ - 'CookieConfig' => [ - 'title' => 'Cookie条件配置', - 'description' => 'Cookie条件配置', + 'RuleId' => ['title' => '转发规则标识', 'description' => '转发规则ID。', 'type' => 'string', 'example' => 'rule-bpn0kn908w4nbw****'], + 'RuleName' => ['title' => '转发规则名称', 'description' => '转发规则名称。 长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字,半角句号(.),下划线(_)和短划线(-)。', 'type' => 'string', 'example' => 'rule-instance-test'], + 'RuleStatus' => ['title' => '转发规则状态', 'description' => '转发规则状态。取值:'."\n" + ."\n" + .'- **Provisioning**:创建中。'."\n" + ."\n" + .'- **Configuring**:变配中。'."\n" + ."\n" + .'- **Available**:运行中。', 'type' => 'string', 'example' => 'Available'], + 'Direction' => ['title' => '转发规则方向', 'description' => '转发规则的方向。取值:'."\n" + ."\n" + .'* Request(默认值):请求类型,对从客户端发送到ALB的报文进行条件匹配并进行相应的处理。'."\n" + ."\n" + .'* Response:响应类型,对从后端服务器组返回到ALB的报文进行条件匹配并进行相应的处理。'."\n" + ."\n" + .'> 基础版的ALB实例不支持Response类型。', 'type' => 'string', 'example' => 'Request'], + 'Tags' => [ + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签结构。', 'type' => 'object', 'properties' => [ - 'Values' => [ - 'title' => 'Cookie键值对列表', - 'description' => 'Cookie键值对列表', - 'type' => 'array', - 'items' => [ - 'description' => 'Cookie键值对', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'Cookie条件键', - 'description' => 'Cookie条件键', - 'type' => 'string', - 'required' => false, - 'example' => 'key', - ], - 'Value' => [ - 'title' => 'Cookie条件值', - 'description' => 'Cookie条件值', - 'type' => 'string', - 'required' => false, - 'example' => 'value', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'HeaderConfig' => [ - 'title' => 'HTTP标头条件配置', - 'description' => 'HTTP标头条件配置', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头键', - 'description' => 'HTTP标头键', - 'type' => 'string', - 'required' => false, - 'example' => 'key', - ], - 'Values' => [ - 'title' => 'HTTP标头值列表', - 'description' => 'HTTP标头值列表', - 'type' => 'array', - 'items' => [ - 'description' => 'HTTP标头值', - 'type' => 'string', - 'required' => false, - 'example' => 'value', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'HostConfig' => [ - 'title' => '主机名条件配置', - 'description' => '主机名条件配置', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '主机名列表', - 'description' => '主机名列表', - 'type' => 'array', - 'items' => [ - 'description' => '主机名', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'MethodConfig' => [ - 'title' => 'HTTP请求方法条件配置', - 'description' => 'HTTP请求方法条件配置', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => 'HTTP请求方法列表', - 'description' => 'HTTP请求方法列表', - 'type' => 'array', - 'items' => [ - 'description' => 'HTTP请求方法', - 'type' => 'string', - 'required' => false, - 'example' => 'PUT', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'PathConfig' => [ - 'title' => '查询字符串条件配置', - 'description' => '查询字符串条件配置', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '路径条件列表', - 'description' => '路径条件列表', - 'type' => 'array', - 'items' => [ - 'description' => '路径条件', - 'type' => 'string', - 'required' => false, - 'example' => '/test', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'QueryStringConfig' => [ - 'title' => '查询字符串条件配置', - 'description' => '查询字符串条件配置', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '查询字符串条件键值对列表', - 'description' => '查询字符串条件键值对列表', - 'type' => 'array', - 'items' => [ - 'description' => '查询字符串条件键值对', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '查询字符串条件键', - 'description' => '查询字符串条件键', - 'type' => 'string', - 'required' => false, - 'example' => 'account', - ], - 'Value' => [ - 'title' => '查询字符串条件值', - 'description' => '查询字符串条件值', - 'type' => 'string', - 'required' => false, - 'example' => 'on', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'ResponseHeaderConfig' => [ - 'title' => '返回HTTP标头', - 'description' => '返回HTTP标头', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '返回HTTP标头键', - 'description' => '返回HTTP标头键', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'Values' => [ - 'title' => '返回HTTP标头值', - 'description' => '返回HTTP标头值', - 'type' => 'array', - 'items' => [ - 'description' => '返回HTTP标头值', - 'type' => 'string', - 'required' => false, - 'example' => 'value', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'ResponseStatusCodeConfig' => [ - 'title' => '返回状态码条件', - 'description' => '返回状态码条件', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '返回状态码条件', - 'description' => '返回状态码条件', - 'type' => 'array', - 'items' => [ - 'description' => '返回状态码条件', - 'type' => 'string', - 'required' => false, - 'example' => '200', - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'Type' => [ - 'title' => '条件类型', - 'description' => '条件类型', - 'type' => 'string', - 'required' => false, - 'example' => 'Header', - ], - 'SourceIpConfig' => [ - 'title' => '基于源IP业务流量匹配', - 'description' => '基于源IP业务流量匹配', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'description' => '添加一个或多个IP地址或者IP地址段。', - 'type' => 'array', - 'items' => [ - 'description' => '添加一个或多个IP地址或者IP地址段。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.1.1', - ], - 'required' => false, - ], + 'Key' => ['description' => '标签键。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', 'type' => 'string', 'example' => 'env'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', 'type' => 'string', 'example' => 'product'], ], - 'required' => false, ], ], - 'required' => true, ], - 'required' => false, - ], - 'RuleId' => [ - 'title' => '转发规则ID', - 'description' => '转发规则ID', - 'type' => 'string', - 'required' => true, - 'example' => 'rule-n4hfecmmtmfl******', ], ], - 'required' => true, - ], - 'required' => true, - 'maxItems' => 100, - 'minItems' => 1, - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => '是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会批量更新转发规则属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'TotalCount' => ['title' => '本次请求条件下的数据总量。', 'description' => '本次请求条件下返回的总数据记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'IncorrectStatus.Rule', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.GRPCServerGroup', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'Conflict.Priority', - 'errorMessage' => 'There is already %s having the same configuration with %s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'QuotaExceeded.RuleWildcardsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'QuotaExceeded.RuleActionsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'Mismatch.Protocol', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'OperationDenied.ServiceManagedResource', - 'errorMessage' => 'The operation is not allowed because the current resource of %s is managed resource.', - ], - [ - 'errorCode' => 'OperationDenied.ListenerIdInconsistent', - 'errorMessage' => 'The operation is not allowed because of ListenerIdInconsistent.', - ], - [ - 'errorCode' => 'IllegalParam.Priority', - 'errorMessage' => 'The param of Priority is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.MirrorActionSupportHttpGroupOnly', - 'errorMessage' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.', - ], - [ - 'errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', - 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', - ], + 403 => [ + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Rule', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => '查询转发规则', + 'summary' => '查询指定地域的转发规则。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Alb::2020-06-16::ListAsynJobs', - 'callbackInterval' => 1000, - 'maxCallbackTimes' => 60, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => '批量更新转发规则属性', - 'description' => '**UpdateRulesAttribute**接口属于异步接口,即系统返回一个请求ID,但该转发规则属性尚未批量更新成功,系统后台的更新任务仍在进行。您可以调用[ListRules](~~214379~~)查询转发规则属性的更新状态:'."\n" - .'- 当多条转发规则属性处于**Configuring**状态时,表示转发规则属性正在批量更新中。'."\n" - .'- 当多条转发规则属性处于**Available**状态时,表示转发规则属性批量更新成功。'."\n" - ."\n" - .'- 一条转发规则最多支持添加的条件数(**RuleConditions**)和动作数(**RuleActions**)如下:'."\n" - .' - 条件数:基础版5条,标准版10条,WAF增强版10条。'."\n" - .' - 动作数:基础版3条,标准版5条,WAF增强版5条。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876F******\\",\\n \\"Rules\\": [\\n {\\n \\"ListenerId\\": \\"lsn-i35udpz3pxsmnf****\\",\\n \\"LoadBalancerId\\": \\"alb-x30o38azsuj0sx****\\",\\n \\"Priority\\": 1,\\n \\"RuleActions\\": [\\n {\\n \\"FixedResponseConfig\\": {\\n \\"Content\\": \\"dssacav\\",\\n \\"ContentType\\": \\"text/plain\\",\\n \\"HttpCode\\": \\"HTTP_2xx\\"\\n },\\n \\"ForwardGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"Weight\\": 2\\n }\\n ],\\n \\"ServerGroupStickySession\\": {\\n \\"Enabled\\": true,\\n \\"Timeout\\": 100\\n }\\n },\\n \\"InsertHeaderConfig\\": {\\n \\"Key\\": \\"key\\",\\n \\"Value\\": \\"ClientSrcPort\\",\\n \\"ValueType\\": \\"SystemDefined\\"\\n },\\n \\"Order\\": 1,\\n \\"RedirectConfig\\": {\\n \\"Host\\": \\"www.example.com\\",\\n \\"HttpCode\\": \\"301\\",\\n \\"Path\\": \\"/test\\",\\n \\"Port\\": \\"10\\",\\n \\"Protocol\\": \\"HTTP\\",\\n \\"Query\\": \\"quert\\"\\n },\\n \\"RemoveHeaderConfig\\": {\\n \\"Key\\": \\"key\\"\\n },\\n \\"RewriteConfig\\": {\\n \\"Host\\": \\"www.example.com\\",\\n \\"Path\\": \\"/tsdf\\",\\n \\"Query\\": \\"quedsa\\"\\n },\\n \\"TrafficMirrorConfig\\": {\\n \\"TargetType\\": \\"ForwardGroupMirror\\",\\n \\"MirrorGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-00mkgijak0w4qgz9****\\",\\n \\"Weight\\": 2\\n }\\n ]\\n }\\n },\\n \\"TrafficLimitConfig\\": {\\n \\"QPS\\": 4,\\n \\"PerIpQps\\": 80\\n },\\n \\"Type\\": \\"ForwardGroup\\",\\n \\"CorsConfig\\": {\\n \\"AllowOrigin\\": [\\n \\"http://test.com\\"\\n ],\\n \\"AllowMethods\\": [\\n \\"GET\\"\\n ],\\n \\"AllowHeaders\\": [\\n \\"test_123\\"\\n ],\\n \\"ExposeHeaders\\": [\\n \\"test_123\\"\\n ],\\n \\"AllowCredentials\\": \\"on\\",\\n \\"MaxAge\\": 1000\\n }\\n }\\n ],\\n \\"RuleConditions\\": [\\n {\\n \\"CookieConfig\\": {\\n \\"Values\\": [\\n {\\n \\"Key\\": \\"test\\",\\n \\"Value\\": \\"test\\"\\n }\\n ]\\n },\\n \\"HeaderConfig\\": {\\n \\"Key\\": \\"Port\\",\\n \\"Values\\": [\\n \\"5006\\"\\n ]\\n },\\n \\"HostConfig\\": {\\n \\"Values\\": [\\n \\"www.example.com\\"\\n ]\\n },\\n \\"MethodConfig\\": {\\n \\"Values\\": [\\n \\"PUT\\"\\n ]\\n },\\n \\"PathConfig\\": {\\n \\"Values\\": [\\n \\"/test\\"\\n ]\\n },\\n \\"QueryStringConfig\\": {\\n \\"Values\\": [\\n {\\n \\"Key\\": \\"test\\",\\n \\"Value\\": \\"test\\"\\n }\\n ]\\n },\\n \\"SourceIpConfig\\": {\\n \\"Values\\": [\\n \\"192.168.XX.XX/32\\"\\n ]\\n },\\n \\"ResponseStatusCodeConfig\\": {\\n \\"Values\\": [\\n \\"200\\"\\n ]\\n },\\n \\"ResponseHeaderConfig\\": {\\n \\"Key\\": \\"key\\",\\n \\"Values\\": [\\n \\"value\\"\\n ]\\n },\\n \\"Type\\": \\"Host\\"\\n }\\n ],\\n \\"RuleId\\": \\"rule-bpn0kn908w4nbw****\\",\\n \\"RuleName\\": \\"rule-instance-test\\",\\n \\"RuleStatus\\": \\"Available\\",\\n \\"Direction\\": \\"Request\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n 50\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n \\n lsn-i35udpz3pxsmnf****\\n alb-x30o38azsuj0sx****\\n 1\\n \\n \\n dssacav\\n text/plain\\n HTTP_2xx\\n \\n \\n \\n sg-atstuj3rtoptyui****\\n 2\\n \\n \\n \\n key\\n ClientSrcPort\\n SystemDefined\\n \\n 1\\n \\n www.example.com\\n 301\\n /test\\n 10\\n HTTP\\n quert\\n \\n \\n www.example.com\\n /tsdf\\n quedsa\\n \\n \\n \\n \\n srg-00mkgijak0w4qgz9****\\n 2\\n \\n \\n \\n \\n 4\\n 80\\n \\n ForwardGroup\\n \\n http://test.com\\n GET\\n test_123\\n test_123\\n on\\n 1000\\n \\n \\n \\n \\n \\n test\\n test\\n \\n \\n \\n Port\\n 5006\\n \\n \\n www.example.com\\n \\n \\n PUT\\n \\n \\n /test\\n \\n \\n \\n test\\n test\\n \\n \\n \\n 192.168.XX.XX/32\\n \\n Host\\n \\n rule-bpn0kn908w4nbw****\\n rule-instance-test\\n Available\\n \\n 1000\\n","errorExample":""}]', ], - 'ListRules' => [ - 'summary' => '查询指定地域的转发规则。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListSecurityPolicies' => [ + 'summary' => '查询指定地域的自定义安全策略。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14966,118 +9196,334 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREslbM7ALO6', - ], - ], + 'systemTags' => ['operationType' => 'list'], 'parameters' => [ [ - 'name' => 'NextToken', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'title' => '用来标记当前开始读取的位置,置空表示从头开始。', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - ."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - ."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['title' => '资源组ID', 'description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ 'name' => 'MaxResults', 'in' => 'query', + 'schema' => ['title' => '查询数量', 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '50', 'default' => '20'], + ], + [ + 'name' => 'SecurityPolicyNames', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '本次读取的最大数据记录数量,此参数为可选参数,取值1-100,用户传入为空时,默认为20。', - 'description' => '本次读取的最大数据记录数。'."\n" - ."\n" - .'取值:**1~100**。'."\n" - ."\n" - .'默认值:**20**,表示用户没有传入数据。'."\n" - ."\n" - .'> 此参数为可选。', - 'type' => 'integer', - 'format' => 'int32', + 'title' => '安全策略名称', + 'description' => '安全策略名称列表,最多支持10个。', + 'type' => 'array', + 'items' => ['description' => '安全策略名称,查询指定名称的安全策略。最多支持10个安全策略名称。', 'type' => 'string', 'required' => false, 'example' => 'test-secrity'], 'required' => false, - 'example' => '20', + 'maxItems' => 10, + 'minItems' => 1, ], ], [ - 'name' => 'RuleIds', + 'name' => 'SecurityPolicyIds', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '转发规则ID列表,N最大支持20', - 'description' => '转发规则列表,一次最多支持查询20个转发规则。', + 'title' => '安全策略id', + 'description' => '安全策略ID列表,最多20个。', 'type' => 'array', - 'items' => [ - 'description' => '转发规则ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rule-sada******', - ], + 'items' => ['description' => '安全策略ID,查询指定ID的安全策略。最多支持20个安全策略ID。', 'type' => 'string', 'required' => false, 'example' => 'sp-bp1bpn0kn9****'], 'required' => false, 'maxItems' => 20, 'minItems' => 1, ], ], [ - 'name' => 'ListenerIds', + 'name' => 'Tag', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '监听ID列表', - 'description' => '监听ID列表。一次最多支持查询20个监听。', + 'description' => '标签。', 'type' => 'array', 'items' => [ - 'description' => '监听ID。', - 'type' => 'string', + '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, - 'example' => 'lsn-i35udpz3pxsmnf****', ], 'required' => false, - 'maxItems' => 20, ], ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回数据结构。', + 'type' => 'object', + 'properties' => [ + 'MaxResults' => ['title' => '本次查询返回记录数量', 'description' => '分批次查询时每次显示的条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'NextToken' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'], + 'SecurityPolicies' => [ + 'title' => '安全策略', + 'description' => '支持的安全策略列表。', + 'type' => 'array', + 'items' => [ + 'description' => '安全策略数据结构。', + 'type' => 'object', + 'properties' => [ + 'Ciphers' => [ + 'title' => '加密套件', + 'description' => '支持的加密算法列表。', + 'type' => 'array', + 'items' => ['description' => '支持的加密套件,具体依赖**TLSVersions**的取值。'."\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-RSA-CHACHA20-POLY1305'."\n" + .' - ECDHE-ECDSA-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', 'example' => 'ECDHE-ECDSA-AES128-SHA'], + ], + 'ResourceGroupId' => ['title' => '资源组id', 'description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-atstuj3rtop****'], + 'SecurityPolicyId' => ['title' => '安全策略id', 'description' => '安全策略ID。', 'type' => 'string', 'example' => 'sp-9cdjz6o******'], + 'SecurityPolicyName' => ['title' => '安全策略名称', 'description' => '安全策略名称。', 'type' => 'string', 'example' => 'test-secrity'], + 'SecurityPolicyStatus' => ['title' => '状态', 'description' => '策略的状态,取值:'."\n" + ."\n" + .'- **Configuring**:配置中。'."\n" + .'- **Available**:正常可用。', 'type' => 'string', 'example' => 'Available'], + 'TLSVersions' => [ + 'title' => 'TLS策略', + 'description' => '支持的TLS协议版本列表。', + 'type' => 'array', + 'items' => ['description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。', 'type' => 'string', 'example' => 'TLSv1.1'], + ], + 'CreateTime' => ['description' => 'ACL创建时间,格式为:`YYYY-MM-DDThh:mm:ssZ`。', 'type' => 'string', 'example' => '2023-02-15T07:37:33Z'], + 'Tags' => [ + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签结构。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', 'type' => 'string', 'example' => 'env'], + 'Value' => ['description' => '标签值。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', 'type' => 'string', 'example' => 'product'], + ], + ], + ], + ], + ], + ], + 'TotalCount' => ['title' => '总记录数', 'description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbidden.SecurityPolicy', 'errorMessage' => 'Authentication has failed for SecurityPolicy.', 'description' => '对SecurityPolicy鉴权失败'], + ], + ], + 'title' => '查询自定义安全策略', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'alb:ListSecurityPolicies', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"Ciphers\\": [\\n \\"ECDHE-ECDSA-AES128-SHA\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"SecurityPolicyId\\": \\"sp-9cdjz6o******\\",\\n \\"SecurityPolicyName\\": \\"test-secrity\\",\\n \\"SecurityPolicyStatus\\": \\"Available\\",\\n \\"TLSVersions\\": [\\n \\"TLSv1.1\\"\\n ],\\n \\"CreateTime\\": \\"2023-02-15T07:37:33Z\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n 50\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n \\n ECDHE-ECDSA-AES128-SHA\\n rg-atstuj3rtop****\\n rg-atstuj3rtop****\\n test-secrity\\n Available\\n TLSv1.1\\n 2023-02-15T07:37:33Z\\n \\n 1000\\n","errorExample":""}]', + ], + 'ListSecurityPolicyRelations' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'LoadBalancerIds', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'SecurityPolicyIds', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '实例ID列表', - 'description' => '负载均衡实例ID列表。一次最多支持查询20个实例。', + 'title' => '安全策略id', + 'description' => '安全策略实例ID列表,最多支持5个。', 'type' => 'array', - 'items' => [ - 'description' => '负载均衡实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'alb-x30o38azsuj0sx****', + 'items' => ['description' => '安全策略ID。', 'type' => 'string', 'required' => false, 'example' => 'sp-n0kn923****'], + 'required' => true, + 'maxItems' => 5, + 'minItems' => 1, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回数据结构。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF******'], + 'SecrityPolicyRelations' => [ + 'title' => '安全策略关联关系', + 'description' => '安全策略与监听的关联关系列表。', + 'type' => 'array', + 'items' => [ + 'description' => '安全策略与监听的关联关系。', + 'type' => 'object', + 'properties' => [ + 'RelatedListeners' => [ + 'title' => '关联的监听列表', + 'description' => '关联的监听列表。', + 'type' => 'array', + 'items' => [ + 'description' => '关联的监听结构。', + 'type' => 'object', + 'properties' => [ + 'ListenerId' => ['title' => '监听id', 'description' => '监听ID。', 'type' => 'string', 'example' => 'lsn-0bfuc****'], + 'ListenerPort' => ['title' => '监听端口', 'description' => '监听端口。', 'type' => 'integer', 'format' => 'int64', 'example' => '80'], + 'ListenerProtocol' => ['title' => '监听协议', 'description' => '监听协议。', 'type' => 'string', 'example' => 'HTTPS'], + 'LoadBalancerId' => ['title' => '实例id', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'example' => 'alb-umwzbz6******'], + ], + ], + ], + 'SecurityPolicyId' => ['title' => '安全策略id', 'description' => '安全策略实例ID。', 'type' => 'string', 'example' => 'sp-bp1bpn0kn9****'], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '查询安全策略关联关系', + 'summary' => '查询安全策略关联的监听列表。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListSecurityPolicyRelations', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicy}'], ], - 'required' => false, - 'maxItems' => 20, ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\",\\n \\"SecrityPolicyRelations\\": [\\n {\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-0bfuc****\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTPS\\",\\n \\"LoadBalancerId\\": \\"alb-umwzbz6******\\"\\n }\\n ],\\n \\"SecurityPolicyId\\": \\"sp-bp1bpn0kn9****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n \\n \\n lsn-0bfuc****\\n 80\\n HTTPS\\n lb-bp1o94dp5i6ea****\\n \\n scp-bp1bpn0kn9****\\n \\n","errorExample":""}]', + ], + 'ListServerGroupServers' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Direction', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '167', + 'abilityTreeNodes' => ['FEATUREslbULKWF1'], + ], + 'parameters' => [ + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXG****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['title' => '查询数量', 'description' => '本次读取的最大数据记录数量。取值范围:**1**~**100**,入参为空时,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '1000', 'minimum' => '1', 'example' => '50', 'default' => '20'], + ], + [ + 'name' => 'ServerGroupId', + 'in' => 'query', + 'schema' => ['title' => '服务器组id', 'description' => '服务器组ID。', 'type' => 'string', 'required' => false, 'example' => 'sgp-cb25e2i2vr******'], + ], + [ + 'name' => 'ServerIds', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '转发规则方向', - 'description' => '转发规则的方向。取值:'."\n" - ."\n" - .'- **Request**(默认值):请求类型,对从客户端发送到ALB的报文进行条件匹配并进行相应的处理。'."\n" - ."\n" - .'- **Response**:响应类型,对从后端服务器组返回到ALB的报文进行条件匹配并进行相应的处理。'."\n" + 'description' => '服务器ID列表。', + 'type' => 'array', + 'items' => ['description' => '服务器ID。单次调用最多支持展示40个服务器。'."\n" ."\n" - .'>基础版的ALB实例不支持Response类型.', - 'type' => 'string', + .'- 当服务器组为**Instance**类型时,该参数为Ecs、Eni、Eci的资源Id。'."\n" + .'- 当服务器组为**Ip**类型时,该参数为IP地址。'."\n" + .'- 当服务器组为**Fc**时,该参数为函数计算的ARN标识。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'i-bp1e0u8f10by57wl****'], 'required' => false, - 'example' => 'Request', + 'maxItems' => 20, + 'minItems' => 1, ], ], [ @@ -15085,29 +9531,22 @@ 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'description' => '标签。', + 'description' => '服务器组绑定的标签列表。一次请求中,绑定的标签列表中最多支持10个标签。', 'type' => 'array', 'items' => [ - 'description' => '标签结构。', + 'description' => '服务器组绑定的标签列表。一次请求中,绑定的标签列表中最多支持10个标签。', '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', - ], + 'Key' => ['title' => '标签键', 'description' => '标签键。最多支持10个标签键。'."\n" + ."\n" + .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'Test'], + 'Value' => ['title' => '标签值', 'description' => '标签值。最多支持10个标签值。'."\n" + ."\n" + .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'Test'], ], 'required' => false, ], 'required' => false, - 'maxItems' => 20, ], ], ], @@ -15115,1115 +9554,76 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '转发规则。', + 'description' => '返回数据结构体。', 'type' => 'object', 'properties' => [ - 'MaxResults' => [ - 'title' => '本次请求所返回的最大记录条数。', - 'description' => '本次请求所返回的最大记录条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'NextToken' => [ - 'title' => '用来表示当前调用返回读取到的位置,空代表数据已经读取完毕。', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876F******', - ], - 'Rules' => [ - 'title' => '转发规则列表', - 'description' => '转发规则列表。', + 'MaxResults' => ['title' => '本次查询返回记录数量', 'description' => '本次请求所返回的最大记录条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'NextToken' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'caeba0bbb2be03f8****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF*****'], + 'Servers' => [ + 'title' => '后端服务器', + 'description' => '服务器列表。', 'type' => 'array', 'items' => [ - 'description' => '转发规则结构。', + 'description' => '后端服务器描述结构体。', 'type' => 'object', 'properties' => [ - 'ListenerId' => [ - 'title' => '监听ID', - 'description' => '转发规则所属监听ID。', - 'type' => 'string', - 'example' => 'lsn-i35udpz3pxsmnf****', - ], - 'LoadBalancerId' => [ - 'title' => '实例ID', - 'description' => '转发规则所属负载均衡实例ID。', - 'type' => 'string', - 'example' => 'alb-x30o38azsuj0sx****', - ], - 'Priority' => [ - 'title' => '转发规则优先级', - 'description' => '规则优先级,取值为**1~10000**。值越小表示优先级越高。'."\n" - ."\n" - .'> 同一个监听内规则优先级必须唯一。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RuleActions' => [ - 'title' => '转发规则动作', - 'description' => '转发规则动作列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发规则动作结构。', - 'type' => 'object', - 'properties' => [ - 'FixedResponseConfig' => [ - 'title' => '返回固定内容动作配置', - 'description' => '固定响应内容配置。', - 'type' => 'object', - 'properties' => [ - 'Content' => [ - 'title' => '内容', - 'description' => '返回的固定内容。最大1 KB字节,只支持ASCII字符。', - 'type' => 'string', - 'example' => 'dssacav', - ], - 'ContentType' => [ - 'title' => '内容类型', - 'description' => '返回固定内容的格式。'."\n" - ."\n" - .'取值:**text/plain**、**text/css**、**text/html**、**application/javascript**或**application/json**。', - 'type' => 'string', - 'example' => 'text/plain', - ], - 'HttpCode' => [ - 'title' => 'HTTP响应码', - 'description' => '返回的HTTP响应码,仅支持**HTTP_2xx**、**HTTP_4xx**、**HTTP_5xx**数字型字符串,**x**为任意数字。', - 'type' => 'string', - 'example' => 'HTTP_2xx', - ], - ], - ], - 'ForwardGroupConfig' => [ - 'title' => '转发组动作配置', - 'description' => '转发组配置。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupTuples' => [ - 'title' => '转发到的目的服务器组列表', - 'description' => '转发到的目的服务器组列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发到的目的服务器组列表。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupId' => [ - 'title' => '服务器组标识', - 'description' => '转发到的目的服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'Weight' => [ - 'title' => '当ServerGroupTuple.N数量大于1时,可配置每个服务器组的权重', - 'description' => '权重。取值范围:**0**~**100**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - ], - ], - ], - 'ServerGroupStickySession' => [ - 'title' => '服务器组间会话保持配置', - 'description' => '服务器组间会话保持配置', - 'type' => 'object', - 'properties' => [ - 'Enabled' => [ - 'title' => '当ServerGroupTuple.N数量大于1时,可选是否开启在服务器组间的会话保持', - 'description' => '当ServerGroupTuple.N数量大于1时,可选是否开启在服务器组间的会话保持', - 'type' => 'boolean', - ], - 'Timeout' => [ - 'title' => '当Enabled=True时,可以配置会话保持的超时时间', - 'description' => '当Enabled=True时,可以配置会话保持的超时时间', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - ], - ], - ], - ], - 'InsertHeaderConfig' => [ - 'title' => '插入头部动作配置', - 'description' => '写入头字段配置。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头', - 'description' => '插入的头字段名称,长度为1\\~40个字符,支持大小写字母a\\~z、数字、下划线(_)和短划线(-)。头字段名称不能重复用于`InsertHeader`中。'."\n" - ."\n" - .'> 不允许用户在头字段名称中使用**Cookie**和**Host**。', - 'type' => 'string', - 'example' => 'key', - ], - 'Value' => [ - 'title' => 'HTTP标头内容', - 'description' => '插入的头字段内容。'."\n" - ."\n" - .'- **ValueType**取值为**SystemDefined**时取值如下:'."\n" - .' - **ClientSrcPort**:客户端端口。'."\n" - .' - **ClientSrcIp**:客户端IP地址。'."\n" - .' - **Protocol**:客户端请求的协议(HTTP或HTTPS)。'."\n" - .' - **SLBId**:应用型负载均衡实例ID。'."\n" - .' - **SLBPort**:应用型负载均衡实例监听端口。'."\n" - .'- **ValueType**取值为**UserDefined**时:您可自定义头字段内容,限制长度为1\\~128个字符,支持通配符星号(*)、半角问号(?)和ASCII码值`ch >= 32 && ch < 127`范围内的可打印字符,开头和结尾不能为空格。'."\n" - .'- **ValueType**取值为**ReferenceHeader**时:您可以引用请求头字段中的某一个字段,限制长度限制为1\\~128个字符,支持小写字母a\\~z、数字、短划线(-)和下划线(_)。', - 'type' => 'string', - 'example' => 'ClientSrcPort', - ], - 'ValueType' => [ - 'title' => '取值类型', - 'description' => '头字段内容类型。取值:'."\n" - ."\n" - .'- **UserDefined**:用户指定。'."\n" - ."\n" - .'- **ReferenceHeader**:引用用户请求头中的某一个字段。'."\n" - ."\n" - .'- **SystemDefined**:系统定义。', - 'type' => 'string', - 'example' => 'SystemDefined', - ], - ], - ], - 'Order' => [ - 'title' => '优先级', - 'description' => '转发规则动作执行的顺序,取值为**1~50000**,按值从小到大执行动作。值不能为空,不能重复。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RedirectConfig' => [ - 'title' => '重定向动作配置', - 'description' => '重定向配置。', - 'type' => 'object', - 'properties' => [ - 'Host' => [ - 'title' => '要跳转的主机地址', - 'description' => '要跳转的主机地址。取值:'."\n" - .'- **${host}**(默认值):取此值时不支持和其他字符拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)和半角问号(?)。'."\n" - .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" - .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。'."\n" - .' - 短划线(-)不能出现在其它域标签的开头或结尾。'."\n" - .' - 通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', - 'type' => 'string', - 'example' => 'www.example.com', - ], - 'HttpCode' => [ - 'title' => '跳转方式', - 'description' => '跳转方式,取值为**301**、**302**、**303**、**307**或**308**。', - 'type' => 'string', - 'example' => '301', - ], - 'Path' => [ - 'title' => '要跳转的路径', - 'description' => '要跳转的路径。取值:'."\n" - .'- **${path}**(默认值):可以引用**${host}**、**${protocol}**和**${port}**,由**${host}**、**${protocol}**和**${port}**组成,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 长度为1~128个字符。'."\n" - .' - 必须以正斜线(/)开头,支持字母、数字和特殊字符`$-_.+/&~@:`,不支持`“%#;!()[]^,” `,同时支持通配符星号(*)和半角问号(?)。', - 'type' => 'string', - 'example' => '/test', - ], - 'Port' => [ - 'title' => '要跳转的端口', - 'description' => '要跳转的端口。取值:'."\n" - .'- **${port}**(默认值):该取值不支持和其他字符同时使用。'."\n" - .'- 其他取值:**1~63335**。', - 'type' => 'string', - 'example' => '10', - ], - 'Protocol' => [ - 'title' => '要跳转的协议', - 'description' => '要跳转的协议。取值:'."\n" - .'- **${protocol}**(默认值):取该值时不支持和其他字符拼接使用。'."\n" - .'- **HTTP**或**HTTPS**。'."\n" - ."\n" - .' '."\n" - .'> HTTPS监听仅支持跳转HTTPS协议。', - 'type' => 'string', - 'example' => 'HTTP', - ], - 'Query' => [ - 'title' => '要跳转的查询字符串', - 'description' => '要跳转的查询字符串。长度为1~128个字符,支持小写字母和可见字符,不支持 `#[]{}\\|<>&`。'."\n", - 'type' => 'string', - 'example' => 'quert', - ], - ], - ], - 'RemoveHeaderConfig' => [ - 'title' => '去除HTTP标头', - 'description' => '去除HTTP头部配置。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头', - 'description' => '去除的头字段名称,长度为1\\~40个字符,支持大小写字母a~z、数字、下划线(_)和短划线(-)。头字段名称不能重复用于RemoveHeader中。'."\n" - ."\n" - .'* 请求方向(Direction取值为Request):不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`。'."\n" - .'* 响应方向(Direction取值为Response):响应方向不允许将头名称设置为以下字段(不区分大小写):`connection`、`upgrade`、`content-length`、`transfer-encoding`。', - 'type' => 'string', - 'example' => 'key', - ], - ], - ], - 'RewriteConfig' => [ - 'title' => '内部重定向动作配置', - 'description' => '重写配置。', - 'type' => 'object', - 'properties' => [ - 'Host' => [ - 'title' => '主机名', - 'description' => '要跳转的主机地址。取值:'."\n" - .'- **${host}**(默认值):取此值时不支持和其他字符拼接使用。'."\n" - .'- 其他取值,字符集和格式限制如下:'."\n" - .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)和半角问号(?)。'."\n" - .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" - .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。'."\n" - .' - 短划线(-)不能出现在其它域标签的开头或结尾。'."\n" - .' - 通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', - 'type' => 'string', - 'example' => 'www.example.com', - ], - 'Path' => [ - 'title' => '路径', - 'description' => '内部跳转的目的路径。长度为1~128个字符,以正斜线(/)开头,支持字母、数字、星号(*)、半角问号(?)和`$-_.+/&~@:`,不支持`“%#;!()[]^,” `。', - 'type' => 'string', - 'example' => '/tsdf', - ], - 'Query' => [ - 'title' => '查询', - 'description' => '内部跳转的查询字符串。长度为1~128个字符,支持小写字母和可见字符,不支持 `#[]{}\\|<>&`。'."\n" - ."\n", - 'type' => 'string', - 'example' => 'quedsa', - ], - ], - ], - 'TrafficMirrorConfig' => [ - 'title' => '流量镜像Action对应的配置,type为TrafficMirror时必填且有效', - 'description' => '流量镜像。', - 'type' => 'object', - 'properties' => [ - 'TargetType' => [ - 'title' => '流量镜像的目的,可以是服务器组', - 'description' => '流量镜像的目的,可以是服务器组', - 'type' => 'string', - 'example' => 'ForwardGroupMirror', - ], - 'MirrorGroupConfig' => [ - 'title' => 'TargetType为服务器组时必选,目标服务器组', - 'description' => '流量镜像至服务器组。', - 'type' => 'object', - 'properties' => [ - 'ServerGroupTuples' => [ - 'description' => '流量镜像至服务器组。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ServerGroupId' => [ - 'description' => '服务器组ID。', - 'type' => 'string', - 'example' => 'sgp-00mkgijak0w4qgz9****', - ], - 'Weight' => [ - 'description' => '权重。取值范围:**0**~**100**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - ], - ], - ], - ], - ], - ], - ], - 'TrafficLimitConfig' => [ - 'description' => '流量限速。', - 'type' => 'object', - 'properties' => [ - 'QPS' => [ - 'description' => '每秒请求次数。取值范围:**1**~**100000**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'PerIpQps' => [ - 'description' => '单IP每秒请求次数。 取值范围:**1 ~ 100000**。'."\n" - ."\n" - .'> 如果同时配置**QPS**参数,**PerIpQps**参数的取值必须小于**QPS**参数的取值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - ], - ], - 'Type' => [ - 'title' => '转发规则动作类型', - 'description' => '动作类型。取值:'."\n" - ."\n" - .'- **ForwardGroup**:转发至多个虚拟服务器组。'."\n" - ."\n" - .'- **Redirect**:重定向。'."\n" - ."\n" - .'- **FixedResponse**:返回固定内容。'."\n" - ."\n" - .'- **Rewrite**:重写。'."\n" - ."\n" - .'- **InsertHeader**:写入头字段。'."\n" - ."\n" - .'- **RemoveHeaderConfig**:删除头字段。'."\n" - ."\n" - .'- **TrafficLimitConfig**:流量限速。'."\n" - ."\n" - .'- **TrafficMirrorConfig**:流量镜像。'."\n" - ."\n" - .'- **CorsConfig**:跨域。', - 'type' => 'string', - 'example' => 'ForwardGroup', - ], - 'CorsConfig' => [ - 'title' => '跨域', - 'description' => '跨域。', - 'type' => 'object', - 'properties' => [ - 'AllowOrigin' => [ - 'title' => '允许的访问来源', - 'description' => '允许的访问来源。', - 'type' => 'array', - 'items' => [ - 'description' => '允许访问的来源。支持配置为`*`或配置为一个或多个value值。value的值不能为`*`。'."\n" - ."\n" - .'- 单个value值必须以`http://`或者`https://`开头,后面加一个正确的域名或者一级的泛域名(例如,`*.test.abc.example.com`)。'."\n" - .'- 单个value值可以不加端口,也可以指定端口,端口范围:**1**~**65535**。', - 'type' => 'string', - 'example' => 'http://test.com', - ], - ], - 'AllowMethods' => [ - 'title' => '选择跨域访问时允许的HTTP方法', - 'description' => '选择跨域访问时允许的HTTP方法。', - 'type' => 'array', - 'items' => [ - 'description' => '选择跨域访问时允许的HTTP方法。取值:'."\n" - .'- **GET**。'."\n" - .'- **POST**。'."\n" - .'- **PUT**。'."\n" - .'- **DELETE**。'."\n" - .'- **HEAD**。'."\n" - .'- **OPTIONS**。'."\n" - .'- **PATCH**。', - 'type' => 'string', - 'example' => 'GET', - ], - ], - 'AllowHeaders' => [ - 'title' => '允许跨域的Header列表', - 'description' => '允许跨域的Header列表。', - 'type' => 'array', - 'items' => [ - 'description' => '允许跨域的Header列表。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', - 'type' => 'string', - 'example' => 'test_123', - ], - ], - 'ExposeHeaders' => [ - 'title' => '允许暴露的Header列表', - 'description' => '允许暴露的Header列表。', - 'type' => 'array', - 'items' => [ - 'description' => '允许跨域的Header列表。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', - 'type' => 'string', - 'example' => 'test_123', - ], - ], - 'AllowCredentials' => [ - 'title' => '是否允许携带凭证信息', - 'description' => '是否允许携带凭证信息。取值:'."\n" - ."\n" - .'- **on**:是。'."\n" - .'- **off**:否。', - 'type' => 'string', - 'example' => 'on', - ], - 'MaxAge' => [ - 'title' => '预检请求在浏览器的最大缓存时间', - 'description' => '预检请求在浏览器的最大缓存时间,单位:秒。'."\n" - ."\n" - .'取值范围:**-1**~**172800**。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - ], - ], - ], - ], - ], - 'RuleConditions' => [ - 'title' => '转发规则条件', - 'description' => '转发规则条件列表。', - 'type' => 'array', - 'items' => [ - 'description' => '转发规则条件结构。', - 'type' => 'object', - 'properties' => [ - 'CookieConfig' => [ - 'title' => 'Cookie条件配置', - 'description' => 'Cookie配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => 'Cookie键值对列表', - 'description' => 'Cookie值。', - 'type' => 'array', - 'items' => [ - 'description' => 'Cookie值。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'Cookie条件键', - 'description' => 'Cookie键。长度为1~100个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&`。', - 'type' => 'string', - 'example' => 'test', - ], - 'Value' => [ - 'title' => 'Cookie条件值', - 'description' => 'Cookie值。长度为1~128个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&`。', - 'type' => 'string', - 'example' => 'test', - ], - ], - ], - ], - ], - ], - 'HeaderConfig' => [ - 'title' => 'HTTP标头条件配置', - 'description' => '头字段配置。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => 'HTTP标头键', - 'description' => '头字段键。长度为1\\~40个字符。支持字母a\\~z、数字、短划线(-)和下划线(_)。不支持Cookie和Host。', - 'type' => 'string', - 'example' => 'Port', - ], - 'Values' => [ - 'title' => 'HTTP标头值列表', - 'description' => '头字段值。', - 'type' => 'array', - 'items' => [ - 'description' => '头字段值。长度为1\\~128个字符。支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、小写字母、星号(*)和半角问号(?)。开头和结尾不能为空格。', - 'type' => 'string', - 'example' => '5006', - ], - ], - ], - ], - 'HostConfig' => [ - 'title' => '主机名条件配置', - 'description' => '主机配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '主机名列表', - 'description' => '主机名。', - 'type' => 'array', - 'items' => [ - 'description' => '主机名。命名规则:'."\n" - ."\n" - .'- 域名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)、星号(*)和半角问号(?)。'."\n" - ."\n" - .'- 域名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" - ."\n" - .'- 最右侧的域标签只能包含字母、星号(*)和半角问号(?),不能包含数字或短划线(-)。'."\n" - ."\n" - .'- 短划线(-)不能出现在其它域标签的开头或结尾。星号(*)和半角问号(?)可以出现在域标签的任意位置。', - 'type' => 'string', - 'example' => 'www.example.com', - ], - ], - ], - ], - 'MethodConfig' => [ - 'title' => 'HTTP请求方法条件配置', - 'description' => '请求方法配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => 'HTTP请求方法列表', - 'description' => '请求方法。', - 'type' => 'array', - 'items' => [ - 'description' => '请求方法。'."\n" - ."\n" - .'取值:**HEAD**、**GET**、**POST**、**OPTIONS**、**PUT**、**PATCH**或**DELETE**。', - 'type' => 'string', - 'example' => 'PUT', - ], - ], - ], - ], - 'PathConfig' => [ - 'title' => '路径条件配置', - 'description' => '转发路径配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '路径条件列表', - 'description' => '转发路径。', - 'type' => 'array', - 'items' => [ - 'description' => '转发路径。长度为1~128个字符,以正斜线(/)开头,支持字母、数字、星号(*)、半角问号(?)和`$-_.+/&~@:`,不支持`“%#;!()[]^,” `。', - 'type' => 'string', - 'example' => '/test', - ], - ], - ], - ], - 'QueryStringConfig' => [ - 'title' => '查询字符串条件配置', - 'description' => '查询字符串配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '查询字符串条件键值对列表', - 'description' => '查询字符串。', - 'type' => 'array', - 'items' => [ - 'description' => '查询字符串。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '查询字符串条件键', - 'description' => '查询字符串键。长度为1~100个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&`。', - 'type' => 'string', - 'example' => 'test', - ], - 'Value' => [ - 'title' => '查询字符串条件值', - 'description' => '查询字符串值。长度为1~128个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&`。', - 'type' => 'string', - 'example' => 'test', - ], - ], - ], - ], - ], - ], - 'SourceIpConfig' => [ - 'title' => '源IP业务流量匹配', - 'description' => '基于源IP业务流量匹配。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '需要匹配的源IP列表', - 'description' => '需要匹配的源IP列表。', - 'type' => 'array', - 'items' => [ - 'description' => '添加一个或多个IP地址或者IP地址段。'."\n" - ."\n" - .'一条转发规则中最多支持添加5条源IP。', - 'type' => 'string', - 'example' => '192.168.XX.XX/32', - ], - ], - ], - ], - 'ResponseStatusCodeConfig' => [ - 'title' => '返回状态码条件', - 'description' => '响应状态码配置。', - 'type' => 'object', - 'properties' => [ - 'Values' => [ - 'title' => '返回状态码条件列表', - 'description' => '响应状态码列表。', - 'type' => 'array', - 'items' => [ - 'description' => '响应状态码。', - 'type' => 'string', - 'example' => '200', - ], - ], - ], - ], - 'ResponseHeaderConfig' => [ - 'title' => '返回HTTP标头', - 'description' => '响应HTTP头部配置。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '返回HTTP标头键', - 'description' => '响应HTTP头部键。长度为1\\~40个字符。支持字母a~z、数字、短划线(-)和下划线(_)。不支持Cookie和Host。', - 'type' => 'string', - 'example' => 'key', - ], - 'Values' => [ - 'title' => '返回HTTP标头值', - 'description' => '响应HTTP头部值列表。', - 'type' => 'array', - 'items' => [ - 'description' => '响应HTTP头部值。长度为1~128个字符。', - 'type' => 'string', - 'example' => 'value', - ], - ], - ], - ], - 'Type' => [ - 'title' => '条件类型', - 'description' => '转发规则类型。取值:'."\n" - ."\n" - .'- **Host**:主机。'."\n" - ."\n" - .'- **Path**:路径。'."\n" - ."\n" - .'- **Header**:HTTP头字段。'."\n" - ."\n" - .'- **QueryString**:查询字符串。'."\n" - ."\n" - .'- **Method**:请求方法。'."\n" - ."\n" - .'- **Cookie**:Cookie。'."\n" - ."\n" - .'- **SourceIp**:源IP。', - 'type' => 'string', - 'example' => 'Host', - ], - ], - 'required' => true, - ], - ], - 'RuleId' => [ - 'title' => '转发规则标识', - 'description' => '转发规则ID。', - 'type' => 'string', - 'example' => 'rule-bpn0kn908w4nbw****', - ], - 'RuleName' => [ - 'title' => '转发规则名称', - 'description' => '转发规则名称。 长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字,半角句号(.),下划线(_)和短划线(-)。', - 'type' => 'string', - 'example' => 'rule-instance-test', - ], - 'RuleStatus' => [ - 'title' => '转发规则状态', - 'description' => '转发规则状态。取值:'."\n" - ."\n" - .'- **Provisioning**:创建中。'."\n" - ."\n" - .'- **Configuring**:变配中。'."\n" - ."\n" - .'- **Available**:运行中。', - 'type' => 'string', - 'example' => 'Available', - ], - 'Direction' => [ - 'title' => '转发规则方向', - 'description' => '转发规则的方向。取值:'."\n" - ."\n" - .'* Request(默认值):请求类型,对从客户端发送到ALB的报文进行条件匹配并进行相应的处理。'."\n" - ."\n" - .'* Response:响应类型,对从后端服务器组返回到ALB的报文进行条件匹配并进行相应的处理。'."\n" - ."\n" - .'> 基础版的ALB实例不支持Response类型。', - 'type' => 'string', - 'example' => 'Request', - ], - 'Tags' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签结构。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', - 'type' => 'string', - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', - 'type' => 'string', - 'example' => 'product', - ], - ], - ], - ], - ], - ], - ], - 'TotalCount' => [ - 'title' => '本次请求条件下的数据总量。', - 'description' => '本次请求条件下返回的总数据记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876F******\\",\\n \\"Rules\\": [\\n {\\n \\"ListenerId\\": \\"lsn-i35udpz3pxsmnf****\\",\\n \\"LoadBalancerId\\": \\"alb-x30o38azsuj0sx****\\",\\n \\"Priority\\": 1,\\n \\"RuleActions\\": [\\n {\\n \\"FixedResponseConfig\\": {\\n \\"Content\\": \\"dssacav\\",\\n \\"ContentType\\": \\"text/plain\\",\\n \\"HttpCode\\": \\"HTTP_2xx\\"\\n },\\n \\"ForwardGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"Weight\\": 2\\n }\\n ],\\n \\"ServerGroupStickySession\\": {\\n \\"Enabled\\": true,\\n \\"Timeout\\": 100\\n }\\n },\\n \\"InsertHeaderConfig\\": {\\n \\"Key\\": \\"key\\",\\n \\"Value\\": \\"ClientSrcPort\\",\\n \\"ValueType\\": \\"SystemDefined\\"\\n },\\n \\"Order\\": 1,\\n \\"RedirectConfig\\": {\\n \\"Host\\": \\"www.example.com\\",\\n \\"HttpCode\\": \\"301\\",\\n \\"Path\\": \\"/test\\",\\n \\"Port\\": \\"10\\",\\n \\"Protocol\\": \\"HTTP\\",\\n \\"Query\\": \\"quert\\"\\n },\\n \\"RemoveHeaderConfig\\": {\\n \\"Key\\": \\"key\\"\\n },\\n \\"RewriteConfig\\": {\\n \\"Host\\": \\"www.example.com\\",\\n \\"Path\\": \\"/tsdf\\",\\n \\"Query\\": \\"quedsa\\"\\n },\\n \\"TrafficMirrorConfig\\": {\\n \\"TargetType\\": \\"ForwardGroupMirror\\",\\n \\"MirrorGroupConfig\\": {\\n \\"ServerGroupTuples\\": [\\n {\\n \\"ServerGroupId\\": \\"sgp-00mkgijak0w4qgz9****\\",\\n \\"Weight\\": 2\\n }\\n ]\\n }\\n },\\n \\"TrafficLimitConfig\\": {\\n \\"QPS\\": 4,\\n \\"PerIpQps\\": 80\\n },\\n \\"Type\\": \\"ForwardGroup\\",\\n \\"CorsConfig\\": {\\n \\"AllowOrigin\\": [\\n \\"http://test.com\\"\\n ],\\n \\"AllowMethods\\": [\\n \\"GET\\"\\n ],\\n \\"AllowHeaders\\": [\\n \\"test_123\\"\\n ],\\n \\"ExposeHeaders\\": [\\n \\"test_123\\"\\n ],\\n \\"AllowCredentials\\": \\"on\\",\\n \\"MaxAge\\": 1000\\n }\\n }\\n ],\\n \\"RuleConditions\\": [\\n {\\n \\"CookieConfig\\": {\\n \\"Values\\": [\\n {\\n \\"Key\\": \\"test\\",\\n \\"Value\\": \\"test\\"\\n }\\n ]\\n },\\n \\"HeaderConfig\\": {\\n \\"Key\\": \\"Port\\",\\n \\"Values\\": [\\n \\"5006\\"\\n ]\\n },\\n \\"HostConfig\\": {\\n \\"Values\\": [\\n \\"www.example.com\\"\\n ]\\n },\\n \\"MethodConfig\\": {\\n \\"Values\\": [\\n \\"PUT\\"\\n ]\\n },\\n \\"PathConfig\\": {\\n \\"Values\\": [\\n \\"/test\\"\\n ]\\n },\\n \\"QueryStringConfig\\": {\\n \\"Values\\": [\\n {\\n \\"Key\\": \\"test\\",\\n \\"Value\\": \\"test\\"\\n }\\n ]\\n },\\n \\"SourceIpConfig\\": {\\n \\"Values\\": [\\n \\"192.168.XX.XX/32\\"\\n ]\\n },\\n \\"ResponseStatusCodeConfig\\": {\\n \\"Values\\": [\\n \\"200\\"\\n ]\\n },\\n \\"ResponseHeaderConfig\\": {\\n \\"Key\\": \\"key\\",\\n \\"Values\\": [\\n \\"value\\"\\n ]\\n },\\n \\"Type\\": \\"Host\\"\\n }\\n ],\\n \\"RuleId\\": \\"rule-bpn0kn908w4nbw****\\",\\n \\"RuleName\\": \\"rule-instance-test\\",\\n \\"RuleStatus\\": \\"Available\\",\\n \\"Direction\\": \\"Request\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n 50\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n \\n lsn-i35udpz3pxsmnf****\\n alb-x30o38azsuj0sx****\\n 1\\n \\n \\n dssacav\\n text/plain\\n HTTP_2xx\\n \\n \\n \\n sg-atstuj3rtoptyui****\\n 2\\n \\n \\n \\n key\\n ClientSrcPort\\n SystemDefined\\n \\n 1\\n \\n www.example.com\\n 301\\n /test\\n 10\\n HTTP\\n quert\\n \\n \\n www.example.com\\n /tsdf\\n quedsa\\n \\n \\n \\n \\n srg-00mkgijak0w4qgz9****\\n 2\\n \\n \\n \\n \\n 4\\n 80\\n \\n ForwardGroup\\n \\n http://test.com\\n GET\\n test_123\\n test_123\\n on\\n 1000\\n \\n \\n \\n \\n \\n test\\n test\\n \\n \\n \\n Port\\n 5006\\n \\n \\n www.example.com\\n \\n \\n PUT\\n \\n \\n /test\\n \\n \\n \\n test\\n test\\n \\n \\n \\n 192.168.XX.XX/32\\n \\n Host\\n \\n rule-bpn0kn908w4nbw****\\n rule-instance-test\\n Available\\n \\n 1000\\n","errorExample":""}]', - 'title' => '查询转发规则', - ], - 'AssociateAdditionalCertificatesWithListener' => [ - 'summary' => '将扩展证书关联到监听。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [ - [ - 'name' => 'ListenerId', - 'in' => 'query', - 'schema' => [ - 'title' => '监听Id', - 'description' => '监听ID。'."\n" - ."\n" - .'HTTPS和QUIC监听有效。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-5qnirjhpt******', - ], - ], - [ - 'name' => 'Certificates', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '证书列表', - 'description' => '扩展证书列表。', - 'type' => 'array', - 'items' => [ - 'description' => '扩展证书列表。', - 'type' => 'object', - 'properties' => [ - 'CertificateId' => [ - 'title' => '证书Id', - 'description' => '证书ID,当前仅支持服务器证书。', - 'type' => 'string', - 'required' => true, - 'example' => '103705******', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 15, - 'minItems' => 1, - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等Token', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3F******', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => 'dryRun', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会为HTTPS和QUIC监听添加扩展证书。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false(默认值)**:发送正常请求,通过检查后返回HTTP `2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '为HTTPS或QUIC监听添加扩展证书。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.DefaultCertificateUsed', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationFailed.DefaultCertificateNotFound', - 'errorMessage' => 'The operation failed because of %s.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.Certificate', - 'errorMessage' => 'The specified resource %s is already associated.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerCertificatesNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'OperationDenied.HttpListenerNotSupport', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Invalid parameter, please check the parameter input.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.Listener', - 'errorMessage' => 'The specified resource %s is configuring, please try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication has failed for LoadBalancer.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.Certificate', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '关联扩展证书和监听', - 'description' => '**AssociateAdditionalCertificatesWithListener**接口属于异步接口,即系统返回一个请求ID,但该扩展证书尚未添加成功,系统后台的添加任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询扩展证书的添加状态:'."\n" - .' - 当HTTPS和QUIC监听处于**Associating**状态时,表示扩展证书正在添加中。'."\n" - .' - 当HTTPS和QUIC监听处于**Associated**状态时,表示扩展证书添加成功。', - ], - 'DissociateAdditionalCertificatesFromListener' => [ - 'summary' => '将扩展证书与监听解除关联。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'ListenerId', - 'in' => 'query', - 'schema' => [ - 'title' => '监听Id', - 'description' => '监听ID。HTTPS和QUIC监听有效。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-5qnirjhpt7******', - ], - ], - [ - 'name' => 'Certificates', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '证书列表', - 'description' => '扩展证书列表。当前仅支持服务器证书。最多支持20个证书。', - 'type' => 'array', - 'items' => [ - 'description' => '扩展证书。', - 'type' => 'object', - 'properties' => [ - 'CertificateId' => [ - 'title' => '证书Id', - 'description' => '证书ID。', - 'type' => 'string', - 'required' => true, - 'example' => '103705******', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 15, - 'minItems' => 1, - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等Token', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => 'dryRun', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会从HTTPS和QUIC监听移除扩展证书。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回**HTTP 2xx**状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '从HTTPS和QUIC监听移除扩展证书。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B******', + 'Description' => ['title' => '描述信息', 'description' => '后端服务器描述。', 'type' => 'string', 'example' => 'test'], + 'Port' => ['title' => '端口', 'description' => '后端服务器使用的端口。取值范围:**1**~**65535**。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'ServerId' => ['title' => '服务器id', 'description' => '后端服务器ID。'."\n" + ."\n" + .'>当**ServerType**为**Fc**时,**ServerId**为函数计算的ARN标识。', 'type' => 'string', 'example' => 'i-bp1f9kdprbgy9uiu****'], + 'ServerIp' => ['title' => '服务器ip', 'description' => '指定的IP地址。', 'type' => 'string', 'example' => '192.168.XX.XX'], + 'ServerType' => ['title' => '后端服务器类型', 'description' => '后端服务器类型。', 'type' => 'string', 'example' => 'Ecs'], + 'Status' => ['title' => '状态', 'description' => '后端服务器的添加状态。取值:'."\n" + ."\n" + .'- **Adding**:添加中。'."\n" + .'- **Available**:正常可用状态。'."\n" + .'- **Configuring**:配置中。'."\n" + .'- **Removing**:移除中。', 'type' => 'string', 'example' => 'Available'], + 'Weight' => ['title' => '权重', 'description' => '后端服务器的权重。权重越高的服务器将被分配到更多的访问请求。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'ServerGroupId' => ['title' => '服务器组id', 'description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-qy042e1jabmprh****'], + 'RemoteIpEnabled' => ['title' => '是否是远端ip', 'description' => '是否开启远端IP。取值:'."\n" + .' '."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + ], + ], ], + 'TotalCount' => ['title' => '总记录数', 'description' => '本次请求条件下的数据总量。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.HttpListenerNotSupport', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.DefaultCertificateUsed', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceNotAssociated.Certificate', - 'errorMessage' => 'The specified resource %s is not associated.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.Listener', - 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', - ], + 403 => [ + ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication has failed for ServerGroup.', 'description' => '对ServerGroup鉴权失败'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => '查询服务器', + 'summary' => '查询服务器组中的服务器。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListServerGroupServers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '解除监听和扩展证书关联', - 'description' => '**DissociateAdditionalCertificatesFromListener**接口属于异步接口,即系统返回一个请求ID,但该扩展证书尚未解绑成功,系统后台的解绑任务仍在进行。您可以调用[ListListenerCertificates](~~214354~~)查询扩展证书的解绑状态:'."\n" - ."\n" - .'- 当扩展证书状态处于**Dissociating**状态时,表示扩展证书正在解绑中。'."\n" - ."\n" - .'- 当扩展证书状态处于**Dissociated**状态时,表示扩展证书解绑成功。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"caeba0bbb2be03f8****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF*****\\",\\n \\"Servers\\": [\\n {\\n \\"Description\\": \\"test\\",\\n \\"Port\\": 80,\\n \\"ServerId\\": \\"i-bp1f9kdprbgy9uiu****\\",\\n \\"ServerIp\\": \\"192.168.XX.XX\\",\\n \\"ServerType\\": \\"Ecs\\",\\n \\"Status\\": \\"Available\\",\\n \\"Weight\\": 100,\\n \\"ServerGroupId\\": \\"sgp-qy042e1jabmprh****\\",\\n \\"RemoteIpEnabled\\": true\\n }\\n ],\\n \\"TotalCount\\": 3\\n}","errorExample":""},{"type":"xml","example":"\\n 50\\n caeba0bbb2be03f8****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n \\n test\\n 80\\n i-bp1f9kdprbgy9uiu****\\n 192.168.XX.XX\\n Ecs\\n Available\\n 100\\n sgp-qy042e1jabmprh****\\n true\\n \\n 3\\n","errorExample":""}]', ], - 'ListListenerCertificates' => [ - 'summary' => '查询指定监听关联的证书,包含扩展证书和默认证书。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListServerGroups' => [ + 'summary' => '查询服务器组列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -16233,406 +9633,97 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '166', + 'abilityTreeNodes' => ['FEATUREslbULKWF1', 'FEATUREslbVRSQEA'], ], 'parameters' => [ [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'title' => '查询数量', - 'description' => '本次读取的最大数据记录。取值范围:**1~100**。入参为空时,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '50', - 'default' => '20', - ], - ], - [ - 'name' => 'ListenerId', - 'in' => 'query', - 'schema' => [ - 'title' => '监听Id', - 'description' => '监听ID。HTTPS和QUIC监听有效。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-5qnirjhpt******', - ], - ], - [ - 'name' => 'CertificateType', - 'in' => 'query', - 'schema' => [ - 'title' => '证书类型', - 'description' => '证书类型。取值:**Ca**或**Server**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Server', - ], - ], - [ - 'name' => 'CertificateIds', + 'name' => 'ServerGroupIds', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '证书id列表', - 'description' => '证书ID列表', + 'title' => '服务器组Id列表', + 'description' => '服务器组ID列表。', 'type' => 'array', - 'items' => [ - 'description' => '证书ID', - 'type' => 'string', - 'required' => false, - 'example' => '1416****-cn-hangzhou', - ], + 'items' => ['description' => '服务器组ID,一次最多支持查询20个服务器组ID。', 'type' => 'string', 'required' => false, 'example' => 'sgp-atstuj3rtop****'], 'required' => false, 'maxItems' => 20, - 'minItems' => 1, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '监听证书结构。', - 'type' => 'object', - 'properties' => [ - 'MaxResults' => [ - 'title' => '本次查询返回记录数量', - 'description' => '本次请求所返回的最大记录条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'NextToken' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], - 'TotalCount' => [ - 'title' => '总记录数', - 'description' => '本次请求条件下的数据总量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'Certificates' => [ - 'title' => '监听SSL证书列表', - 'description' => '证书列表。', - 'type' => 'array', - 'items' => [ - 'description' => '证书结构。', - 'type' => 'object', - 'properties' => [ - 'CertificateId' => [ - 'title' => '证书Id', - 'description' => '证书ID,当前仅支持服务器证书。', - 'type' => 'string', - 'example' => '123157******', - ], - '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', - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationDenied.HttpListenerNotSupport', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000,\\n \\"Certificates\\": [\\n {\\n \\"CertificateId\\": \\"123157******\\",\\n \\"IsDefault\\": true,\\n \\"Status\\": \\"Associating\\",\\n \\"CertificateType\\": \\"Server\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 50\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 1000\\n \\n 12315790343_166f8204689_1714763408_70998****\\n true\\n Associating\\n Server\\n \\n","errorExample":""}]', - 'title' => '查询监听证书', - ], - 'DetachCommonBandwidthPackageFromLoadBalancer' => [ - 'summary' => '将共享带宽包从负载均衡实例中移除。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '幂等参数', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-4266******', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'title' => '地域ID', - 'description' => '应用型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~36063~~)接口获取地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'LoadBalancerId', - 'in' => 'query', - 'schema' => [ - 'title' => '实例ID', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-d676fho813rmu3****', - ], - ], - [ - 'name' => 'BandwidthPackageId', - 'in' => 'query', - 'schema' => [ - 'title' => '带宽包ID', - 'description' => '移除的共享带宽包ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cbwp-bp1pzf0ym72pu3y76****', ], ], [ - 'name' => 'DryRun', + 'name' => 'ServerGroupNames', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '预校验', - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会将共享带宽包从负载均衡实例中移除。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', + 'title' => '服务器组名称', + 'description' => '服务器组名称列表,最多10个。', + 'type' => 'array', + 'items' => ['description' => '服务器组名称,一次最多支持查询10个服务器组名称。', 'type' => 'string', 'required' => false, 'example' => 'Group3'], 'required' => false, - 'example' => 'true', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '将共享带宽包从负载均衡实例中移除。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '2EF39708-974B-5E74-AFF5-344******', - ], - 'JobId' => [ - 'title' => '异步任务ID', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectBusinessStatus.CommonBandwidthPackage', - 'errorMessage' => 'The business status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.CommonBandwidthPackage', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', + 'maxItems' => 10, ], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2EF39708-974B-5E74-AFF5-344******\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2EF39708-974B-5E74-AFF5-3445263035A8\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => '实例解绑共享带宽包', - 'description' => '**DetachCommonBandwidthPackageFromLoadBalancer**接口属于异步接口,即系统返回一个请求ID,但该负载均衡实例尚未解除关联共享带宽包,系统后台的解除任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214359~~)查询共享带宽包的解除状态:'."\n" - .'- 当负载均衡实例处于**Configuring**状态时,表示共享带宽包正在解除中。'."\n" - .'- 当负载均衡实例处于**Active**状态时,表示共享带宽包解除成功。', - ], - 'AttachCommonBandwidthPackageToLoadBalancer' => [ - 'summary' => '将共享带宽包绑定到应用型负载均衡实例上。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREslbZBWWR9', - ], - ], - 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '幂等参数', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665*****', - ], + 'schema' => ['title' => '资源组ID', 'description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], ], [ - 'name' => 'RegionId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '地域ID', - 'description' => '应用型负载均衡实例所在的地域ID。 '."\n" - ."\n" - .'您可以通过调用[DescribeRegions](~~448570~~)接口获取地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXG****'], ], [ - 'name' => 'LoadBalancerId', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'title' => '实例ID', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-d676fho813rmu3****', - ], + 'schema' => ['title' => '查询数量', 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], [ - 'name' => 'BandwidthPackageId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'title' => '带宽包ID', - 'description' => '绑定的共享带宽包ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cbwp-bp1pzf0ym72pu3y76****', - ], + 'schema' => ['title' => 'VpcId', 'description' => 'VPC实例ID。', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp15zckdt37pq72zv****'], ], [ - 'name' => 'DryRun', + 'name' => 'ServerGroupType', + 'in' => 'query', + 'schema' => ['title' => '服务器组类型', 'description' => '服务器组类型。取值:'."\n" + ."\n" + .'- **Instance**:服务器类型,包括Ecs、Eni、Eci实例。'."\n" + ."\n" + .'- **Ip**:IP地址类型。'."\n" + ."\n" + .'- **Fc**:函数计算类型。'."\n" + ."\n" + .'- 不填则查询所有类型。', 'type' => 'string', 'required' => false, 'example' => 'Instance'], + ], + [ + 'name' => 'Tag', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '是否只预检此次请求', - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会将共享带宽包绑定到负载均衡实例。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', + 'title' => 'Tag列表', + 'description' => '服务器组绑定的标签列表。一次请求中,绑定的标签列表中最多支持10个标签。', + 'type' => 'array', + 'items' => [ + 'description' => '服务器组绑定的标签,单次支持传入10个标签。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '标签键', 'description' => '标签键。最多支持10个标签键。'."\n" + ."\n" + .'最多支持64个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。', 'type' => 'string', 'required' => false, 'example' => 'Test'], + 'Value' => ['title' => '标签值', 'description' => '标签值。最多支持10个标签值。'."\n" + ."\n" + .'最多支持128个字符,不能以`aliyun`和`acs:`开头,不能包含`http://`或者`https://`。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'Test'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'true', + 'example' => 'Instance', ], ], ], @@ -16640,551 +9731,508 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '将共享带宽包绑定到应用型负载均衡实例。', + 'description' => ' 返回数据结构体。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '2EF39708-974B-5E74-AFF5-3445******', - ], - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'MaxResults' => ['title' => '本次查询返回记录数量', 'description' => '分批次查询时每次显示的条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'NextToken' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'caeba0bbb2be03f8****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876******'], + 'ServerGroups' => [ + 'title' => '服务器组', + 'description' => '后端服务器组列表。', + 'type' => 'array', + 'items' => [ + 'description' => '后端服务器组列表。', + 'type' => 'object', + 'properties' => [ + 'HealthCheckConfig' => [ + 'title' => '健康检查配置', + 'description' => '健康检查配置。', + 'type' => 'object', + 'properties' => [ + 'HealthCheckConnectPort' => ['title' => '端口', 'description' => '健康检查的后端服务器的端口。取值范围:**0**~**65535**。'."\n" + ."\n" + .'返回为**0**时代表使用后端服务器的端口进行健康检查。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'HealthCheckEnabled' => ['title' => '是否启用健康检查', 'description' => '是否启用健康检查,取值:'."\n" + .'- **true**:启用。'."\n" + .'- **false**:不启用。', 'type' => 'boolean', 'example' => 'true'], + 'HealthCheckHost' => ['title' => '域名', 'description' => '健康检查域名。'."\n" + ."\n" + .'- **使用后端服务器的内网IP**(默认):使用后端服务器的内网IP地址作为健康检查的域名。'."\n" + ."\n" + .'- **指定特定域名**:输入一个域名。'."\n" + ."\n" + .' - 长度限制为1~80个字符。'."\n" + ."\n" + .' - 可包含小写字母、数字、短划线(-)和半角句号(.)。'."\n" + ."\n" + .' - 至少包含一个半角句号(.),半角句号(.)不能出现在开头或结尾。'."\n" + ."\n" + .' - 最右侧的域标签,只能包含字母,不能包含数字或短划线(-)。'."\n" + ."\n" + .' - 短划线(-)不能出现在开头或结尾。'."\n" + ."\n" + .'> '."\n" + .'> 只有HealthCheckProtocol设置为HTTP、HTTPS或gRPC时,该参数生效。', 'type' => 'string', 'example' => 'www.example.com'], + 'HealthCheckCodes' => [ + 'title' => '状态码', + 'description' => '健康检查正常的状态码列表。', + 'type' => 'array', + 'items' => ['description' => '健康检查正常的状态码。'."\n" + ."\n" + .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http\\_2xx**、 **http\\_3xx**、**http\\_4xx**和**http\\_5xx**。多个状态码用半角逗号(,)分隔。'."\n" + ."\n" + .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**。支持范围输入,最多支持20个范围值,多个范围值使用半角逗号(,)隔开。'."\n" + ."\n" + .'> **HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时,该参数生效。', 'type' => 'string', 'example' => 'http_2xx'], + ], + 'HealthCheckHttpVersion' => ['title' => '版本', 'description' => '健康检查HTTP协议版本。'."\n" + ."\n" + .'取值:**HTTP1.0**或**HTTP1.1**。'."\n" + ."\n" + .'> 只有**HealthCheckProtocol**设置为**HTTP**或**HTTPS**时,该参数生效。', 'type' => 'string', 'example' => 'HTTP1.1'], + 'HealthCheckInterval' => ['title' => '间隔时间', 'description' => '健康检查的时间间隔。单位:秒。取值范围:**1**~**50**。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'HealthCheckMethod' => ['title' => '方法', 'description' => '健康检查方法。取值:'."\n" + ."\n" + .'- **GET**:如果响应报文长度超过8K,会被截断,但不会影响健康检查结果的判定。'."\n" + ."\n" + .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" + ."\n" + .'- **HEAD**:HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" + ."\n\n" + .'> 只有**HealthCheckProtocol**设置为**HTTP**或**HTTPS**或**gRPC**时,该参数生效。', 'type' => 'string', 'example' => 'HEAD'], + 'HealthCheckPath' => ['title' => 'uri', 'description' => '健康检查的转发规则路径。'."\n" + ."\n" + .'> 只有**HealthCheckProtocol**设置为**HTTP**或**HTTPS**时,该参数生效。', 'type' => 'string', 'example' => '/test/index.html'], + 'HealthCheckProtocol' => ['title' => '协议', 'description' => '健康检查协议。取值:'."\n" + ."\n" + .'- **HTTP**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" + ."\n" + .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" + ."\n" + .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" + ."\n" + .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', 'type' => 'string', 'example' => 'HTTP'], + 'HealthCheckTimeout' => ['title' => '超时时间', 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端服务器在指定的时间内没有正确响应,则判定为健康检查失败。单位:秒。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'HealthyThreshold' => ['title' => '健康阈值', 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], + 'UnhealthyThreshold' => ['title' => '不健康阈值', 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], + ], + ], + 'Protocol' => ['title' => '服务器组协议', 'description' => '后端协议类型。取值:'."\n" + ."\n" + .'- **HTTP**:支持关联HTTPS、HTTP和QUIC监听。'."\n" + .'- **HTTPS**:支持关联HTTPS监听。'."\n" + ."\n" + .'- **GRPC**:关联HTTPS和QUIC监听。'."\n", 'type' => 'string', 'example' => 'HTTP'], + 'RelatedLoadBalancerIds' => [ + 'title' => '关联的实例id', + 'description' => '关联的实例id', + 'type' => 'array', + 'items' => ['description' => '关联的负载均衡实例id', 'type' => 'string', 'example' => 'alb-n5qw04uq8savfe****'], + ], + 'ResourceGroupId' => ['title' => '资源组id', 'description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-atstuj3rtop****'], + 'Scheduler' => ['title' => '调度策略', 'description' => '调度算法。取值:'."\n" + ."\n" + .'- **Wrr**:加权轮询,权重值越高的后端服务器,被轮询到的概率也越高。'."\n" + .'- **Wlc**:加权最小连接数,除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的概率也越高。'."\n" + .'- **Sch**:一致性哈希,相同哈希因子计算结果的请求将会调度到相同的后端服务器。不配置UchConfig参数时,默认哈希因子为源IP,相同源IP地址的请求会分发到同一台后端服务器;配置了UchConfig参数时,哈希因子为URL参数,相同URL参数的请求会分发到同一台后端服务器。', 'type' => 'string', 'example' => 'Wrr'], + 'ServerGroupId' => ['title' => '服务器组Id', 'description' => '服务器组ID。', 'type' => 'string', 'example' => 'sgp-cige6j****'], + 'ServerGroupName' => ['title' => '服务器组名称', 'description' => '服务器组名称。', 'type' => 'string', 'example' => 'Group3'], + 'ServerGroupStatus' => ['title' => '服务器组状态', 'description' => '服务器组状态。取值:'."\n" + .'- **Creating**:创建中。'."\n" + ."\n" + .'- **Available**:可用。'."\n" + ."\n" + .'- **Configuring**:变配中。', 'type' => 'string', 'example' => 'Available'], + 'ServerGroupType' => ['title' => '服务器组类型', 'description' => '服务器组类型。取值:'."\n" + ."\n" + .'- **Instance**:服务器类型,包括Ecs、Eni、Eci实例。'."\n" + ."\n" + .'- **Ip**:IP类型。'."\n" + ."\n" + .'- **Fc**:函数计算类型。', 'type' => 'string', 'example' => 'Instance'], + 'StickySessionConfig' => [ + 'title' => '会话保持配置', + 'description' => '会话保持配置结构体。', + 'type' => 'object', + 'properties' => [ + 'Cookie' => ['title' => 'Cookie', 'description' => '服务器上配置的Cookie。', 'type' => 'string', 'example' => 'B490B5EBF6F3CD402E515D22BCDA****'], + 'CookieTimeout' => ['title' => 'Cookie超时时间', 'description' => 'Cookie超时时间。单位:秒。取值范围:**1**~**86400**。'."\n" + ."\n" + .'> 当**StickySessionEnabled**为**true**且**StickySessionType**为**Insert**时,该参数生效。'."\n" + ."\n\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'StickySessionEnabled' => ['title' => '是否开启会话保持', 'description' => '是否启用会话保持。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**:关闭。'."\n", 'type' => 'boolean', 'example' => 'false'], + 'StickySessionType' => ['title' => '会话保持类型', 'description' => 'Cookie的处理方式。取值:'."\n" + ."\n" + .'- **Insert**:植入Cookie。'."\n" + .'客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP或HTTPS响应报文中插入SERVERID),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。'."\n" + .'- **Server**:重写Cookie。'."\n" + .'负载均衡发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器。', 'type' => 'string', 'example' => 'Insert'], + ], + ], + 'VpcId' => ['title' => '服务器组所在VpcId', 'description' => 'VPC实例ID。', 'type' => 'string', 'example' => 'vpc-bp15zckdt37pq72zv****'], + 'Tags' => [ + 'title' => '标签列表', + 'description' => '服务器组绑定的标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '服务器组绑定的标签列表。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '标签键', 'description' => '标签键。', 'type' => 'string', 'example' => 'Test'], + 'Value' => ['title' => '标签值', 'description' => '标签值。', 'type' => 'string', 'example' => 'Test'], + ], + ], + ], + 'ConfigManagedEnabled' => ['title' => '是否开启配置管理', 'description' => '是否开启配置管理。取值:'."\n" + .'- **true**:开启。'."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'UpstreamKeepaliveEnabled' => ['title' => '是否开启后端长链接', 'description' => '是否开启后端长链接。取值:'."\n" + .'- **true**:开启。'."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'example' => 'false'], + 'Ipv6Enabled' => ['title' => '是否支持Ipv6', 'description' => '是否支持IPv6。取值:'."\n" + .'- **true**:支持。'."\n" + .'- **false**:不支持。', 'type' => 'boolean', 'example' => 'false'], + 'ServerCount' => ['title' => '服务器组内服务器数量', 'description' => '服务器组内服务器数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ServiceName' => ['title' => '服务器名称', 'description' => '服务名称。', 'type' => 'string', 'example' => 'test'], + 'UchConfig' => [ + 'title' => 'url一致性hash参数配置', + 'description' => 'url一致性hash参数配置。', + 'type' => 'object', + 'properties' => [ + 'Type' => ['title' => '参数类型', 'description' => '参数类型。只能填QueryString。', 'type' => 'string', 'example' => 'QueryString'], + 'Value' => ['title' => '一致性hash参数值', 'description' => '一致性hash参数值。', 'type' => 'string', 'example' => 'abc'], + ], + ], + 'CreateTime' => ['description' => '资源创建时间。', 'type' => 'string', 'example' => '2022-07-02T02:49:05Z'], + 'ConnectionDrainConfig' => [ + 'description' => '连接优雅中断相关配置。'."\n" + ."\n" + .'开启连接优雅中断,在移除后端服务器或者健康检查失败后,负载均衡使现有连接在一定时间内正常传输。'."\n" + .'>'."\n" + .'> - 基础版实例不支持开启连接优雅中断,仅标准版、WAF增强版实例支持。'."\n" + .'> - 服务器类型、IP类型服务器组支持连接优雅中断,函数计算类型不支持。', + 'type' => 'object', + 'properties' => [ + 'ConnectionDrainEnabled' => ['description' => '是否开启连接优雅中断。'."\n" + ."\n" + .'- **true**:开启'."\n" + .'- **false**:关闭', 'type' => 'boolean', 'example' => 'false'], + 'ConnectionDrainTimeout' => ['description' => '连接优雅中断超时时间。', 'type' => 'integer', 'format' => 'int32', 'example' => '300'], + ], + ], + 'SlowStartConfig' => [ + 'title' => '慢启动配置', + 'description' => '慢启动相关配置。'."\n" + ."\n" + .'开启慢启动后,将会在设定的时间段内对新添加到后端服务器组的后端服务器进行预热,转发到该服务器的请求数量线性增加。'."\n" + .'>'."\n" + .'> - 基础版实例不支持开启慢启动,仅标准版、WAF增强版实例支持。'."\n" + .'> - 服务器类型、IP类型服务器组支持配置慢启动,函数计算类型不支持。'."\n" + .'> - 慢启动仅在后端调度算法是加权轮询算法时可开启。', + 'type' => 'object', + 'properties' => [ + 'SlowStartEnabled' => ['description' => '是否开启慢启动。'."\n" + ."\n" + .'- **true**:开启'."\n" + .'- **false**:关闭', 'type' => 'boolean', 'example' => 'false'], + 'SlowStartDuration' => ['description' => '慢启动持续时间。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + ], + ], + 'CrossZoneEnabled' => ['description' => '服务器组是否开启跨AZ负载均衡。取值:'."\n" + ."\n" + .'- **true**:开启(默认值)'."\n" + ."\n" + .'- **false**:关闭', 'type' => 'boolean', 'example' => 'true'], + 'IpVersionAffinityMode' => ['title' => '服务器组IP版本亲和模式', 'type' => 'string', 'example' => 'Affinity'], + ], + ], ], + 'TotalCount' => ['title' => '总记录数', 'description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectBusinessStatus.CommonBandwidthPackage', - 'errorMessage' => 'The business status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.CommonBandwidthPackage', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.CommonBandwidthPackage', - 'errorMessage' => 'The specified resource %s is not found.', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '查询服务器组', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListServerGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2EF39708-974B-5E74-AFF5-3445******\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2EF39708-974B-5E74-AFF5-3445263035A8\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => '实例绑定共享带宽包', - 'description' => '**AttachCommonBandwidthPackageToLoadBalancer**接口属于异步接口,即系统返回一个请求ID,但该负载均衡实例尚未绑定关联共享带宽包,系统后台的绑定任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~2254835~~)查询共享带宽包的绑定状态:'."\n" - .'- 当负载均衡实例处于**Configuring**状态时,表示共享带宽包正在绑定中。'."\n" - .'- 当负载均衡实例处于**Active**状态时,表示共享带宽包绑定成功。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"caeba0bbb2be03f8****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\",\\n \\"ServerGroups\\": [\\n {\\n \\"HealthCheckConfig\\": {\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckEnabled\\": true,\\n \\"HealthCheckHost\\": \\"www.example.com\\",\\n \\"HealthCheckCodes\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.1\\",\\n \\"HealthCheckInterval\\": 5,\\n \\"HealthCheckMethod\\": \\"HEAD\\",\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"HTTP\\",\\n \\"HealthCheckTimeout\\": 3,\\n \\"HealthyThreshold\\": 4,\\n \\"UnhealthyThreshold\\": 4\\n },\\n \\"Protocol\\": \\"HTTP\\",\\n \\"RelatedLoadBalancerIds\\": [\\n \\"alb-n5qw04uq8savfe****\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"Scheduler\\": \\"Wrr\\",\\n \\"ServerGroupId\\": \\"sgp-cige6j****\\",\\n \\"ServerGroupName\\": \\"Group3\\",\\n \\"ServerGroupStatus\\": \\"Available\\",\\n \\"ServerGroupType\\": \\"Instance\\",\\n \\"StickySessionConfig\\": {\\n \\"Cookie\\": \\"B490B5EBF6F3CD402E515D22BCDA****\\",\\n \\"CookieTimeout\\": 1000,\\n \\"StickySessionEnabled\\": false,\\n \\"StickySessionType\\": \\"Insert\\"\\n },\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"ConfigManagedEnabled\\": false,\\n \\"UpstreamKeepaliveEnabled\\": false,\\n \\"Ipv6Enabled\\": false,\\n \\"ServerCount\\": 1,\\n \\"ServiceName\\": \\"test\\",\\n \\"UchConfig\\": {\\n \\"Type\\": \\"QueryString\\",\\n \\"Value\\": \\"abc\\"\\n },\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"ConnectionDrainConfig\\": {\\n \\"ConnectionDrainEnabled\\": false,\\n \\"ConnectionDrainTimeout\\": 300\\n },\\n \\"SlowStartConfig\\": {\\n \\"SlowStartEnabled\\": false,\\n \\"SlowStartDuration\\": 30\\n },\\n \\"CrossZoneEnabled\\": true,\\n \\"IpVersionAffinityMode\\": \\"Affinity\\"\\n }\\n ],\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n 50\\n caeba0bbb2be03f8****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n \\n \\n 80\\n true\\n www.example.com\\n http_2xx\\n HTTP1.1\\n 5\\n HEAD\\n /test/index.html\\n HTTP\\n 3\\n 4\\n 4\\n \\n HTTP\\n rg-atstuj3rtop****\\n Wrr\\n sgp-cige6j****\\n Group3\\n Available\\n Instance\\n \\n B490B5EBF6F3CD402E515D22BCDA****\\n 1000\\n false\\n Insert\\n \\n vpc-bp15zckdt37pq72zv****\\n \\n Test\\n Test\\n \\n false\\n false\\n false\\n 1\\n test\\n 2023-03-21T07:43:10Z\\n \\n 1000\\n","errorExample":""}]', ], - 'DisableLoadBalancerAccessLog' => [ - 'summary' => '关闭指定负载均衡实例的访问日志。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListSystemSecurityPolicies' => [ + 'summary' => '查询指定地域下的系统安全策略。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。'."\n" - ."\n" - .'>若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '593B0448-D13E-4C56-AC0D-FDF0******', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'LoadBalancerId', - 'in' => 'query', - 'schema' => [ - 'title' => '实例id', - 'description' => '负载均衡实例ID', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-bp1b6c719dfa08ex*****', - ], - ], + 'operationType' => 'get', + 'abilityTreeCode' => '272', + 'abilityTreeNodes' => ['FEATUREslb39XGK4'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构', + 'description' => '返回数据结构。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF******', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'], + 'SecurityPolicies' => [ + 'title' => '安全策略', + 'description' => '安全策略列表。', + 'type' => 'array', + 'items' => [ + 'description' => '安全策略结构。', + 'type' => 'object', + 'properties' => [ + 'Ciphers' => [ + 'title' => '加密套件', + 'description' => '支持的加密算法。', + 'type' => 'array', + 'items' => ['description' => '支持的加密套件,具体依赖**TLSVersions**的取值。'."\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" + ."\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'], + ], + 'SecurityPolicyId' => ['title' => '安全策略Id', 'description' => '安全策略实例ID。', 'type' => 'string', 'example' => 'tls_cipher_policy_1_0'], + 'TLSVersions' => [ + 'title' => '协议版本', + 'description' => '支持的TLS协议版本列表。', + 'type' => 'array', + 'items' => ['description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。', 'type' => 'string', 'example' => 'TLSv1.0'], + ], + ], + ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationDenied.AccessLogDisabled', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.LoadBalancer', - 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', - 'title' => '关闭访问日志', - ], - 'EnableLoadBalancerAccessLog' => [ - 'summary' => '开启指定负载均衡实例的访问日志。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"Ciphers\\": [\\n \\"ECDHE-ECDSA-AES128-SHA\\"\\n ],\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_0\\",\\n \\"TLSVersions\\": [\\n \\"TLSv1.0\\"\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n \\n ECDHE-ECDSA-AES128-SHA\\n spy-n0kn923****\\n TLSv1.0\\n \\n","errorExample":""}]', + 'title' => '查询系统安全策略', + 'changeSet' => [], + 'ramActions' => [], + ], + 'ListTagKeys' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '205', - 'abilityTreeNodes' => [ - 'FEATUREslb4A6LP3', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '593B0448-D13E-4C56-AC0D-FDF******', - ], + 'schema' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'DryRun', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['title' => '查询数量', 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], [ - 'name' => 'LoadBalancerId', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'title' => '实例id', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-bd6oylbckp6k9x****', - ], + 'schema' => ['title' => '资源类型', 'description' => '资源类型,取值:'."\n" + ."\n" + .'- **acl**:访问控制。'."\n" + ."\n" + .'- **loadbalancer**:应用型负载均衡实例。'."\n" + ."\n" + .'- **securitypolicy**:安全策略。'."\n" + ."\n" + .'- **servergroup**:服务器组。', 'type' => 'string', 'required' => true, 'example' => 'loadbalancer'], ], [ - 'name' => 'LogProject', + 'name' => 'Category', 'in' => 'query', - 'schema' => [ - 'title' => '日志Project', - 'description' => '访问日志投递的日志项目。', - 'type' => 'string', - 'required' => true, - 'example' => 'sls-setter', - ], + 'schema' => ['title' => '标签类型', 'description' => '标签类型。'."\n" + ."\n" + .'取值:**Custom**、**System**或**All**。'."\n" + ."\n" + .'默认值:**All**。', 'type' => 'string', 'required' => false, 'example' => 'System'], ], [ - 'name' => 'LogStore', + 'name' => 'Keyword', 'in' => 'query', - 'schema' => [ - 'title' => '日志Store', - 'description' => '访问日志投递的日志库。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'schema' => ['title' => '具体的标签Key', 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构。', + 'description' => '标签键。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0******', - ], - 'JobId' => [ - 'title' => 'jobId of the request', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => 'ff7713ca-5818-4120-85e3-0bf9******', + 'MaxResults' => ['title' => '本次查询返回记录数量', 'description' => '分批次查询时每次显示的条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'NextToken' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'], + 'TagKeys' => [ + 'title' => '标签Key列表', + 'description' => '标签键列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签键结构。', + 'type' => 'object', + 'properties' => [ + 'Category' => ['title' => '标签类型', 'description' => '标签类型。'."\n" + ."\n" + .'取值:**Custom**、**System**或**All**。'."\n" + ."\n" + .'默认值:**All**。', 'type' => 'string', 'example' => 'System'], + 'TagKey' => ['title' => '标签Key', 'description' => '返回满足所有筛选条件的标签。', 'type' => 'string', 'example' => 'test'], + ], + ], ], + 'TotalCount' => ['title' => '总记录数', 'description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationDenied.AccessLogEnabled', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'IncorrectStatus.LoadBalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication is failed for %s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', + 'title' => '查询标签键', + 'summary' => '查询指定标签的键。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListTagKeys', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\",\\n \\"JobId\\": \\"ff7713ca-5818-4120-85e3-0bf9******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', - 'title' => '开启访问日志', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\",\\n \\"TagKeys\\": [\\n {\\n \\"Category\\": \\"System\\",\\n \\"TagKey\\": \\"test\\"\\n }\\n ],\\n \\"TotalCount\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 20\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n \\n System\\n test\\n \\n 10\\n","errorExample":""}]', ], - 'CreateHealthCheckTemplate' => [ - 'summary' => '在指定地域创建健康检查模板。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListTagResources' => [ + 'summary' => '查询指定资源标签。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeCode' => '149', - 'abilityTreeNodes' => [ - 'FEATUREslb6RAQIN', - ], - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ClientToken', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '幂等参数', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n\n" - .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', - ], - ], - [ - 'name' => 'HealthCheckTemplateName', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '名称', - 'description' => '健康检查模板名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => true, - 'example' => 'HealthCheckTemplate1', - ], + 'schema' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'HealthCheckConnectPort', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'title' => '端口号', - 'description' => '健康检查使用的端口。'."\n" - ."\n" - .'取值范围:**0~65535**。'."\n" - ."\n" - .'默认值:**0**,表示使用后端服务器的端口进行健康检查。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '80', - ], + 'schema' => ['title' => '查询数量', 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**。默认值:**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], [ - 'name' => 'HealthCheckHost', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'title' => '域名', - 'description' => '用于健康检查的域名。取值: '."\n" - ."\n" - .'- **$SERVER_IP**:后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用后端服务器的私网IP当做健康检查使用的域名。'."\n" - ."\n" - .'- **domain**:域名长度为1~80字符,只能包含字母、数字、半角句号(.)和短划线(-)。'."\n" - ."\n" - .'> 只有`HealthCheckProtocol`设置为**HTTP**或**HTTPS**时该参数生效。', - 'type' => 'string', - 'required' => false, - 'example' => '$SERVER_IP', - ], + 'schema' => ['title' => '资源类型', 'description' => '资源类型,取值:'."\n" + ."\n" + .'- **acl**:访问控制。'."\n" + ."\n" + .'- **loadbalancer**:应用型负载均衡实例。'."\n" + ."\n" + .'- **securitypolicy**:安全策略。'."\n" + ."\n" + .'- **servergroup**:服务器组。', 'type' => 'string', 'required' => true, 'example' => 'loadbalancer'], ], [ - 'name' => 'HealthCheckCodes', + 'name' => 'ResourceId', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '状态码', - 'description' => '健康检查正常的状态码列表。', + 'title' => '资源实例Id', + 'description' => '资源ID。', 'type' => 'array', - 'items' => [ - 'description' => '健康检查正常的HTTP状态码。'."\n" - ."\n\n" - .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http\\_2xx**(默认值)、 **http\\_3xx**、**http\\_4xx**和**http\\_5xx**,多个状态码用半角逗号(,)分隔。'."\n" - ."\n" - .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**,默认值:**0**。支持范围输入,最多支持20个范围值,多个范围值使用半角逗号(,)隔开。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时才有该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'http_2xx', - ], - 'required' => false, - 'example' => '5', - ], - ], - [ - 'name' => 'HealthCheckInterval', - 'in' => 'query', - 'schema' => [ - 'title' => '时间间隔', - 'description' => '健康检查的时间间隔。'."\n" - ."\n" - .'取值范围:**1~50**秒。'."\n" - ."\n" - .'默认值:**2**秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], - ], - [ - 'name' => 'HealthCheckTimeout', - 'in' => 'query', - 'schema' => [ - 'title' => '超时时间', - 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端服务器在指定的时间内没有正确响应,则判定为健康检查失败。'."\n" - ."\n" - .'取值范围:**1~300**秒。'."\n" - ."\n" - .'默认值:**5**秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], - ], - [ - 'name' => 'HealthCheckPath', - 'in' => 'query', - 'schema' => [ - 'title' => 'uri', - 'description' => '用于健康检查的URL。'."\n" - ."\n" - .'长度限制为1~80,支持使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)和and(&)以及扩展字符集`_;~!()*[]@$^:\',+`。URL必须以正斜线(/)开头。'."\n" - ."\n" - .'> 只有`HealthCheckProtocol`为**HTTP**或**HTTPS**时才有该参数。', - 'type' => 'string', - 'required' => false, - 'example' => '/test/index.html', - ], - ], - [ - 'name' => 'HealthCheckMethod', - 'in' => 'query', - 'schema' => [ - 'title' => '方法', - 'description' => '健康检查方法。取值:'."\n" - ."\n" - .'- **HEAD**(默认值):HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" - ."\n" - .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" - ."\n" - .'- **GET**:如果响应报文长度超过8KB,会被截断,但不会影响健康检查结果的判定。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时才有该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'HEAD', - ], - ], - [ - 'name' => 'HealthCheckProtocol', - 'in' => 'query', - 'schema' => [ - 'title' => '协议', - 'description' => '健康检查采用的协议。取值:'."\n" - ."\n" - .'- **HTTP**(默认值):通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" - ."\n" - .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" - ."\n" - .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" - ."\n" - .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP', - ], - ], - [ - 'name' => 'HealthCheckHttpVersion', - 'in' => 'query', - 'schema' => [ - 'title' => '版本', - 'description' => '健康检查HTTP协议版本。'."\n" - ."\n" - .'取值:**HTTP 1.0**或**HTTP 1.1**。'."\n" - ."\n" - .'默认值:**HTTP 1.1**。'."\n" - ."\n" - .'> 只有`HealthCheckProtocol`为**HTTP**或**HTTPS**时才有该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP 1.0', - ], - ], - [ - 'name' => 'HealthyThreshold', - 'in' => 'query', - 'schema' => [ - 'title' => '健康阈值', - 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n" - ."\n" - .'取值范围:**2~10**。'."\n" - ."\n" - .'默认值:**3**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '4', - ], - ], - [ - 'name' => 'UnhealthyThreshold', - 'in' => 'query', - 'schema' => [ - 'title' => '不健康阈值', - 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n" - ."\n" - .'取值范围:**2~10**。'."\n" - ."\n" - .'默认值:**3**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '4', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => 'dryRun', - 'description' => '是否只预检此次请求,取值:'."\n" + 'items' => ['description' => '资源ID。'."\n" ."\n" - .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回**http_2xx**状态码并直接进行操作。', - 'type' => 'boolean', + .'> **ResourceId**和**Tag**参数至少填写其中一个。', 'type' => 'string', 'required' => false, 'example' => 'alb-gws76zi******'], 'required' => false, - 'example' => 'true', + 'example' => 'acl-123', + 'maxItems' => 50, + 'minItems' => 1, ], ], [ @@ -17192,38 +10240,24 @@ 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'description' => '标签。', + 'title' => '标签列表', + 'description' => '标签。'."\n" + ."\n" + .'> **ResourceId**和**Tag**参数至少填写其中一个。', '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', - ], + 'Key' => ['title' => '标签键', 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'env'], + 'Value' => ['title' => '标签值', 'description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'product'], ], 'required' => false, ], 'required' => false, - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', + 'example' => 'test', + 'maxItems' => 20, + 'minItems' => 1, ], ], ], @@ -17231,52 +10265,73 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '健康检查模板。', + 'description' => '标签资源信息。', 'type' => 'object', 'properties' => [ - 'HealthCheckTemplateId' => [ - 'title' => '健康检查模板ID', - 'description' => '健康检查模板ID。', - 'type' => 'string', - 'example' => 'hct-pno8sisi******', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34******', + 'MaxResults' => ['title' => '本次查询返回记录数量', 'description' => '分批次查询时每次显示的条目数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'NextToken' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FD******'], + 'TagResources' => [ + 'title' => '标签值列表', + 'description' => '返回符合标签键和标签值的标签。', + 'type' => 'array', + 'items' => [ + 'description' => '返回符合标签键和标签值的标签。', + 'type' => 'object', + 'properties' => [ + 'ResourceId' => ['title' => '资源ID', 'description' => '资源ID。', 'type' => 'string', 'example' => 'alb-gws76zijb0******'], + 'ResourceType' => ['title' => '资源类型', 'description' => '资源类型,取值:'."\n" + ."\n" + .'- **acl**:访问控制。'."\n" + ."\n" + .'- **loadbalancer**:应用型负载均衡实例。'."\n" + ."\n" + .'- **securitypolicy**:安全策略。'."\n" + ."\n" + .'- **servergroup**:服务器组。', 'type' => 'string', 'example' => 'loadbalancer'], + 'TagKey' => ['title' => '标签Key', 'description' => '标签键。', 'type' => 'string', 'example' => 'env'], + 'TagValue' => ['title' => '标签Value', 'description' => '标签值。', 'type' => 'string', 'example' => 'product'], + ], + ], ], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'QuotaExceeded.HealthCheckTemplatesNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '访问控制策略组ACL不存在。'], + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.HealthCheckTemplate', - 'errorMessage' => 'Authentication has failed for HealthCheckTemplate.', + ], + 'title' => '查询资源标签', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securityPolicyId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"HealthCheckTemplateId\\": \\"hct-pno8sisi******\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n hct-1224334\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '创建健康检查模板', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FD******\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"alb-gws76zijb0******\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"TagKey\\": \\"env\\",\\n \\"TagValue\\": \\"product\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 20\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n \\n d-2ze1ot4ah7xjyv0d****\\n loadbalancer\\n env\\n product\\n \\n","errorExample":""}]', ], - 'GetHealthCheckTemplateAttribute' => [ - 'summary' => '查询指定健康检查模板详细信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListTagValues' => [ + 'summary' => '查询指定标签的值。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17284,230 +10339,96 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '160', - 'abilityTreeNodes' => [ - 'FEATUREslb6RAQIN', - ], - ], + 'systemTags' => ['operationType' => 'list'], 'parameters' => [ [ - 'name' => 'HealthCheckTemplateId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '健康检查模板Id', - 'description' => '健康检查模板ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'hct-x4jazoyi6tvsq9****', - ], + 'schema' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" + .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['title' => '查询数量', 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '20', 'default' => '20'], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => ['title' => '资源类型', 'description' => '资源类型,取值:'."\n" + ."\n" + .'- **loadbalancer**:应用型负载均衡实例。'."\n" + ."\n" + .'- **acl**:访问控制。'."\n" + ."\n" + .'- **securitypolicy**:安全策略。'."\n" + ."\n" + .'- **servergroup**:服务器组。', 'type' => 'string', 'required' => false, 'example' => 'loadbalancer'], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => ['title' => '资源实例Id', 'description' => '资源实例ID。', 'type' => 'string', 'required' => false, 'example' => 'alb-gws76zijb0******'], + ], + [ + 'name' => 'TagKey', + 'in' => 'query', + 'schema' => ['title' => '具体的标签Key', 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => true, 'example' => 'test'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '查询标签值。', 'type' => 'object', 'properties' => [ - 'HealthCheckConnectPort' => [ - 'title' => '端口', - 'description' => '健康检查使用的端口。'."\n" - ."\n" - .'取值范围: **0**~**65535**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'HealthCheckHost' => [ - 'title' => '域名', - 'description' => '用于健康检查的域名。取值: '."\n" - ."\n" - .'- **$SERVER_IP**:后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用后端服务器的私网IP当做健康检查使用的域名。'."\n" - ."\n" - .'- **domain**:域名长度为1~80字符,只能包含字母、数字、半角句号(.)和短划线(-)。'."\n" - ."\n" - .'> 只有`HealthCheckProtocol`设置为**HTTP**或**HTTPS**时该参数生效。', - 'type' => 'string', - 'example' => '$SERVER_IP', - ], - 'HealthCheckCodes' => [ - 'title' => '状态码', - 'description' => '健康检查正常的状态码列表。', - 'type' => 'array', - 'items' => [ - 'description' => '健康检查正常的HTTP状态码。'."\n" - ."\n" - .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http_2xx**(默认值)、 **http_3xx**、**http_4xx**和**http_5xx**,多个状态码用半角逗号(,)分隔。'."\n" - ."\n" - .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**,默认值:**0**。支持范围输入,最多支持20个范围值,多个范围值使用半角逗号(,)隔开。'."\n" - ."\n\n" - .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时该参数生效。', - 'type' => 'string', - 'example' => 'http_2xx', - ], - ], - 'HealthCheckHttpVersion' => [ - 'title' => '版本', - 'description' => '健康检查HTTP协议版本。'."\n" - ."\n" - .'取值:**HTTP1.0**或**HTTP1.1**。'."\n" - ."\n" - .'> 只有`HealthCheckProtocol`为**HTTP**或**HTTPS**时该参数生效。', - 'type' => 'string', - 'example' => 'HTTP1.0', - ], - 'HealthCheckTemplateId' => [ - 'title' => '健康检查模板Id', - 'description' => '健康检查模板ID。', - 'type' => 'string', - 'example' => 'hct-x4jazoyi6tvsq9****', - ], - 'HealthCheckInterval' => [ - 'title' => '间隔时间', - 'description' => '健康检查的时间间隔。单位:秒。取值范围:**1~50**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'HealthCheckMethod' => [ - 'title' => '方法', - 'description' => '健康检查方法。取值:'."\n" - ."\n" - .'- **HEAD**(默认值):HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" - ."\n" - .'- **GET**:如果响应报文长度超过8K,会被截断,但不会影响健康检查结果的判定。'."\n" - ."\n" - .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" - ."\n\n" - .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时该参数生效。', - 'type' => 'string', - 'example' => 'GET', - ], - 'HealthCheckPath' => [ - 'title' => 'uri', - 'description' => '用于健康检查的URL。'."\n" - ."\n" - .'长度限制为1~80,只能使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)、and(&)这些字符以及扩展字符集`_;~!()*[]@$^:\',+`。'."\n" - .'URL必须以正斜线(/)开头。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时该参数生效。', - 'type' => 'string', - 'example' => '/test/index.html', - ], - 'HealthCheckProtocol' => [ - 'title' => '协议', - 'description' => '健康检查采用的协议。取值:'."\n" - ."\n" - .'- **HTTP**(默认值):通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" - ."\n" - .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" - ."\n" - .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" - ."\n" - .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', - 'type' => 'string', - 'example' => 'HTTP', - ], - 'HealthCheckTemplateName' => [ - 'title' => '名称', - 'description' => '健康检查模板名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n", - 'type' => 'string', - 'example' => 'HealthCheckTemplate1', - ], - 'HealthCheckTimeout' => [ - 'title' => '超时时间', - 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端服务器在指定的时间内没有正确响应,则判定为健康检查失败。单位:秒。'."\n" - ."\n" - .'取值范围:**1**~**300**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'HealthyThreshold' => [ - 'title' => '健康阈值', - 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n" - ."\n" - .'取值范围:**2**~**10**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DB1AFC33-DAE8-528E-AA4D-4A6A******', - ], - 'UnhealthyThreshold' => [ - 'title' => '不健康阈值', - 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n" - ."\n" - .'取值范围:**2**~**10**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'Tags' => [ - 'description' => '标签。', + 'MaxResults' => ['title' => '本次查询返回记录数量', 'description' => '分批次查询时每次显示的条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'NextToken' => ['title' => '分页查询标识', 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" + .'- 如果**NextToken**为空表示没有下一次查询。'."\n" + .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'], + 'TagValues' => [ + 'title' => '标签值列表', + 'description' => '标签值。', 'type' => 'array', - 'items' => [ - 'description' => '标签结构。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以`acs:`开头,不能包含`http://`或者`https://`。', - 'type' => 'string', - 'example' => 'product', - ], - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', + 'items' => ['description' => '返回满足所有筛选条件的标签。', 'type' => 'string', 'example' => 'owner'], ], + 'TotalCount' => ['title' => '总记录数', 'description' => '列表条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], ], ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden.HealthCheckTemplate', - 'errorMessage' => 'Authentication has failed for HealthCheckTemplate.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '访问控制策略组ACL不存在。'], + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.HealthCheckTemplate', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => '查询标签值', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'alb:ListTagValues', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckHost\\": \\"$SERVER_IP\\",\\n \\"HealthCheckCodes\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.0\\",\\n \\"HealthCheckTemplateId\\": \\"hct-x4jazoyi6tvsq9****\\",\\n \\"HealthCheckInterval\\": 3,\\n \\"HealthCheckMethod\\": \\"GET\\",\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"HTTP\\",\\n \\"HealthCheckTemplateName\\": \\"HealthCheckTemplate1\\",\\n \\"HealthCheckTimeout\\": 200,\\n \\"HealthyThreshold\\": 5,\\n \\"RequestId\\": \\"DB1AFC33-DAE8-528E-AA4D-4A6A******\\",\\n \\"UnhealthyThreshold\\": 5,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 80\\n $SERVER_IP\\n http_2xx,http_3xx\\n HTTP1.0\\n hct-x4jazoyi6tvsq9****\\n 3\\n GET\\n /test/index.html\\n HTTP\\n HealthCheckTemplate1\\n 200\\n 5\\n DB1AFC33-DAE8-528E-AA4D-4A6AABE71945\\n 5\\n","errorExample":""}]', - 'title' => '查询健康检查模板详细信息', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\",\\n \\"TagValues\\": [\\n \\"owner\\"\\n ],\\n \\"TotalCount\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 20\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n owner\\n 10\\n","errorExample":""}]', ], - 'DeleteHealthCheckTemplates' => [ - 'summary' => '批量删除指定的健康检查模板。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'LoadBalancerJoinSecurityGroup' => [ + 'summary' => '为应用型负载均衡实例绑定已创建的安全组。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17516,759 +10437,628 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'none', + 'abilityTreeCode' => '171521', + 'abilityTreeNodes' => ['FEATUREslbKS6M4D', 'FEATUREslb39XGK4'], ], 'parameters' => [ [ - 'name' => 'HealthCheckTemplateIds', + 'name' => 'SecurityGroupIds', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '健康检查模板Id列表', - 'description' => '健康检查模板ID列表,列表最多10条。', + 'description' => '安全组ID集合。', 'type' => 'array', - 'items' => [ - 'description' => '删除指定的健康检查模板ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'hct-bp1qjwo61pqz3ahltv****', - ], + 'items' => ['description' => '安全组ID。', 'type' => 'string', 'required' => false, 'example' => 'sg-m5e7xkprgt1pi1ik****'], 'required' => true, - 'example' => 'acl-123', 'maxItems' => 10, - 'minItems' => 1, ], ], [ - 'name' => 'ClientToken', + 'name' => 'LoadBalancerId', 'in' => 'query', - 'schema' => [ - 'title' => '幂等token', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n\n" - .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******', - ], + 'schema' => ['description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-h7kcw4g4nnvtqp****'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => 'dryRun', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式和业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回**http_2xx**状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => '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' => 'Schema of Response', - 'description' => '删除健康检查模板。', + 'title' => '创建结果', + 'description' => '创建结果', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], + 'JobId' => ['description' => '异步任务ID', 'type' => 'string', 'example' => '8fe81f25-79a0-4fa0-9036-f2601fda****'], + 'RequestId' => ['description' => '请求ID', 'type' => 'string', 'example' => 'D3B9AE45-F5DB-58E3-A4B5-EE58F1EC****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.HealthCheckTemplate', - 'errorMessage' => 'The status of %s [%s] is incorrect.', + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'ResourceAlreadyAssociated.SecurityGroup', 'errorMessage' => 'The specified resource of %s is already associated.', 'description' => '安全组已经绑定了此负载均衡实例'], + ['errorCode' => 'ResourceQuotaExceeded.SecurityGroupNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '实例绑定的安全组数目超限'], + ['errorCode' => 'OperationDenied.SecurityGroupNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '不支持绑定安全组'], + ['errorCode' => 'OperationDenied.LbAssociatedAclCanNotJoinSecurityGroup', 'errorMessage' => 'The operation is not allowed because of loadBalancer associated acl can not join security group.', 'description' => '不允许该操作,原因是负载均衡实例下的监听已经绑定过访问控制策略,则不允许再加入安全组'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.SecurityGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '找不到安全组资源'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Alb::2020-06-16::ListAsynJobs', 'callbackInterval' => 3000, 'maxCallbackTimes' => 20], + 'title' => '负载均衡实例加入安全组', + 'description' => '- 安全组功能默认不开放,如需使用,请向商务经理申请。'."\n" + ."\n" + .'- 请确保您已创建安全组。创建安全组,请参见[CreateSecurityGroup](~~2679843~~)。'."\n" + ."\n" + .'- 一个应用型负载均衡实例最多支持加入 4 个安全组。'."\n" + ."\n" + .'- 您可以通过[GetLoadBalancerAttribute](~~2254835~~)接口查询实例绑定的安全组。'."\n" + ."\n" + .'- LoadBalancerJoinSecurityGroup 属于异步接口,即系统返回一个请求 ID,但该应用型负载均衡实例绑定安全组尚未成功,系统后台的绑定任务仍在进行。您可以调用 [ListAsynJobs](~~2254893~~) 查询安全组的绑定状态:'."\n" + ."\n" + .' - 当任务状态处于 Succeeded 时,表示安全组绑定成功。'."\n" + ."\n" + .' - 当任务状态处于 Processing 时,表示安全组正在绑定中,在该状态下,您只能执行查询操作,不能执行其他操作。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'alb:LoadBalancerJoinSecurityGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '批量删除健康检查模板', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"8fe81f25-79a0-4fa0-9036-f2601fda****\\",\\n \\"RequestId\\": \\"D3B9AE45-F5DB-58E3-A4B5-EE58F1EC****\\"\\n}","type":"json"}]', ], - 'UpdateHealthCheckTemplateAttribute' => [ - 'summary' => '更新健康检查模板的属性,如名称、健康检查协议等。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'LoadBalancerLeaveSecurityGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], - [ - 'PrivateKey' => [], - ], ], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', + 'abilityTreeCode' => '171520', + 'abilityTreeNodes' => ['FEATUREslbKS6M4D', 'FEATUREslb39XGK4'], ], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'SecurityGroupIds', 'in' => 'query', - 'allowEmptyValue' => false, + 'style' => 'flat', 'schema' => [ - 'title' => '幂等参数', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', + 'description' => '安全组ID集合。', + 'type' => 'array', + 'items' => ['description' => '安全组ID。', 'type' => 'string', 'required' => false, 'example' => 'sg-1nmf15kvwj37g2g1****'], + 'required' => true, + 'maxItems' => 10, ], ], [ - 'name' => 'HealthCheckTemplateName', + 'name' => 'LoadBalancerId', 'in' => 'query', - 'schema' => [ - 'title' => '名称', - 'description' => '健康检查模板名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'HealthCheckTemplate1', - ], + 'schema' => ['description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-iv9gj3spak6fbj****'], ], [ - 'name' => 'HealthCheckConnectPort', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '端口号', - 'description' => '健康检查使用的端口。取值范围: **0~65535**。'."\n" - .'默认值:**0**,表示使用后端服务器的端口进行健康检查。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '80', - ], + 'schema' => ['description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式和业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回**http_2xx**状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'HealthCheckHost', + 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n\n" + .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '域名', - 'description' => '用于健康检查的域名。取值: '."\n" - ."\n" - .'- **$SERVER_IP**(默认值):后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用后端服务器的私网IP当做健康检查使用的域名。'."\n" - ."\n" - .'- **domain**:域名长度为1~80字符,只能包含字母、数字、半角句号点(.)和短划线(-)。'."\n" - ."\n" - .'> 只有`HealthCheckProtocol`设置为**HTTP**或**HTTPS**时才有该参数。', - 'type' => 'string', - 'required' => false, - 'example' => '$SERVER_IP', + 'title' => '创建结果', + 'description' => '创建结果', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID', 'type' => 'string', 'example' => 'EC0C96E4-7CCB-599C-9329-3A5DB6FF****'], + 'JobId' => ['description' => '异步任务ID', 'type' => 'string', 'example' => '51c5b627-3500-487c-b17d-5cc583f0****'], + ], ], ], - [ - 'name' => 'HealthCheckCodes', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '状态码', - 'description' => '健康检查正常的状态码列表。', - 'type' => 'array', - 'items' => [ - 'description' => '健康检查正常的HTTP状态码。'."\n" - ."\n" - .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http_2xx**(默认值)、 **http_3xx**、**http_4xx**和**http_5xx**,多个状态码用半角逗号(,)分隔。'."\n" - ."\n" - .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**,默认值:**0**。支持范围输入,最多支持20个范围值,多个范围值使用半角逗号(,)隔开。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时才有该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'http_2xx', + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'OperationDenied.SecurityGroupNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '不支持绑定安全组'], + ['errorCode' => 'ResourceNotAssociated.SecurityGroup', 'errorMessage' => 'The specified resource of %s is not associated.', 'description' => '安全组没有绑定此负载均衡实例'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.SecurityGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '找不到安全组资源'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Alb::2020-06-16::ListAsynJobs', 'callbackInterval' => 3000, 'maxCallbackTimes' => 20], + 'title' => '负载均衡实例移出安全组', + 'summary' => '为应用型负载均衡实例解绑安全组。', + 'description' => '- LoadBalancerLeaveSecurityGroup 接口属于异步接口,即系统返回一个请求 ID,但该应用型负载均衡实例的安全组尚未解绑成功,系统后台的解绑任务仍在进行。您可以调用 [ListAsynJobs](~~2254893~~) 查询安全组的解绑状态:'."\n" + ."\n" + .' - 当任务状态处于 Succeeded 时,表示安全组解绑成功。'."\n" + ."\n" + .' - 当任务状态处于 Processing 时,表示安全组正在解绑中,在该状态下,您只能执行查询操作,不能执行其他操作。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'alb:LoadBalancerLeaveSecurityGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], - 'required' => false, - 'example' => '5', ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC0C96E4-7CCB-599C-9329-3A5DB6FF****\\",\\n \\"JobId\\": \\"51c5b627-3500-487c-b17d-5cc583f0****\\"\\n}","type":"json"}]', + ], + 'ModifyCapacityReservation' => [ + 'summary' => '创建和修改资源预留。', + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'HealthCheckInterval', - 'in' => 'query', - 'schema' => [ - 'title' => '时间间隔', - 'description' => '健康检查的时间间隔。单位:秒。取值范围:**1~50**。默认值:**2**秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREslbEUW2CG'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ [ - 'name' => 'HealthCheckTimeout', + 'name' => 'LoadBalancerId', 'in' => 'query', - 'schema' => [ - 'title' => '超时时间', - 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端服务器在指定的时间内没有正确响应,则判定为健康检查失败。'."\n" - ."\n" - .'单位:秒。取值范围:**1~300**。默认值:**5**秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '300', - 'minimum' => '1', - 'example' => '3', - ], + 'schema' => ['title' => '应用型负载均衡实例ID。', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-iv9gj3spak6fbj****'], ], [ - 'name' => 'HealthCheckPath', + 'name' => 'ResetCapacityReservation', 'in' => 'query', 'schema' => [ - 'title' => 'uri', - 'description' => '用于健康检查的URL。'."\n" - ."\n" - .'长度限制为1~80,只能使用字母、数字和短划线(-)、正斜线(/)、半角句号点(.)、百分号(%)、半角问号(?)、井号(#)、and(&)这些字符以及扩展字符集`_;~!()*[]@$^:\',+`。'."\n" - ."\n" - .'URL必须以正斜线(/)开头。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时才有该参数。', - 'type' => 'string', + 'title' => '是否取消资源预留', + 'description' => '是否取消资源预留。取值:'."\n" + .'* **true**:取消资源预留。'."\n" + .'* **false**(默认值):不取消资源预留。创建、修改资源预留时可不填写此属性。', + 'type' => 'boolean', 'required' => false, - 'example' => '/test/index.html', + 'enumValueTitles' => [], + 'example' => 'false', + 'default' => 'false', + 'enum' => ['true', 'false'], ], ], [ - 'name' => 'HealthCheckMethod', + 'name' => 'MinimumLoadBalancerCapacity', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '方法', - 'description' => '健康检查方法。取值:'."\n" - ."\n" - .'- **HEAD**(默认值):HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" - ."\n" - .'- **GET**:如果响应报文长度超过8K,会被截断,但不会影响健康检查结果的判定。'."\n" - ."\n" - .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" - ."\n\n" - .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时才有该参数。', - 'type' => 'string', + 'title' => '预留的最小负载均衡器容量', + 'description' => '预留的最小负载均衡器容量。', + 'type' => 'object', + 'properties' => [ + 'CapacityUnits' => ['title' => 'LCU数量', 'description' => '每小时预留LCU数量。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + ], 'required' => false, - 'example' => 'HEAD', ], ], [ - 'name' => 'HealthCheckProtocol', + 'name' => 'DryRun', 'in' => 'query', 'schema' => [ - 'title' => '协议', - 'description' => '健康检查采用的协议。取值:'."\n" - ."\n" - .'- **HTTP**(默认值):通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" - ."\n" - .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" - ."\n" - .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" - ."\n" - .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', - 'type' => 'string', + 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会预留资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', + 'type' => 'boolean', 'required' => false, - 'example' => 'HTTP', + 'enumValueTitles' => [], + 'example' => 'false', ], ], [ - 'name' => 'HealthCheckHttpVersion', + 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => '保证请求的幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '版本', - 'description' => '健康检查HTTP协议版本。'."\n" - ."\n" - .'取值:**HTTP1.0**或**HTTP1.1**。'."\n" - ."\n" - .'默认值:**HTTP1.1**。'."\n" - ."\n" - .'> 只有`HealthCheckProtocol`为**HTTP**或**HTTPS**时才有该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP1.0', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.ListenerNotFound', 'errorMessage' => 'The operation is not allowed because of ListenerNotFound.', 'description' => ''], + ['errorCode' => 'OperationDenied.CapacityReservationNotSupport', 'errorMessage' => 'Resource reservation is not supported.', 'description' => ''], + ['errorCode' => 'OperationDenied.CapacityUnitsBelowMinimum', 'errorMessage' => 'The operation is not allowed because of CapacityUnitsBelowMinimum.', 'description' => ''], + ['errorCode' => 'OperationDenied.CapacityDecreaseRequestLimitExceeded', 'errorMessage' => 'The operation is not allowed because of CapacityDecreaseRequestLimitExceeded.', 'description' => ''], + ['errorCode' => 'OperationDenied.PriorRequestNotComplete', 'errorMessage' => 'The operation is not allowed because of PriorRequestNotComplete.', 'description' => ''], + ['errorCode' => 'OperationDenied.DeploymentSetExists', 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetExists.', 'description' => ''], + ['errorCode' => 'OperationDenied.DeploymentSetIsEmpty', 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetIsEmpty.', 'description' => ''], + ['errorCode' => 'OperationDenied.DeploymentSetsConflicts', 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetsConflicts.', 'description' => ''], + ['errorCode' => 'OperationDenied.DeploymentSetsNotSupport', 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetsNotSupport.', 'description' => ''], + ['errorCode' => 'OperationDenied.DeploymentSetsStrategyNotMatch', 'errorMessage' => 'The operation is not allowed because of DeploymentSetsStrategyNotMatch.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.ReservationMaxLcuPerLb', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.ReservationMaxLcuPerRegion', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.DeploymentSetsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''], + ['errorCode' => 'OperationDenied.DeploymentSetsNotSharedToAlb', 'errorMessage' => 'DeploymentSets are not shared to alb.', 'description' => '部署集没有共享给ALB。'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '修改资源预留', + 'description' => '**ModifyCapacityReservation**接口属于异步接口,即系统返回一个请求ID,但该资源预留尚未完成,系统后台的预留任务仍在进行。您可以调用DescribeCapacityReservation查询资源预留的状态:'."\n" + .' - 当资源预留处于**Pending**状态时,表示资源预留正在进行中。'."\n" + .' - 当资源预留处于**Provisioned**状态时,表示资源预留已经完成。'."\n" + .' - 当资源预留处于**Rebalancing**状态时,表示资源预留正在在可用区间重新分配。', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","type":"json"}]', + ], + 'MoveResourceGroup' => [ + 'summary' => '修改云资源所属的资源组。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'HealthyThreshold', - 'in' => 'query', - 'schema' => [ - 'title' => '健康阈值', - 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n" - ."\n" - .'取值范围:**2~10**。'."\n" - ."\n" - .'默认值:**3**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '4', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'UnhealthyThreshold', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'title' => '不健康阈值', - 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n" - ."\n" - .'取值范围:**2~10**。'."\n" - ."\n" - .'默认值:**3**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '4', - ], + 'schema' => ['title' => '资源类型', 'description' => '需要修改资源组的云资源类型,取值:'."\n" + ."\n\n" + .'- **loadbalancer**:应用型负载均衡实例'."\n" + .'- **acl**:访问控制'."\n" + .'- **securitypolicy**:安全策略'."\n" + .'- **servergroup**:服务器组'."\n", 'type' => 'string', 'required' => true, 'example' => 'acl'], ], [ - 'name' => 'DryRun', + 'name' => 'ResourceId', 'in' => 'query', - 'schema' => [ - 'title' => 'dryRun', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会修改资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回**http_2xx**状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['title' => '指定资源Id', 'description' => '需要修改资源组的云资源的实例ID。', 'type' => 'string', 'required' => true, 'example' => 'acl-hp34s2h0xx1ht4nwo****'], ], [ - 'name' => 'HealthCheckTemplateId', + 'name' => 'NewResourceGroupId', 'in' => 'query', - 'schema' => [ - 'title' => '健康检查模板ID', - 'description' => '模板ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hct-bp1qjwo61******', - ], + 'schema' => ['title' => '资源组id', 'description' => '需要移入云资源实例的资源组ID。'."\n" + ."\n" + .'> 资源组是在阿里云账号下进行资源分组管理的一种机制,资源组能够帮助您解决单个云账号内的资源分组和授权管理等复杂性问题。更多信息,请参见[什么是资源管理](~~94475~~)。', 'type' => 'string', 'required' => true, 'example' => 'rg-aekzbi7******'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '更新健康检查模板属性。', + 'description' => '返回数据结构体', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.HealthCheckTemplate', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], + ['errorCode' => 'NotExist.ResourceGroup', 'errorMessage' => 'ResourceGroup does not exist.', 'description' => '资源组不存在'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.HealthCheckTemplate', - 'errorMessage' => 'Authentication is failed for %s.', - ], + ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'ACL authentication has failed.', 'description' => '对Acl鉴权失败'], ], [ - [ - 'errorCode' => 'ResourceNotFound.HealthCheckTemplate', - 'errorMessage' => 'The specified resource %s is not found.', + ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '访问控制策略组ACL不存在。'], + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], + ], + ], + 'title' => '修改资源组', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:MoveResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '更新健康检查模板的属性', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', ], - 'ListHealthCheckTemplates' => [ - 'summary' => '查询指定地域的健康检查模板。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RemoveEntriesFromAcl' => [ + 'summary' => '从访问控制中移除条目。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'abilityTreeCode' => '151', - 'abilityTreeNodes' => [ - 'FEATUREslb6RAQIN', - ], - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'NextToken', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF******'], ], [ - 'name' => 'MaxResults', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '查询数量', - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '50', - 'default' => '20', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会删除访问控制策略组中的IP条目。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'HealthCheckTemplateIds', + 'name' => 'AclId', + 'in' => 'query', + 'schema' => ['title' => '访问控制策略Id', 'description' => 'ACL实例ID。', 'type' => 'string', 'required' => true, 'example' => 'acl-hp34s2h0xx1ht4nwo****'], + ], + [ + 'name' => 'Entries', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '健康检查模板ID列表', - 'description' => '健康检查模版ID列表。', + 'title' => '条目列表', + 'description' => '移除的访问控制条目列表,单次调用最多移除20条。', 'type' => 'array', - 'items' => [ - 'description' => '健康检查模版ID。最多支持20个健康检查模板ID。如果传入则根据模板ID过滤。', - 'type' => 'string', - 'required' => false, - 'example' => 'hct-bp1qjwo61pqz3ahltv****', - ], - 'required' => false, + 'items' => ['description' => '移除的访问控制条目。', 'type' => 'string', 'required' => false, 'example' => '192.168.1.0/24'], + 'required' => true, 'maxItems' => 20, + 'minItems' => 1, ], ], - [ - 'name' => 'HealthCheckTemplateNames', - 'in' => 'query', - 'style' => 'flat', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '健康检查模板名称列表', - 'description' => '健康检查模板名称列表。', - 'type' => 'array', - 'items' => [ - 'description' => '健康检查模版名称。最多支持10个健康检查模板名称。如果传入则根据模板名称过滤。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'title' => 'Schema of Response', + 'description' => '从访问控制中移除条目。', + 'type' => 'object', + 'properties' => [ + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'], ], - 'required' => false, - 'maxItems' => 20, ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.Acl', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '访问控制策略组ACL的当前状态不支持本次操作。'], + ], + 403 => [ + ['errorCode' => 'Forbidden.Acl', 'errorMessage' => 'ACL authentication has failed.', 'description' => '对Acl鉴权失败'], + ], [ - 'name' => 'Tag', + ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '访问控制策略组ACL不存在。'], + ['errorCode' => 'ResourceNotFound.AclEntry', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '移除访问控制条目', + 'description' => '**RemoveEntriesFromAcl**接口属于异步接口,即系统返回一个请求ID,但该访问控制策略组中的IP条目尚未删除成功,系统后台的删除任务仍在进行。您可以调用[ListAclEntries](~~213616~~)查询访问控制策略组中的IP条目的删除状态:'."\n" + .'- 当访问控制策略组处于**Removing**状态时,表示访问控制策略组中的IP条目正在删除中。'."\n" + .'- 当查询不到该访问控制策略组时,表示访问控制策略组中的IP条目删除成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:RemoveEntriesFromAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', + ], + 'RemoveServersFromServerGroup' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'ServerGroupId', + 'in' => 'query', + 'schema' => ['title' => '后端服务器Id', 'description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtop****'], + ], + [ + 'name' => 'Servers', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'description' => '标签。', + 'title' => '后端服务器', + 'description' => '后端服务器组列表,最多支持200个服务器。', 'type' => 'array', 'items' => [ - 'description' => '标签结构。', + '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', - ], + 'Port' => ['title' => '后端端口号', 'description' => '后端服务器使用的端口。取值范围:**1**~**65535**。'."\n" + .'> 当**ServerType**取值为**Ecs**、**Eni**、**Eci**、**Ip**时,该参数必传。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'docRequired' => false, 'example' => '80'], + 'ServerId' => ['title' => '后端服务器id', 'description' => '后端服务器ID。'."\n" + ."\n" + .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**资源ID。'."\n" + ."\n" + .'- 当服务器组为**Ip**类型时,该参数为IP地址。'."\n" + ."\n" + .'- 当服务器组为**Fc**类型时,该参数为函数计算的ARN标识。'."\n" + ."\n" + .'>您可以通过调用[ListServerGroups](~~2254862~~)接口获取服务器组类型的取值。', 'type' => 'string', 'required' => true, 'example' => 'i-bp1f9kdprbgy9uiu****'], + 'ServerIp' => ['title' => '后端服务器ip', 'description' => 'ENI多IP模式时指定的IP地址。', 'type' => 'string', 'required' => false, 'example' => '192.168.1.1'], + 'ServerType' => ['title' => '后端服务器类型', 'description' => '后端服务器类型。取值:'."\n" + .'- **Ecs**:ECS实例。'."\n" + .'- **Eni**:ENI弹性网卡实例。'."\n" + .'- **Eci**:ECI弹性容器。'."\n" + .'- **Ip**:IP地址。'."\n" + .'- **Fc**:函数计算。', 'type' => 'string', 'required' => true, 'docRequired' => false, 'example' => 'Ecs'], ], 'required' => false, ], - 'required' => false, + 'required' => true, + 'maxItems' => 200, + 'minItems' => 1, ], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID,根据设置的资源组ID来过滤。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会从服务器组中移除后端服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '健康检查模板信息。', + 'description' => '返回数据结构体', 'type' => 'object', 'properties' => [ - 'HealthCheckTemplates' => [ - 'title' => '健康检查模板', - 'description' => '健康检查模板列表。', - 'type' => 'array', - 'items' => [ - 'description' => '健康检查模板结构。', - 'type' => 'object', - 'properties' => [ - 'HealthCheckConnectPort' => [ - 'title' => '端口', - 'description' => '健康检查使用的端口。'."\n" - ."\n" - .'取值:** 0~65535**。'."\n" - ."\n" - .'默认值:**0**,表示使用后端服务器的端口进行健康检查。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'HealthCheckHost' => [ - 'title' => '域名', - 'description' => '用于健康检查的域名,取值:'."\n" - ."\n" - .'- **$SERVER_IP**(默认值): 后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用各后端服务器的私网IP当做健康检查使用的域名。'."\n" - ."\n" - .'- **domain**:域名长度为1~80字符,只能包含字母、数字、半角句号(.)和短划线(-)。'."\n" - ."\n" - .'> 只有`HealthCheckProtocol`为**HTTP**或**HTTPS**时才有效。', - 'type' => 'string', - 'example' => '$SERVER_IP', - ], - 'HealthCheckCodes' => [ - 'title' => '状态码', - 'description' => '健康检查正常的状态码列表。', - 'type' => 'array', - 'items' => [ - 'description' => '健康检查正常的HTTP状态码。'."\n" - ."\n" - .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http_2xx**(默认值)、 **http_3xx**、**http_4xx**和**http_5xx**,多个状态码用半角逗号(,)分隔。'."\n" - ."\n" - .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**,默认值:**0**。支持范围输入,最多支持20个范围值,多个范围值使用半角逗号(,)隔开。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时才有该参数。', - 'type' => 'string', - 'example' => 'http_2xx', - ], - ], - 'HealthCheckHttpVersion' => [ - 'title' => '版本', - 'description' => '健康检查HTTP协议版本。'."\n" - ."\n" - .'取值:**HTTP 1.0**或**HTTP 1.1**。'."\n" - ."\n" - .'默认值:**HTTP 1.1**。'."\n" - ."\n" - .'> 只有`HealthCheckProtocol`为**HTTP**或**HTTPS**时才有效。', - 'type' => 'string', - 'example' => 'HTTP 1.0', - ], - 'HealthCheckInterval' => [ - 'title' => '间隔时间', - 'description' => '健康检查的时间间隔。单位:秒。取值范围:**1~50**。默认值:**2**秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'HealthCheckMethod' => [ - 'title' => '方法', - 'description' => '健康检查方法。取值:'."\n" - ."\n" - .'- **HEAD**(默认值):HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" - ."\n" - .'- **GET**:如果响应报文长度超过8K,会被截断,但不会影响健康检查结果的判定。'."\n" - ."\n" - .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" - ."\n" - .'> 只有**HealthCheckProtocol**为**HTTP** 或**HTTPS**或**gRPC**时才有效。', - 'type' => 'string', - 'example' => 'HEAD', - ], - 'HealthCheckPath' => [ - 'title' => 'uri', - 'description' => '用于健康检查的URL。'."\n" - ."\n" - .'长度限制为1~80,只能使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)、and(&)这些字符以及扩展字符集`_;~!()*[]@$^:\',+`。URL必须以正斜线(/)开头。', - 'type' => 'string', - 'example' => '/test/index.html', - ], - 'HealthCheckProtocol' => [ - 'title' => '协议', - 'description' => '健康检查采用的协议。取值:'."\n" - ."\n" - .'- **HTTP**(默认值):通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" - ."\n" - .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" - ."\n" - .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" - ."\n" - .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', - 'type' => 'string', - 'example' => 'HTTP', - ], - 'HealthCheckTemplateId' => [ - 'title' => '健康检查模板Id', - 'description' => '健康检查模板ID。', - 'type' => 'string', - 'example' => 'hct-bp1qjwo61pqz3ahltv****', - ], - 'HealthCheckTemplateName' => [ - 'title' => '名称', - 'description' => '健康检查模板名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'example' => 'HealthCheckTemplate1', - ], - 'HealthCheckTimeout' => [ - 'title' => '超时时间', - 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败。'."\n" - ."\n" - .'取值:**1~300**秒。'."\n" - ."\n" - .'默认值:**5**秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'HealthyThreshold' => [ - 'title' => '健康阈值', - 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n" - ."\n" - .'取值:**2~10**。'."\n" - ."\n" - .'默认值:**3**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'UnhealthyThreshold' => [ - 'title' => '不健康阈值', - 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n" - ."\n" - .'取值:**2~10**。'."\n" - ."\n" - .'默认值:**3**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'Tags' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签结构。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'example' => 'product', - ], - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - ], - ], - ], - 'MaxResults' => [ - 'title' => '本次查询返回记录数量', - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'NextToken' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], - 'TotalCount' => [ - 'title' => '总记录数', - 'description' => '本次请求条件下返回的总数据记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '服务器组状态无效。'], + ['errorCode' => 'ResourceInConfiguring.BackendServer', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => '指定的资源%s正在配置中,请稍后再试'], + ['errorCode' => 'ResourceInConfiguring', 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', 'description' => '指定的资源在变更中,请稍后再试'], + ], 403 => [ - [ - 'errorCode' => 'Forbidden.HealthCheckTemplate', - 'errorMessage' => 'Authentication has failed for HealthCheckTemplate.', + ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication is failed for ServerGroup.', 'description' => '当前服务器组权限校验失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], + ['errorCode' => 'ResourceNotFound.BackendServer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '服务器组不存在。'], + ], + ], + 'title' => '移除后端服务器', + 'summary' => '从服务器组中移除后端服务器。', + 'description' => '**RemoveServersFromServerGroup**接口属于异步接口,即系统返回一个请求ID,但该后端服务器尚未移除成功,系统后台的移除任务仍在进行。'."\n" + .'1. 您可以调用[ListServerGroups](~~2254862~~)查询服务器组的状态:'."\n" + .' - 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n" + .' - 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n" + ."\n" + .'2. 您可以调用[ListServerGroupServers](~~2254863~~)查询后端服务器的状态:'."\n" + .' - 当后端服务器处于**Removing**状态时,表示后端服务器正在从服务器组中移除。'."\n" + .' - 当查询不到该后端服务器时,表示后端服务器移除成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:RemoveServersFromServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"HealthCheckTemplates\\": [\\n {\\n \\"HealthCheckConnectPort\\": 80,\\n \\"HealthCheckHost\\": \\"$SERVER_IP\\",\\n \\"HealthCheckCodes\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HealthCheckHttpVersion\\": \\"HTTP 1.0\\",\\n \\"HealthCheckInterval\\": 5,\\n \\"HealthCheckMethod\\": \\"HEAD\\",\\n \\"HealthCheckPath\\": \\"/test/index.html\\",\\n \\"HealthCheckProtocol\\": \\"HTTP\\",\\n \\"HealthCheckTemplateId\\": \\"hct-bp1qjwo61pqz3ahltv****\\",\\n \\"HealthCheckTemplateName\\": \\"HealthCheckTemplate1\\",\\n \\"HealthCheckTimeout\\": 3,\\n \\"HealthyThreshold\\": 4,\\n \\"UnhealthyThreshold\\": 4,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\"\\n }\\n ],\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 80\\n $_ip\\n http_2xx,http_3xx\\n HTTP 1.0\\n 5\\n HEAD\\n /test/index.html\\n HTTP\\n hct-bp1qjwo61pqz3ahltv****\\n HealthCheckTemplate1\\n 3\\n 4\\n 4\\n \\n 50\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 1000\\n","errorExample":""}]', - 'title' => '查询健康检查模板', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', ], - 'ApplyHealthCheckTemplateToServerGroup' => [ - 'summary' => '将健康检查配置模板应用到后端服务器组,从而将后端服务器组的健康检查配置修改为模板值。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ReplaceServersInServerGroup' => [ + 'summary' => '替换后端服务器组中的后端服务器。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18278,125 +11068,179 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslbULKWF1'], ], 'parameters' => [ [ - 'name' => 'HealthCheckTemplateId', + 'name' => 'ServerGroupId', 'in' => 'query', + 'schema' => ['title' => '后端服务器Id', 'description' => '服务器组ID。'."\n" + ."\n" + .'>函数计算类型的服务器组不支持替换后端服务器。', 'type' => 'string', 'required' => true, 'example' => 'sgp-5114d593o96qxy****'], + ], + [ + 'name' => 'AddedServers', + 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'title' => '健康检查模板Id', - 'description' => '模板ID。', - 'type' => 'string', + 'title' => '待添加后端服务器', + 'description' => '待添加的后端服务器列表,单次调用最多支持传入200个服务器。', + 'type' => 'array', + 'items' => [ + 'description' => '后端服务器结构体。', + 'type' => 'object', + 'properties' => [ + 'Description' => ['title' => '描述信息', 'description' => '后端服务器描述。长度为 2~256 个英文或中文字符,不能以http://和https://开头。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'Port' => ['title' => '后端端口号', 'description' => '后端服务器组使用的端口。取值范围:**1**~**65535**。单次调用最多支持传入200个服务器。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '80'], + 'ServerId' => ['title' => '后端服务器id', 'description' => '后端服务器ID。单次调用最多支持传入200个服务器。'."\n" + ."\n" + .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**资源ID。'."\n" + ."\n" + .'- 当服务器组为**Ip**类型时,该参数为IP地址。'."\n" + ."\n" + .'>函数计算类型的服务器组不支持替换后端服务器。您可以通过调用[ListServerGroups](~~213627~~)接口获取服务器组类型的取值。', 'type' => 'string', 'required' => false, 'example' => 'i-bp1f9kdprbgy9uiu****'], + 'ServerIp' => ['title' => '后端服务器ip', 'description' => '指定IP地址。'."\n" + ."\n" + .'当**ServerType**为**Eni**时,支持指定ENI的主私网IP或辅助私网IP。', 'type' => 'string', 'required' => false, 'example' => '192.168.1.1'], + 'ServerType' => ['title' => '后端服务器类型', 'description' => '后端服务器类型。 单次调用最多支持添加200个服务器。取值:'."\n" + .'- **Ecs**:ECS实例。'."\n" + .'- **Eni**:ENI弹性网卡实例。'."\n" + .'- **Eci**:ECI弹性容器。'."\n" + .'- **Ip**:IP地址。'."\n" + .'- **Fc**:函数计算。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Ecs'], + 'Weight' => ['title' => '后端服务器权重', 'description' => '后端服务器的权重,单次调用最多支持传入200个服务器。'."\n" + ."\n" + .'取值:**0**~**100**。默认值:**100**。如果设置权重为**0**,则不会将请求转发给该后端服务器。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + ], + 'required' => false, + ], 'required' => true, - 'example' => 'hct-bp1qjwo61pqz3ahltv****', + 'maxItems' => 200, + 'minItems' => 1, ], ], [ - 'name' => 'ServerGroupId', + 'name' => 'RemovedServers', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '服务器组Id', - 'description' => '后端服务器组ID。', - 'type' => 'string', + 'title' => '待删除后端服务器', + 'description' => '待删除的后端服务器。', + 'type' => 'array', + 'items' => [ + 'description' => '待删除的后端服务器的结构体。', + 'type' => 'object', + 'properties' => [ + 'ServerId' => ['title' => '后端服务器id', 'description' => '后端服务器ID。单次调用最多支持传入200个服务器。'."\n" + ."\n" + .'- 当服务器组为**Instance**类型时,该参数为**Ecs**、**Eni**、**Eci**资源ID。'."\n" + ."\n" + .'- 当服务器组为**Ip**类型时,该参数为IP地址。'."\n" + ."\n" + .'>函数计算类型的服务器组不支持替换后端服务器。您可以通过调用[ListServerGroups](~~213627~~)接口获取服务器组类型的取值。', 'type' => 'string', 'required' => true, 'example' => 'i-bp1f9kdprbgy9uiu****'], + 'ServerIp' => ['title' => '后端服务器ip', 'description' => '指定IP地址。'."\n" + ."\n" + .'当**ServerType**为**Eni**时,支持指定ENI的主私网IP或辅助私网IP。', 'type' => 'string', 'required' => false, 'example' => '192.168.1.12'], + 'ServerType' => ['title' => '后端服务器类型', 'description' => '后端服务器类型,单次调用最多支持传入200个服务器。取值:'."\n" + ."\n" + .'- **Ecs**:ECS实例。'."\n" + .'- **Eni**:ENI弹性网卡实例。'."\n" + .'- **Eci**:ECI弹性容器。'."\n" + .'- **Ip**:IP地址。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ecs'], + 'Port' => ['title' => '端口', 'description' => '后端服务器使用的端口。取值范围:**1**~**65535**。单次调用最多支持传入200个服务器。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '81'], + ], + 'required' => false, + ], 'required' => true, - 'example' => 'sgp-n80wyad08u0tox****', + 'maxItems' => 200, + 'minItems' => 1, ], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等Token', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'由客户端生成该参数值,要保证在不同请求间唯一,最大值不超过64个ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665******', - ], + 'schema' => ['title' => '幂等Token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => 'dryRun', - 'description' => '是否只预检此次请求。取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => 'dryRun', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会替换服务器组中的后端服务器。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '向后端服务器组应用健康检查模板。', + 'description' => '返回数据结构体。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF******', - ], + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.HealthCheckTemplate', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.ServerGroup', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], + ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器添加到组已超额度限制。'], + ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '服务器组状态无效。'], + ['errorCode' => 'Conflict.BackendServer', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => '服务器冲突,已经存在同配置的后端服务器。'], + ['errorCode' => 'DuplicatedParam.BackendServer', 'errorMessage' => 'The param of %s is duplicated.', 'description' => '参数%s是重复的。'], + ['errorCode' => 'OperationDenied.EciNotSupportJobType', 'errorMessage' => 'The operation is not allowed because of eci not support job type.', 'description' => '服务器组不支持添加Job优化型ECI实例。'], + ['errorCode' => 'Mismatch.ServerType', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'ResourceInConfiguring', 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', 'description' => '指定的资源在变更中,请稍后再试'], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '后端服务器数已超额度限制。'], + ['errorCode' => 'ResourceInConfiguring.BackendServer', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => '指定的资源%s正在配置中,请稍后再试'], + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => '该请求使用了与之前不相同的请求相同的客户端令牌。除非请求相同,否则请勿在不同请求之间重用客户端令牌。'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.ServerGroup', - 'errorMessage' => 'Authentication has failed for ServerGroup.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], + ['errorCode' => 'ResourceNotFound.Ecs', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'Ecs服务器不存在。'], + ['errorCode' => 'ResourceNotFound.Eci', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'Eci服务器不存在。'], + ['errorCode' => 'ResourceNotFound.Eni', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.BackendServer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '服务器组不存在。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.HealthCheckTemplate', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => '替换后端服务器组中的后端服务器', + 'description' => '**ReplaceServersInServerGroup**接口属于异步接口,即系统返回一个请求ID,但该后端服务器尚未替换成功,系统后台的替换任务仍在进行。'."\n" + .'1. 您可以调用[ListServerGroups](~~213627~~)查询服务器组的状态:'."\n" + .' - 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n" + .' - 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n" + ."\n" + .'2. 您可以调用[ListServerGroupServers](~~213628~~)查询后端服务器的状态:'."\n" + .' - 当后端服务器处于**Replacing**状态时,表示服务器组移出服务器并加入新的服务器。'."\n" + .' - 当后端服务器处于** Available**状态时,表示后端服务器运行中。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:ReplaceServersInServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '应用健康检查模板到服务组', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', ], - 'CreateSecurityPolicy' => [ - 'summary' => '在指定地域创建自定义安全策略。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'StartListener' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18404,170 +11248,140 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeCode' => '172', - 'abilityTreeNodes' => [ - 'FEATUREslbAYSA83', - ], - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ + [ + 'name' => 'ListenerId', + 'in' => 'query', + 'schema' => ['title' => '监听id', 'description' => '应用型负载均衡实例监听的ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******'], + ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'], ], [ 'name' => 'DryRun', 'in' => 'query', + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会启动监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码**DryRunOperation**。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP_2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'title' => 'Schema of Response', + 'description' => '启动监听。', + 'type' => 'object', + 'properties' => [ + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF******'], + ], ], ], - [ - 'name' => 'TLSVersions', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => 'tls版本', - 'description' => '支持的TLS协议版本列表', - 'type' => 'array', - 'items' => [ - 'description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。', - 'type' => 'string', - 'required' => true, - 'example' => 'TLSv1.0', + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => '指定的资源%s正在配置中,请稍后再试。'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], + ], + ], + 'title' => '启动监听', + 'summary' => '启动指定的监听。', + 'description' => '**StartListener**接口属于异步接口,即系统返回一个请求ID,但该监听尚未启动成功,系统后台的启动任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询监听的启动状态:'."\n" + .'- 当监听处于**Configuring**状态时,表示监听正在启动中。'."\n" + .'- 当监听处于**Running**状态时,表示监听启动成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:StartListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], - 'required' => true, ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + ], + 'StartShiftLoadBalancerZones' => [ + 'summary' => '将可用区对应的EIP/VIP从域名解析中摘除。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ResourceGroupId', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslb9RALVR'], + ], + 'parameters' => [ + [ + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '资源组id', - 'description' => '资源组ID', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'."\n"], ], [ - 'name' => 'SecurityPolicyName', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '安全策略名称', - 'description' => '安全策略名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字、半角句点(.)、下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => true, - 'example' => 'test-secrity', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会移除可用区。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行修改。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'Ciphers', + 'name' => 'LoadBalancerId', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '加密套件', - 'description' => '支持的加密套件列表', - 'type' => 'array', - 'items' => [ - 'description' => '支持的加密套件,具体依赖**TLSVersions**的取值。'."\n" - ."\n" - .'Cipher只要被任何一个传入的**TLSVersions**支持即可。'."\n" - ."\n" - .'> 选择了TLSv1.3,那么Cipher列表必须包含TLSv1.3支持的Cipher。'."\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-RSA-CHACHA20-POLY1305'."\n" - .' - ECDHE-ECDSA-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' => true, - 'example' => ' ECDHE-ECDSA-AES128-SHA', - ], - 'required' => true, - 'minItems' => 1, - ], + 'schema' => ['title' => '实例id', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'."\n"], ], [ - 'name' => 'Tag', + 'name' => 'ZoneMappings', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'description' => '标签。', + 'title' => '可用区及交换机映射列表', + 'description' => '可用区及交换机映射列表。'."\n" + ."\n" + .'> 一次调用最多支持移除一个可用区。', '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', - ], + 'VSwitchId' => ['title' => '交换机标识', 'description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。', 'type' => 'string', 'required' => true, 'example' => 'vsw-bp1rmcrwg3erh1fh8****'."\n"], + 'ZoneId' => ['title' => '可用区', 'description' => '可用区ID,通过调用[DescribeZones](~~189196~~)接口获得。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a'], ], 'required' => false, + 'description' => '', ], - 'required' => false, + 'required' => true, + 'maxItems' => 1, + 'minItems' => 1, ], ], ], @@ -18575,46 +11389,57 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0******', - ], - 'SecurityPolicyId' => [ - 'title' => '安全策略id', - 'description' => '安全策略ID', - 'type' => 'string', - 'example' => 'sp-9cdjz6o8ha70******', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'QuotaExceeded.SecurityPoliciesNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'IncorrectBusinessStatus.Eip', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'OperationDenied.ZoneVSwitchChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'OperationDenied.ZoneMappingsNotChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是可用区没有变化。'."\n"], + ['errorCode' => 'OperationDenied.ZoneVSwitchNotExist', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '实例不包含请求中的可用区和虚拟交换机'], + ['errorCode' => 'OperationDenied.EniStatusNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'Eni当前状态不支持此操作'], + ['errorCode' => 'OperationDenied.OnlyFixedAddressAllocatedModeSupported', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '负载均衡实例的IP模式不支持此操作'], + ['errorCode' => 'OperationDenied.ConfigLastActiveZoneNotSupport', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '禁止对最后一个Active状态的可用区进行删除或停止或摘除DNS A记录操作'], + ['errorCode' => 'OperationFailed.ShiftLoadBalancerZonesFailed', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '摘除此可用区中IP的DNS A记录失败'."\n"], + ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource %s is not enough.', 'description' => '资源%s不足。'."\n"], + ['errorCode' => 'Mismatch.ZoneIdAndVSwitchId', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => '%s和%s不匹配。'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'."\n"], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '把可用区的EIP/VIP从域名解析中摘除', + 'description' => '仅支持固定IP模式的ALB实例。'."\n" + .'当前ALB实例active状态的可用区数量为1时,不支持移除实例可用区。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:StartShiftLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\",\\n \\"SecurityPolicyId\\": \\"sp-9cdjz6o8ha70******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n scp-bp1bpn0kn9****\\n","errorExample":""}]', - 'title' => '创建自定义安全策略', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5A2CFF0E-5718-45B5-9D4D-70B3FF3898\\"\\n}","type":"json"}]', ], - 'DeleteSecurityPolicy' => [ - 'summary' => '删除指定的自定义安全策略。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'StopListener' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18622,102 +11447,80 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'ListenerId', 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '593B0448-D13E-4C56-AC0D-FDF0******', - ], + 'schema' => ['title' => '监听id', 'description' => '应用型负载均衡实例的监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******'], ], [ - 'name' => 'DryRun', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'], ], [ - 'name' => 'SecurityPolicyId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '安全策略Id', - 'description' => '安全策略ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sp-n0kn923****', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会停止监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构', + 'description' => '停止监听。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******', - ], + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.SecurityPolicy', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceInUse.SecurityPolicy', - 'errorMessage' => 'The specified resource %s is in use.', - ], + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => '指定的资源%s正在配置中,请稍后再试。'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.SecurityPolicy', - 'errorMessage' => 'Authentication has failed for SecurityPolicy.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.SecurityPolicy', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => '停止监听', + 'summary' => '停止指定的监听。', + 'description' => '**StopListener**接口属于异步接口,即系统返回一个请求ID,但该监听尚未停止成功,系统后台的停止任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询监听的停止状态:'."\n" + .'- 当监听处于**Configuring**状态时,表示监听正在停止中。'."\n" + .'- 当监听处于**Stopped**状态时,表示监听停止运行成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:StopListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', - 'title' => '删除安全策略', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', ], - 'UpdateSecurityPolicyAttribute' => [ - 'summary' => '更新安全策略属性,如安全协议版本、加密套件。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'TagResources' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18725,525 +11528,310 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会更新安全策略属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'SecurityPolicyId', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'title' => '安全策略id', - 'description' => '安全策略ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sp-n0kn923****', - ], + 'schema' => ['title' => '资源类型', 'description' => '资源类型,取值:'."\n" + ."\n" + .'- **acl**:访问控制。'."\n" + ."\n" + .'- **loadbalancer**:应用型负载均衡实例。'."\n" + ."\n" + .'- **securitypolicy**:安全策略。'."\n" + ."\n" + .'- **servergroup**:服务器组。', 'type' => 'string', 'required' => true, 'example' => 'loadbalancer'], ], [ - 'name' => 'TLSVersions', + 'name' => 'ResourceId', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => 'TLS版本', - 'description' => '支持的TLS协议版本列表。', + 'title' => '资源实例Id', + 'description' => '资源ID。', 'type' => 'array', - 'items' => [ - 'description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。'."\n" - .'最多支持添加4个TLS协议版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'TLSv1.0', - ], - 'required' => false, + 'items' => ['description' => '资源ID。', 'type' => 'string', 'required' => false, 'example' => 'alb-gws76zi******'], + 'required' => true, + 'example' => 'acl-123', + 'maxItems' => 50, + 'minItems' => 1, ], ], [ - 'name' => 'Ciphers', + 'name' => 'Tag', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '加密套件', - 'description' => '支持的加密套件列表。', + 'title' => '标签列表', + 'description' => '标签。', 'type' => 'array', 'items' => [ - 'description' => '支持的加密套件,具体依赖**TLSVersions**的取值。'."\n" - .'最多支持添加32个加密套件。'."\n" - ."\n" - .'Cipher只要被任何一个传入的**TLSVersions**支持即可。'."\n" - ."\n" - .'> 选择了TLSv1.3那么Cipher列表必须包含TLSv1.3支持的Cipher。'."\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-RSA-CHACHA20-POLY1305'."\n" - .' - ECDHE-ECDSA-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', + 'description' => '标签结构。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '标签键', 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'env'], + 'Value' => ['title' => '标签值', 'description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'product'], + ], 'required' => false, - 'example' => 'ECDHE-ECDSA-AES128-SHA', ], - 'required' => false, + 'required' => true, + 'example' => 'test', + 'maxItems' => 20, 'minItems' => 1, ], ], - [ - 'name' => 'SecurityPolicyName', - 'in' => 'query', - 'schema' => [ - 'title' => '安全策略名称', - 'description' => '安全策略名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字,半角句点(.),下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'test-secrity', - ], - ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构。', + 'description' => '给资源添加标签。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0******', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF******'], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.SecurityPolicy', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.SecurityPolicy', - 'errorMessage' => 'The specified resource %s is not found.', + ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '访问控制策略组ACL不存在。'], + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], + ], + ], + 'title' => '给资源添加标签', + 'summary' => '给指定资源添加标签。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:TagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#AclId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', - 'title' => '更新安全策略属性', - 'description' => '## 使用说明'."\n" - .'**UpdateSecurityPolicyAttribute**接口属于异步接口,即系统返回一个请求ID,但该安全策略属性尚未更新成功,系统后台的更新任务仍在进行。您可以调用[ListSecurityPolicies](~~213609~~)查询安全策略属性的更新状态:'."\n" - .'- 当安全策略属性处于**Configuring**状态时,表示安全策略属性正在更新中。'."\n" - .'- 当安全策略属性处于**Available**状态时,表示安全策略属性已更新完成。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', ], - 'ListSecurityPolicies' => [ - 'summary' => '查询指定地域的自定义安全策略。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UnTagResources' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - ], - 'parameters' => [ - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'title' => '资源组ID', - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', - ], - ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'MaxResults', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'title' => '查询数量', - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '50', - 'default' => '20', - ], + 'schema' => ['title' => '资源类型', 'description' => '资源类型,取值:'."\n" + ."\n" + .'- **acl**:访问控制。'."\n" + ."\n" + .'- **loadbalancer**:应用型负载均衡实例。'."\n" + ."\n" + .'- **securitypolicy**:安全策略。'."\n" + ."\n" + .'- **servergroup**:服务器组。', 'type' => 'string', 'required' => true, 'example' => 'loadbalancer'], ], [ - 'name' => 'SecurityPolicyNames', + 'name' => 'ResourceId', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '安全策略名称', - 'description' => '安全策略名称列表,最多支持10个。', + 'title' => '资源实例Id', + 'description' => '要删除标签的资源ID列表。', 'type' => 'array', - 'items' => [ - 'description' => '安全策略名称,查询指定名称的安全策略。最多支持10个安全策略名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test-secrity', - ], - 'required' => false, - 'maxItems' => 10, + 'items' => ['description' => '要删除标签的资源ID。', 'type' => 'string', 'required' => false, 'example' => 'alb-gws76zij******'], + 'required' => true, + 'example' => 'acl-123', + 'maxItems' => 50, 'minItems' => 1, ], ], [ - 'name' => 'SecurityPolicyIds', + 'name' => 'Tag', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '安全策略id', - 'description' => '安全策略ID列表,最多20个。', + 'title' => '标签列表', + 'description' => '要删除的标签列表。', 'type' => 'array', 'items' => [ - 'description' => '安全策略ID,查询指定ID的安全策略。最多支持20个安全策略ID。', - 'type' => 'string', + 'description' => '要删除的标签结构。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '标签键', 'description' => '要删除标签的标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'env'], + 'Value' => ['title' => '标签值', 'description' => '要删除标签的标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'product'], + ], 'required' => false, - 'example' => 'sp-bp1bpn0kn9****', ], 'required' => false, + 'example' => 'test', 'maxItems' => 20, 'minItems' => 1, ], ], [ - 'name' => 'Tag', + 'name' => 'TagKey', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'description' => '标签。', + 'title' => '标签键列表', + '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, - ], + 'items' => ['description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', 'type' => 'string', 'required' => false, 'example' => 'env'], 'required' => false, + 'maxItems' => 20, + 'minItems' => 1, ], ], + [ + 'name' => 'All', + 'in' => 'query', + 'schema' => ['title' => '是否删除全部', 'description' => '是否解绑资源的所有标签。取值:'."\n" + ."\n" + .'- **true**:解绑资源的所有标签。'."\n" + .'- **false**(默认值):不解绑资源的所有标签。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构。', + 'description' => '删除标签。', 'type' => 'object', 'properties' => [ - 'MaxResults' => [ - 'title' => '本次查询返回记录数量', - 'description' => '分批次查询时每次显示的条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'NextToken' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******', - ], - 'SecurityPolicies' => [ - 'title' => '安全策略', - 'description' => '支持的安全策略列表。', - 'type' => 'array', - 'items' => [ - 'description' => '安全策略数据结构。', - 'type' => 'object', - 'properties' => [ - 'Ciphers' => [ - 'title' => '加密套件', - 'description' => '支持的加密算法列表。', - 'type' => 'array', - 'items' => [ - 'description' => '支持的加密套件,具体依赖**TLSVersions**的取值。'."\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-RSA-CHACHA20-POLY1305'."\n" - .' - ECDHE-ECDSA-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', - 'example' => 'ECDHE-ECDSA-AES128-SHA', - ], - ], - 'ResourceGroupId' => [ - 'title' => '资源组id', - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - 'SecurityPolicyId' => [ - 'title' => '安全策略id', - 'description' => '安全策略ID。', - 'type' => 'string', - 'example' => 'sp-9cdjz6o******', - ], - 'SecurityPolicyName' => [ - 'title' => '安全策略名称', - 'description' => '安全策略名称。', - 'type' => 'string', - 'example' => 'test-secrity', - ], - 'SecurityPolicyStatus' => [ - 'title' => '状态', - 'description' => '策略的状态,取值:'."\n" - ."\n" - .'- **Configuring**:配置中。'."\n" - .'- **Available**:正常可用。', - 'type' => 'string', - 'example' => 'Available', - ], - 'TLSVersions' => [ - 'title' => 'TLS策略', - 'description' => '支持的TLS协议版本列表。', - 'type' => 'array', - 'items' => [ - 'description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。', - 'type' => 'string', - 'example' => 'TLSv1.1', - ], - ], - 'CreateTime' => [ - 'description' => 'ACL创建时间,格式为:`YYYY-MM-DDThh:mm:ssZ`。', - 'type' => 'string', - 'example' => '2023-02-15T07:37:33Z', - ], - 'Tags' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签结构。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', - 'type' => 'string', - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', - 'type' => 'string', - 'example' => 'product', - ], - ], - ], - ], - ], - ], - ], - 'TotalCount' => [ - 'title' => '总记录数', - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'], ], ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden.SecurityPolicy', - 'errorMessage' => 'Authentication has failed for SecurityPolicy.', + 404 => [ + ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '访问控制策略组ACL不存在。'], + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], + ], + ], + 'title' => '删除资源的标签', + 'summary' => '删除资源上配置的标签。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:UnTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#AclId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"Ciphers\\": [\\n \\"ECDHE-ECDSA-AES128-SHA\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"SecurityPolicyId\\": \\"sp-9cdjz6o******\\",\\n \\"SecurityPolicyName\\": \\"test-secrity\\",\\n \\"SecurityPolicyStatus\\": \\"Available\\",\\n \\"TLSVersions\\": [\\n \\"TLSv1.1\\"\\n ],\\n \\"CreateTime\\": \\"2023-02-15T07:37:33Z\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n 50\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n \\n ECDHE-ECDSA-AES128-SHA\\n rg-atstuj3rtop****\\n rg-atstuj3rtop****\\n test-secrity\\n Available\\n TLSv1.1\\n 2023-02-15T07:37:33Z\\n \\n 1000\\n","errorExample":""}]', - 'title' => '查询自定义安全策略', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', ], - 'ListSecurityPolicyRelations' => [ - 'summary' => '查询安全策略关联的监听列表。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateAScripts' => [ + 'summary' => '更新可编程脚本。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', + 'abilityTreeCode' => '34540', + 'abilityTreeNodes' => ['FEATUREslb2Q6O49'], ], 'parameters' => [ [ - 'name' => 'SecurityPolicyIds', + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => 'b1f642ac-5558-4a36-b7d9-cf53******'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会更新可编程脚本。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'AScripts', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '安全策略id', - 'description' => '安全策略实例ID列表,最多支持5个。', + 'title' => '脚本', + 'description' => '可编程脚本信息列表。', 'type' => 'array', 'items' => [ - 'description' => '安全策略ID。', - 'type' => 'string', + 'description' => '可编程脚本信息。', + 'type' => 'object', + 'properties' => [ + 'AScriptName' => ['title' => '脚本名称', 'description' => '可编程脚本名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格。', 'type' => 'string', 'required' => false, 'example' => 'Group1'], + 'Enabled' => ['title' => '是否启用', 'description' => '是否启用可编程脚本。取值:'."\n" + ."\n" + .'- **true**:启用。'."\n" + ."\n" + .'- **false**(默认值):不启用。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'ScriptContent' => ['title' => '脚本内容', 'description' => '可编程脚本内容。', 'type' => 'string', 'required' => false, 'example' => 'if and(match_re($uri, \'^/1.txt$\'), $arg_type) { rewrite(concat(\'/1.\', $arg_type), \'break\') }'], + 'ExtAttributes' => [ + 'title' => '扩展属性', + 'description' => '扩展属性', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AttributeKey' => ['title' => '属性名称', 'description' => 'Ascript脚本的属性名称。'."\n" + ."\n" + .'仅取值**EsDebug**:当请求携带_es_dbg参数,且值为此处配置的密钥时,开启相应的调试响应头,以输出规则执行记录。', 'type' => 'string', 'required' => true, 'example' => 'EsDebug'], + 'AttributeValue' => ['title' => '属性值', 'description' => '属性值,大小写英文字母或数字,长度为1~128个字符。', 'type' => 'string', 'required' => true, 'example' => 'test123'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + 'AScriptId' => ['title' => '脚本Id', 'description' => '可编程脚本ID。'."\n" + ."\n", 'type' => 'string', 'required' => true, 'example' => 'as-mhqxcanmivn4g5****'], + 'ExtAttributeEnabled' => ['title' => '是否启用扩展属性', 'description' => '是否启用可编程脚本扩展属性。取值:'."\n" + ."\n" + .'- true:启用。'."\n" + ."\n" + .'- false(默认值):不启用。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], 'required' => false, - 'example' => 'sp-n0kn923****', ], - 'required' => true, - 'maxItems' => 5, - 'minItems' => 1, + 'required' => false, ], ], ], @@ -19251,374 +11839,331 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构。', + 'description' => '更新可编程脚本。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF******', - ], - 'SecrityPolicyRelations' => [ - 'title' => '安全策略关联关系', - 'description' => '安全策略与监听的关联关系列表。', - 'type' => 'array', - 'items' => [ - 'description' => '安全策略与监听的关联关系。', - 'type' => 'object', - 'properties' => [ - 'RelatedListeners' => [ - 'title' => '关联的监听列表', - 'description' => '关联的监听列表。', - 'type' => 'array', - 'items' => [ - 'description' => '关联的监听结构。', - 'type' => 'object', - 'properties' => [ - 'ListenerId' => [ - 'title' => '监听id', - 'description' => '监听ID。', - 'type' => 'string', - 'example' => 'lsn-0bfuc****', - ], - 'ListenerPort' => [ - 'title' => '监听端口', - 'description' => '监听端口。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '80', - ], - 'ListenerProtocol' => [ - 'title' => '监听协议', - 'description' => '监听协议。', - 'type' => 'string', - 'example' => 'HTTPS', - ], - 'LoadBalancerId' => [ - 'title' => '实例id', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'example' => 'alb-umwzbz6******', - ], - ], - ], - ], - 'SecurityPolicyId' => [ - 'title' => '安全策略id', - 'description' => '安全策略实例ID。', - 'type' => 'string', - 'example' => 'sp-bp1bpn0kn9****', - ], - ], - ], - ], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '2e82b5f4-1ba9-4d20-89c8-1082ebaa****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'ACA19FE1-C09E-53C7-8FDA-560******'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'ResourceQuotaExceeded.AScriptsNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['errorCode' => 'ResourceQuotaExceeded.AScriptsTotalLinesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['errorCode' => 'ResourceQuotaExceeded.AScriptLinesNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.SecurityPolicy', - 'errorMessage' => 'The specified resource %s is not found.', + ['errorCode' => 'ResourceNotFound.Ascript', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"2e82b5f4-1ba9-4d20-89c8-1082ebaa****\\",\\n \\"RequestId\\": \\"ACA19FE1-C09E-53C7-8FDA-560******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2e82b5f4-1ba9-4d20-89c8-1082ebaa****\\n ACA19FE1-C09E-53C7-8FDA-560F49D71891\\n","errorExample":""}]', + 'title' => '更新可编程脚本', + 'description' => '**UpdateAScripts**接口属于异步接口,即系统返回一个请求ID,但该可编程脚本尚未更新成功,系统后台的更新任务仍在进行。您可以调用[ListAScripts](~~472574~~)查询可编程脚本的更新状态:'."\n" + ."\n" + .' - 当可编程脚本处于**Configuring**状态时,表示可编程脚本正在更新中。'."\n" + ."\n" + .' - 当可编程脚本处于**Available**状态时,表示可编程脚本更新成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateAScripts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\",\\n \\"SecrityPolicyRelations\\": [\\n {\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-0bfuc****\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTPS\\",\\n \\"LoadBalancerId\\": \\"alb-umwzbz6******\\"\\n }\\n ],\\n \\"SecurityPolicyId\\": \\"sp-bp1bpn0kn9****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n \\n \\n lsn-0bfuc****\\n 80\\n HTTPS\\n lb-bp1o94dp5i6ea****\\n \\n scp-bp1bpn0kn9****\\n \\n","errorExample":""}]', - 'title' => '查询安全策略关联关系', ], - 'ListSystemSecurityPolicies' => [ - 'summary' => '查询指定地域下的系统安全策略。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateAclAttribute' => [ + 'summary' => '更新访问控制的属性,如名称。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '272', - 'abilityTreeNodes' => [ - 'FEATUREslb39XGK4', + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '幂等参数', 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => ['title' => 'AclId', 'description' => 'ACL实例ID', 'type' => 'string', 'required' => true, 'example' => 'acl-hp34s2h0xx1ht4nwo****'], + ], + [ + 'name' => 'AclName', + 'in' => 'query', + 'schema' => ['title' => '访问控制策略名称', 'description' => 'ACL的名称。必须以字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格,限制长度为2~128个字符。', 'type' => 'string', 'required' => true, 'example' => 'test-acl'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => '是否预校验请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP `2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构。', + 'description' => '异步任务ID结构', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******', - ], - 'SecurityPolicies' => [ - 'title' => '安全策略', - 'description' => '安全策略列表。', - 'type' => 'array', - 'items' => [ - 'description' => '安全策略结构。', - 'type' => 'object', - 'properties' => [ - 'Ciphers' => [ - 'title' => '加密套件', - 'description' => '支持的加密算法。', - 'type' => 'array', - 'items' => [ - 'description' => '支持的加密套件,具体依赖**TLSVersions**的取值。'."\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" - ."\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', - ], - ], - 'SecurityPolicyId' => [ - 'title' => '安全策略Id', - 'description' => '安全策略实例ID。', - 'type' => 'string', - 'example' => 'sp-n0kn923****', - ], - 'TLSVersions' => [ - 'title' => '协议版本', - 'description' => '支持的TLS协议版本列表。', - 'type' => 'array', - 'items' => [ - 'description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。', - 'type' => 'string', - 'example' => 'TLSv1.0', - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876F******'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"Ciphers\\": [\\n \\"ECDHE-ECDSA-AES128-SHA\\"\\n ],\\n \\"SecurityPolicyId\\": \\"sp-n0kn923****\\",\\n \\"TLSVersions\\": [\\n \\"TLSv1.0\\"\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n \\n ECDHE-ECDSA-AES128-SHA\\n spy-n0kn923****\\n TLSv1.0\\n \\n","errorExample":""}]', - 'title' => '查询系统安全策略', - ], - 'AddEntriesToAcl' => [ - 'summary' => '向访问控制策略组中添加IP条目。', - 'methods' => [ - 'get', - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Conflict.Acl', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => '%s冲突,已经存在同配置的%s。'], + ['errorCode' => 'IncorrectStatus.Acl', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '访问控制策略组ACL的当前状态不支持本次操作。'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Acl', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '访问控制策略组ACL不存在。'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876F******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => '更新访问控制的属性', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateAclAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ], + ], + ], ], + ], + 'UpdateHealthCheckTemplateAttribute' => [ + 'summary' => '更新健康检查模板的属性,如名称、健康检查协议等。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], + [ + 'PrivateKey' => [], + ], ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'AclId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => 'AclId', - 'description' => 'ACL实例ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'acl-hp34s2h0xx1ht4nwo****', - ], + 'allowEmptyValue' => false, + 'schema' => ['title' => '幂等参数', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'], ], [ - 'name' => 'AclEntries', + 'name' => 'HealthCheckTemplateName', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '条目信息列表', - 'description' => '添加的访问控制条目列表。单次调用最多支持20个访问控制条目。', - 'type' => 'array', - 'items' => [ - 'description' => '访问控制策略结构。', - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'title' => '描述信息', - 'description' => '访问控制条目备注描述,长度为2~256个字符,可包含英文字母、数字、中文、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。'."\n" - ."\n" - .'单次调用最多支持20个访问控制条目。', - 'type' => 'string', - 'required' => false, - 'example' => 'test-entry', - ], - 'Entry' => [ - 'title' => '条目', - 'description' => '访问控制条目IP地址段。', - 'type' => 'string', - 'required' => true, - 'example' => '10.0.1.0/24', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 20, - 'minItems' => 1, - ], + 'schema' => ['title' => '名称', 'description' => '健康检查模板名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格。', 'type' => 'string', 'required' => false, 'example' => 'HealthCheckTemplate1'], ], [ - 'name' => 'ClientToken', + 'name' => 'HealthCheckConnectPort', + 'in' => 'query', + 'schema' => ['title' => '端口号', 'description' => '健康检查使用的端口。取值范围: **0~65535**。'."\n" + .'默认值:**0**,表示使用后端服务器的端口进行健康检查。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80'], + ], + [ + 'name' => 'HealthCheckHost', + 'in' => 'query', + 'schema' => ['title' => '域名', 'description' => '用于健康检查的域名。取值: '."\n" + ."\n" + .'- **$SERVER_IP**(默认值):后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用后端服务器的私网IP当做健康检查使用的域名。'."\n" + ."\n" + .'- **domain**:域名长度为1~80字符,只能包含字母、数字、半角句号点(.)和短划线(-)。'."\n" + ."\n" + .'> 只有`HealthCheckProtocol`设置为**HTTP**或**HTTPS**时才有该参数。', 'type' => 'string', 'required' => false, 'example' => '$SERVER_IP'], + ], + [ + 'name' => 'HealthCheckCodes', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '幂等Token', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + 'title' => '状态码', + 'description' => '健康检查正常的状态码列表。', + 'type' => 'array', + 'items' => ['description' => '健康检查正常的HTTP状态码。'."\n" + ."\n" + .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http_2xx**(默认值)、 **http_3xx**、**http_4xx**和**http_5xx**,多个状态码用半角逗号(,)分隔。'."\n" ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**,默认值:**0**。支持范围输入,最多支持20个范围值,多个范围值使用半角逗号(,)隔开。'."\n" ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', + .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时才有该参数。', 'type' => 'string', 'required' => false, 'example' => 'http_2xx'], 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******', + 'example' => '5', ], ], + [ + 'name' => 'HealthCheckInterval', + 'in' => 'query', + 'schema' => ['title' => '时间间隔', 'description' => '健康检查的时间间隔。单位:秒。取值范围:**1~50**。默认值:**2**秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'], + ], + [ + 'name' => 'HealthCheckTimeout', + 'in' => 'query', + 'schema' => ['title' => '超时时间', 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端服务器在指定的时间内没有正确响应,则判定为健康检查失败。'."\n" + ."\n" + .'单位:秒。取值范围:**1~300**。默认值:**5**秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '300', 'minimum' => '1', 'example' => '3'], + ], + [ + 'name' => 'HealthCheckPath', + 'in' => 'query', + 'schema' => ['title' => 'uri', 'description' => '用于健康检查的URL。'."\n" + ."\n" + .'长度限制为1~80,只能使用字母、数字和短划线(-)、正斜线(/)、半角句号点(.)、百分号(%)、半角问号(?)、井号(#)、and(&)这些字符以及扩展字符集`_;~!()*[]@$^:\',+`。'."\n" + ."\n" + .'URL必须以正斜线(/)开头。'."\n" + ."\n" + .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时才有该参数。', 'type' => 'string', 'required' => false, 'example' => '/test/index.html'], + ], + [ + 'name' => 'HealthCheckMethod', + 'in' => 'query', + 'schema' => ['title' => '方法', 'description' => '健康检查方法。取值:'."\n" + ."\n" + .'- **HEAD**(默认值):HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" + ."\n" + .'- **GET**:如果响应报文长度超过8K,会被截断,但不会影响健康检查结果的判定。'."\n" + ."\n" + .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" + ."\n\n" + .'> 只有**HealthCheckProtocol**为**HTTP**或**HTTPS**或**gRPC**时才有该参数。', 'type' => 'string', 'required' => false, 'example' => 'HEAD'], + ], + [ + 'name' => 'HealthCheckProtocol', + 'in' => 'query', + 'schema' => ['title' => '协议', 'description' => '健康检查采用的协议。取值:'."\n" + ."\n" + .'- **HTTP**(默认值):通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" + ."\n" + .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" + ."\n" + .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" + ."\n" + .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', 'type' => 'string', 'required' => false, 'example' => 'HTTP'], + ], + [ + 'name' => 'HealthCheckHttpVersion', + 'in' => 'query', + 'schema' => ['title' => '版本', 'description' => '健康检查HTTP协议版本。'."\n" + ."\n" + .'取值:**HTTP1.0**或**HTTP1.1**。'."\n" + ."\n" + .'默认值:**HTTP1.1**。'."\n" + ."\n" + .'> 只有`HealthCheckProtocol`为**HTTP**或**HTTPS**时才有该参数。', 'type' => 'string', 'required' => false, 'example' => 'HTTP1.0'], + ], + [ + 'name' => 'HealthyThreshold', + 'in' => 'query', + 'schema' => ['title' => '健康阈值', 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**失败**判定为**成功**。'."\n" + ."\n" + .'取值范围:**2~10**。'."\n" + ."\n" + .'默认值:**3**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '4'], + ], + [ + 'name' => 'UnhealthyThreshold', + 'in' => 'query', + 'schema' => ['title' => '不健康阈值', 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**成功**判定为**失败**。'."\n" + ."\n" + .'取值范围:**2~10**。'."\n" + ."\n" + .'默认值:**3**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '4'], + ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => 'dryRun', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会在访问控制策略组中添加IP条目。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => 'dryRun', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会修改资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回**http_2xx**状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'HealthCheckTemplateId', + 'in' => 'query', + 'schema' => ['title' => '健康检查模板ID', 'description' => '模板ID。', 'type' => 'string', 'required' => true, 'example' => 'hct-bp1qjwo61******'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '向访问控制策略组中添加IP条目。', + 'description' => '更新健康检查模板属性。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => 'job', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34******', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceAlreadyExist.AclEntry', - 'errorMessage' => 'The specified resource %s already exists.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.AclEntriesNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'IncorrectStatus.Acl', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ListenerAclEntriesNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.LoadBalancerAclEntriesNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], + ['errorCode' => 'IncorrectStatus.HealthCheckTemplate', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的状态无效。'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Acl', - 'errorMessage' => 'The specified resource %s is not found.', + 403 => [ + ['errorCode' => 'Forbidden.HealthCheckTemplate', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '健康检查模版操作鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.HealthCheckTemplate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + 'title' => '更新健康检查模板的属性', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateHealthCheckTemplateAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthchecktemplateId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', - 'title' => '添加访问控制条目', - 'description' => '- 每个策略组可包含多个IP地址条目或IP地址段条目,访问控制策略组的条目限制如下: '."\n" - ."\n" - .' - 单账号每次可添加的IP地址条目个数:20 '."\n" - .' - 每个访问控制策略组可包含的条目个数:500'."\n" - .'- **AddEntriesToAcl**接口属于异步接口,即系统返回一个请求ID,但该访问控制策略组尚未成功添加IP条目,系统后台的添加任务仍在进行。您可以调用[ListAclEntries](~~213616~~)查询IP条目的添加状态:'."\n" - .' - 当访问控制策略组处于**Adding**状态时,表示IP条目正在添加中。'."\n" - .' - 当访问控制策略组处于**Available**状态时,表示IP条目添加成功。', ], - 'CreateAcl' => [ - 'summary' => '在指定地域创建访问控制。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateListenerAttribute' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -19627,87 +12172,294 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeCode' => '131', - 'abilityTreeNodes' => [ - 'FEATUREslbAYSA83', - ], - 'tenantRelevance' => 'publicInformation', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '187', + 'abilityTreeNodes' => ['FEATUREslbM7ALO6', 'FEATUREslbK3ZR0L', 'FEATUREslbN5IE4S'], ], 'parameters' => [ [ - 'name' => 'AclName', + 'name' => 'ListenerId', + 'in' => 'query', + 'schema' => ['title' => '监听标识', 'description' => '应用型负载均衡实例监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******'], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求。取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会更新监听的配置。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'ListenerDescription', + 'in' => 'query', + 'schema' => ['title' => '监听描述', 'description' => '自定义监听名称。'."\n" + ."\n" + .'长度为2\\~256个字符,可包含英文字母、数字、中文、半角逗号(,)、半角句号(.)、半角分号(;)、正斜线(/)、at(@)、下划线(_)和短划线(-)。', 'type' => 'string', 'required' => false, 'example' => 'HTTP_80'], + ], + [ + 'name' => 'RequestTimeout', + 'in' => 'query', + 'schema' => ['title' => '请求超时时间', 'description' => '指定请求超时时间。单位:秒。取值范围:**1~180**。'."\n" + ."\n" + .'如果在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回`HTTP 504`错误码。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '3'], + ], + [ + 'name' => 'IdleTimeout', + 'in' => 'query', + 'schema' => ['title' => '连接空闲超时时间', 'description' => '指定连接空闲超时时间。单位:秒。取值范围:**1~60**。'."\n" + ."\n" + .'如果在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到下一次请求来临时重新建立新的连接。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '15'], + ], + [ + 'name' => 'GzipEnabled', + 'in' => 'query', + 'schema' => ['title' => '是否开启Gzip压缩', 'description' => '是否开启Gzip压缩,对特定文件类型进行压缩。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'Http2Enabled', + 'in' => 'query', + 'schema' => ['title' => '是否开启HTTP/2特性', 'description' => '是否开启HTTP/2特性。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'SecurityPolicyId', + 'in' => 'query', + 'schema' => ['title' => '安全策略', 'description' => '安全策略,支持系统安全策略和自定义安全策略。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'required' => false, 'example' => 'tls_cipher_policy_1_0'], + ], + [ + 'name' => 'CaEnabled', + 'in' => 'query', + 'schema' => ['title' => '是否开启双向认证', 'description' => '是否开启双向认证。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'XForwardedForConfig', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => 'Acl名称', - 'description' => 'ACL的名称。必须以大小写字母或中文开头,可包含数字,半角句号(.),下划线(_)和短划线(-),限制长度为2~128个字符。', - 'type' => 'string', + 'title' => 'XForward字段相关的配置', + 'description' => 'XForwardedFor相关属性配置。', + 'type' => 'object', + 'properties' => [ + 'XForwardedForClientCertClientVerifyAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertClientVerifyEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头字段名称,只有当**XForwardedForClientCertClientVerifyEnabled**的值为**true**时,此值才会生效。'."\n" + ."\n" + .'取值限制:长度1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'required' => false, 'example' => 'test_client-verify-alias_123456'], + 'XForwardedForClientCertClientVerifyEnabled' => ['title' => '是否通过X-Forwarded-Clientcert-clientverify 头字段获取对访问负载均衡实例客户端证书的校验结果。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-clientverify`头字段获取对访问负载均衡实例客户端证书的校验结果。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForClientCertFingerprintAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertFingerprintEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头字段名称,只有当**XForwardedForClientCertFingerprintEnabled**的值为**true**时生效。'."\n" + ."\n" + .'取值限制:长度为1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'required' => false, 'example' => 'test_finger-print-alias_123456'], + 'XForwardedForClientCertFingerprintEnabled' => ['title' => '是否通过X-Forwarded-Clientcert-fingerprint 头字段获取访问负载均衡实例客户端证书的指纹取值,HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-fingerprint`头字段获取访问负载均衡实例客户端证书的指纹取值。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForClientCertIssuerDNAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertIssuerDNEnabled的值为‘On’的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头字段名称,只有当**XForwardedForClientCertIssuerDNEnabled**的值为**true**时才生效。'."\n" + ."\n" + .'取值限制:长度为1\\~40个字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'required' => false, 'example' => 'test_issue-dn-alias_123456'], + 'XForwardedForClientCertIssuerDNEnabled' => ['title' => '是否通过 X-Forwarded-Clientcert-issuerdn 头字段获取访问负载均衡实例客户端证书的发行者信息。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-issuerdn`头字段获取访问负载均衡实例客户端证书的发行者信息。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForClientCertSubjectDNAlias' => ['title' => '自定义HEADER头名称,只有当XForwardedForClientCertSubjectDNEnabled的值为true的时候,此值才会生效;否则该值不会生效。HTTPS监听有效', 'description' => '自定义头字段名称,只有当**XForwardedForClientCertSubjectDNEnabled**的值为**true**时才生效。'."\n" + ."\n" + .'取值限制:长度为1\\~40字符。支持字母a~z、短划线(-)、下划线(_)和数字。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'string', 'required' => false, 'example' => 'test_subject-dn-alias_123456'], + 'XForwardedForClientCertSubjectDNEnabled' => ['title' => '是否通过X-Forwarded-Clientcert-subjectdn 头字段获取访问负载均衡实例客户端证书的所有者信息。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Clientcert-subjectdn`头字段获取访问负载均衡实例客户端证书的所有者信息。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForClientSrcPortEnabled' => ['title' => '是否通过X-Forwarded-Client-Port 头字段获取访问负载均衡实例客户端的端口。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Client-srcport`头字段获取访问负载均衡实例客户端的端口。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP和HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForEnabled' => ['title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP', 'description' => '是否通过`X-Forwarded-For`头字段获取来访者真实IP。取值:'."\n" + .'- **true**(默认值):是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 1. 配置**true**,**XForwardedForProcessingMode**默认取值**append**,支持修改为**remove**。'."\n" + .'> 2. 配置**false**,将请求发送至后端服务之前保留`X-Forwarded-For`头字段,不做额外处理。'."\n" + .'> 3. HTTP和HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'XForwardedForProcessingMode' => ['description' => '处理`X-Forwarded-For`头字段的模式。只有当**XForwardedForEnabled**为**true**时,此值才会生效。取值:'."\n" + .'- **append**(默认值):附加。'."\n" + .'- **remove**:删除。'."\n" + ."\n" + .'> 1. 配置**append**,将请求发送至后端服务之前把最后一跳IP加入`X-Forwarded-For`头字段。'."\n" + .'> 2. 配置**remove**,将请求发送至后端服务之前删除`X-Forwarded-For`标头,无论请求是否携带`X-Forwarded-For`头字段。'."\n" + .'> 3. HTTP和HTTPS监听支持此参数。', 'type' => 'string', 'required' => false, 'example' => 'append'], + 'XForwardedForProtoEnabled' => ['title' => '是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。', 'description' => '是否通过`X-Forwarded-Proto`头字段获取负载均衡实例的监听协议。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForSLBIdEnabled' => ['title' => '是否通过SLB-ID头字段获取负载均衡实例ID。', 'description' => '是否通过`SLB-ID`头字段获取负载均衡实例ID。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForSLBPortEnabled' => ['title' => '是否通过X-Forwarded-Port 头字段获取负载均衡实例的监听端口。HTTPS监听有效。', 'description' => '是否通过`X-Forwarded-Port`头字段获取负载均衡实例的监听端口。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForClientSourceIpsEnabled' => ['description' => '是否允许ALB从X-Forwarded-For头字段中查找真实客户端IP。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> HTTP、HTTPS监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'XForwardedForClientSourceIpsTrusted' => ['description' => '指定可信的代理IP。'."\n" + ."\n" + .'应用型负载均衡ALB会从后往前遍历`X-Forwarded-For`,选取第一个不在可信IP列表中的IP作为真实的客户端IP,该IP会被用于源IP限速。', 'type' => 'string', 'required' => false, 'example' => '10.1.1.0/24'], + 'XForwardedForHostEnabled' => ['description' => '是否开启通过`X-Forwarded-Host`头字段获取访问负载均衡实例客户端的域名。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> HTTP、HTTPS和QUIC监听支持此参数。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], 'required' => false, - 'example' => 'test-acl', ], ], [ - 'name' => 'ClientToken', + 'name' => 'QuicConfig', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '幂等Token', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', + 'title' => 'HTTPS启用QUIC时相关属性', + 'description' => '启用关联QUIC监听时的配置信息。', + 'type' => 'object', + 'properties' => [ + 'QuicListenerId' => ['title' => '需要关联的QUIC监听ID,HTTPS监听时有效,QuicUpgradeEnabled为true时必选', 'description' => '需要关联的QUIC监听ID。**QuicUpgradeEnabled**值为**true**时必选。HTTPS监听时有效。'."\n" + ."\n" + .'> 原始监听和关联的QUIC监听必须属于同一个ALB实例,并且此QUIC监听之前没有被关联过。', 'type' => 'string', 'required' => false, 'example' => 'lsn-333'], + 'QuicUpgradeEnabled' => ['title' => '是否开启quic升级,HTTPS监听时有效', 'description' => '是否开启QUIC升级。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅HTTPS监听时有效。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3*****', ], ], [ - 'name' => 'DryRun', + 'name' => 'Certificates', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => 'dryRun', - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会创建访问控制策略组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', + 'title' => '监听默认服务器证书列表,N当前取值范围为1', + 'description' => '证书列表。', + 'type' => 'array', + 'items' => [ + 'description' => '证书结构。', + 'type' => 'object', + 'properties' => [ + 'CertificateId' => ['title' => '正式标识', 'description' => '默认证书ID,目前仅支持添加 1 个默认服务器证书。'."\n" + ."\n" + .'> - 监听协议类型为**HTTPS**或**QUIC**时,此参数为必填。'."\n" + .'> - 如需更多服务器证书,可在创建监听后调用[AssociateAdditionalCertificatesWithListener](~~2254830~~)配置扩展证书。', 'type' => 'string', 'required' => false, 'example' => '123157******'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'true', + 'maxItems' => 2, + 'minItems' => 1, ], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'CaCertificates', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '资源组Id', - 'description' => '资源组ID。', - 'type' => 'string', + 'title' => '监听默认CA证书列表,N当前取值范围为1', + 'description' => 'CA证书列表。目前仅支持添加1个CA证书。', + 'type' => 'array', + 'items' => [ + 'description' => 'CA证书结构。', + 'type' => 'object', + 'properties' => [ + 'CertificateId' => ['title' => '正式标识', 'description' => 'CA证书ID。'."\n" + ."\n" + .'> 当**CaEnabled**参数取值为**true**的时候,此参数为必填。', 'type' => 'string', 'required' => false, 'example' => '123359******'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'rg-atstuj3rtop****', + 'maxItems' => 1, + 'minItems' => 1, ], ], [ - 'name' => 'Tag', + 'name' => 'DefaultActions', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'description' => '标签。', + 'title' => '监听默认动作', + 'description' => '默认规则动作列表。', 'type' => 'array', 'items' => [ - 'description' => '标签结构。', + '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', + 'ForwardGroupConfig' => [ + 'title' => '转发组', + 'description' => '转发动作对应的配置,**Type**类型为**ForwardGroup**时必填且有效。最多支持添加20个转发动作对应的配置。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'title' => '服务器组列表', + 'description' => '转发目标服务器元组列表。', + 'type' => 'array', + 'items' => [ + 'description' => '转发目标服务器元组结构。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['title' => '服务器组ID', 'description' => '转发到的目的服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-i5qt20******'], + ], + 'required' => false, + ], + 'required' => true, + ], + ], 'required' => false, - 'example' => 'product', ], + 'Type' => ['title' => '动作类型', 'description' => '动作类型。最多支持添加1个动作类型。'."\n" + ."\n" + .'取值:**ForwardGroup**,表示转发至多个服务器组。', 'type' => 'string', 'required' => true, 'example' => 'ForwardGroup'], ], 'required' => false, ], @@ -19719,65 +12471,72 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '创建访问控制。', + 'description' => '返回数据结构体。', 'type' => 'object', 'properties' => [ - 'AclId' => [ - 'title' => 'AclId', - 'description' => 'ACL实例ID。', - 'type' => 'string', - 'example' => 'acl-hp34s2h0xx1ht4nwo****', - ], - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876******', - ], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'QuotaExceeded.AclsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'NotExist.ResourceGroup', - 'errorMessage' => 'ResourceGroup does not exist.', - ], + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'OperationDenied.CrossLoadBalancerQUICListener', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'ResourceAlreadyAssociated.Listener', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => '资源%s已被关联。'], + ['errorCode' => 'OperationDenied.GRPCServerGroup', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是存在绑定本GRPC服务器组的监听没有启用HTTP2.0。'], + ['errorCode' => 'ResourceAlreadyAssociated.Certificate', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => '证书已被关联。'."\n"], + ['errorCode' => 'ResourceQuotaExceeded.SecurityPolicyAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ['errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器组可被关联数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '后端服务器数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器添加到组已超额度限制。'], + ['errorCode' => 'OperationDenied.ServerGroupProtocolNotSupport', 'errorMessage' => 'The operation is not allowed because of ServerGroupProtocolNotSupport.', 'description' => '操作被拒绝,原因是ServerGroupProtocolNotSupport。'], + ['errorCode' => 'UnsupportedFeature.FullTraceHttps', 'errorMessage' => 'The feature of FullTraceHttps is not supported for current instance.', 'description' => '当前实例版本不支持全链路HTTPS特性。'], + ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => '指定的资源%s正在配置中,请稍后再试。'], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Invalid parameter, please check the parameter input.', 'description' => '无效参数,请检查参数输入。'], + ['errorCode' => 'OperationDenied.CACertificateCorrupted', 'errorMessage' => 'The CA certificate is corrupted.', 'description' => 'CA证书已经损坏'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.Acl', - 'errorMessage' => 'ACL authentication has failed.', + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], + ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.Certificate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '更新监听的配置', + 'summary' => '更新监听的配置,如名称、默认动作等。', + 'description' => '**UpdateListenerAttribute**接口属于异步接口,即系统返回一个请求ID,但该监听的配置尚未更新成功,系统后台的更新任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询监听的配置的更新状态:'."\n" + .'- 当监听器处于**Configuring**状态时,表示监听的配置正在更新中。'."\n" + .'- 当监听器处于**Running**状态时,表示监听的配置更新成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateListenerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclId\\": \\"acl-hp34s2h0xx1ht4nwo****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n nacl-hp34s2h0xx1ht4nwo****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => '创建访问控制', - 'description' => '**CreateAcl**接口属于异步接口,即系统返回一个实例ID,但该访问控制策略组尚未创建成功,系统后台的创建任务仍在进行。您可以调用[ListAcls](~~213617~~)查询访问控制策略组的创建状态:'."\n" - .'- 当访问控制策略组处于**Creating**状态时,表示访问控制策略组正在创建中。'."\n" - .'- 当访问控制策略组处于**Available**状态时,表示访问控制策略组创建成功。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', ], - 'DeleteAcl' => [ - 'summary' => '删除指定的访问控制。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateListenerLogConfig' => [ + 'summary' => '更新监听日志相关属性,如访问日志等。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -19785,49 +12544,66 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'AclId', + 'name' => 'ListenerId', 'in' => 'query', - 'schema' => [ - 'title' => '访问控制策略id', - 'description' => 'ACL实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'acl-hp34s2h0xx1ht4nwo****', - ], + 'schema' => ['title' => '监听标识', 'description' => '应用型负载均衡实例监听ID。', 'type' => 'string', 'required' => true, 'example' => 'lsn-o4u54y73wq7b******'], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '幂等Token', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******'], ], [ 'name' => 'DryRun', 'in' => 'query', + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会更新监听的日志配置。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回**HTTP_2xx**状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'AccessLogRecordCustomizedHeadersEnabled', + 'in' => 'query', + 'schema' => ['title' => '是否开启携带自定义Header', 'description' => '访问日志是否开启携带自定义头字段。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> 只有实例访问日志开关**AccessLogEnabled**打开时,才能设置此参数为**true**。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'AccessLogTracingConfig', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => 'DryRun', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会删除访问控制。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - ."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。'."\n", - 'type' => 'boolean', + 'title' => '访问日志xtrace字段相关的配置', + 'description' => 'Xtrace配置信息。', + 'type' => 'object', + 'properties' => [ + 'TracingEnabled' => ['title' => 'Xtrace功能状态', 'description' => 'Xtrace功能状态。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。'."\n" + ."\n" + .'> 只有实例访问日志开关**AccessLogEnabled**打开时,才能设置此参数为**true**。', 'type' => 'boolean', 'required' => true, 'example' => 'true'], + 'TracingSample' => ['title' => 'xtrace的采样率', 'description' => 'Xtrace采样率。'."\n" + ."\n" + .'取值范围:**1~10000**。'."\n" + ."\n" + .'> **TracingEnabled**为**true**时有效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + 'TracingType' => ['title' => 'xtrace的类型', 'description' => 'Xtrace类型,取值为**Zipkin**。'."\n" + ."\n" + .'> **TracingEnabled**为**true**时有效。', 'type' => 'string', 'required' => false, 'example' => 'Zipkin'], + ], 'required' => false, - 'example' => 'true', ], ], ], @@ -19835,65 +12611,51 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '删除访问控制。', + 'description' => '更新监听的日志配置。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876******', - ], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceInUse.Acl', - 'errorMessage' => 'The specified resource %s is in use.', - ], - [ - 'errorCode' => 'IncorrectStatus.Acl', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectStatus.Listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'OperationDenied.AccessLogDisabled', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,实例未开启访问日志。'."\n"], + ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => '指定的资源%s正在配置中,请稍后再试。'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.Acl', - 'errorMessage' => 'Authentication is failed for %s.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '监听不存在。'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.Acl', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => '更新监听日志相关属性', + 'description' => '**UpdateListenerLogConfig**接口属于异步接口,即系统返回一个请求ID,但该监听的日志配置尚未更新成功,系统后台的更新任务仍在进行。您可以调用[GetListenerAttribute](~~2254865~~)查询监听的日志配置的更新状态:'."\n" + .'- 当监听器处于**Configuring**状态时,表示监听的日志配置正在更新中。'."\n" + .'- 当监听器处于**Running**状态时,表示监听的日志配置更新成功。'."\n" + .'> 只有开启实例访问日志后,才能更新监听的日志配置。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateListenerLogConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => '删除访问控制', - 'description' => '**DeleteAcl**接口属于异步接口,即系统返回一个请求ID,但该访问控制尚未删除成功,系统后台的删除任务仍在进行。您可以调用[ListAcls](~~213617~~)查询访问控制的删除状态:'."\n" - .'- 当访问控制处于**Deleting**状态时,表示访问控制正在删除中。'."\n" - .'- 当查询不到该访问控制实例的状态时,表示访问控制删除成功。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', ], - 'UpdateAclAttribute' => [ - 'summary' => '更新访问控制的属性,如名称。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateLoadBalancerAddressTypeConfig' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -19903,56 +12665,81 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '86743', + 'abilityTreeNodes' => ['FEATUREslbSUND48', 'FEATUREslbXJYU12'], ], 'parameters' => [ [ 'name' => 'ClientToken', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '幂等参数', - 'description' => '保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'], ], [ - 'name' => 'AclId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => 'AclId', - 'description' => 'ACL实例ID', - 'type' => 'string', - 'required' => true, - 'example' => 'acl-hp34s2h0xx1ht4nwo****', - ], + 'schema' => ['title' => '是否只预检此次请求', 'description' => '是否只预检此次请求。取值:'."\n" + .'- **true**:发送检查请求,不会更新实例的网络类型。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'string', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'AclName', + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => ['title' => '实例id', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-bp1o94dp5i6ea****'], + ], + [ + 'name' => 'AddressType', + 'in' => 'query', + 'schema' => ['title' => '目标网络类型', 'description' => '目标网络类型。取值:'."\n" + ."\n" + .'- **Internet**:负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。'."\n" + ."\n" + .'- **Intranet**:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。', 'type' => 'string', 'required' => true, 'example' => 'Internet'], + ], + [ + 'name' => 'ZoneMappings', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '访问控制策略名称', - 'description' => 'ACL的名称。必须以大小写字母或中文开头,可包含数字,半角句号(.),下划线(_)和短划线(-),限制长度为2~128个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'test-acl', + 'title' => '可用区及交换机映射列表', + 'description' => '可用区及交换机映射列表,最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', + 'type' => 'array', + 'items' => [ + 'description' => '可用区及交换映射列表结构体。', + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['title' => '交换机标识', 'description' => '可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', 'type' => 'string', 'required' => false, 'example' => 'vsw-bp10ttov87felojcn****'], + 'ZoneId' => ['title' => '可用区', 'description' => '应用型负载均衡实例的可用区ID。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。'."\n" + ."\n" + .'您可以通过调用[DescribeZones](~~189196~~)接口获取可用区ID对应的可用区信息。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou-a'], + 'AllocationId' => ['title' => '弹性公网IP', 'description' => '弹性公网IP实例ID。最多支持添加10个可用区。'."\n" + ."\n" + .'> 调用此接口由私网转换为公网时,需要输入此参数。', 'type' => 'string', 'required' => false, 'example' => 'eip-bp1aedxso6u80u0qf****'], + 'EipType' => ['title' => '弹性公网IP类型', 'description' => '弹性公网IP的类型。取值:'."\n" + ."\n" + .'- Common(默认值):弹性公网IP。'."\n" + ."\n" + .'- Anycast:任播弹性公网IP。'."\n" + ."\n" + .'> ALB支持绑定Anycast EIP的地域,请参见[使用限制](~~460727~~)。', 'type' => 'string', 'required' => false, 'example' => 'Common'], + ], + 'required' => false, + ], + 'required' => false, ], ], [ - 'name' => 'DryRun', + 'name' => 'RetainResourceType', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '是否预校验请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP `2xx`状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'type' => 'array', + 'items' => ['type' => 'string', 'example' => 'eip'], ], ], ], @@ -19960,161 +12747,126 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '异步任务ID结构', + 'description' => '返回数据结构体。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876F******', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'], + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Conflict.Acl', - 'errorMessage' => 'There is already %s having the same configuration with %s.', - ], - [ - 'errorCode' => 'IncorrectStatus.Acl', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], + ['errorCode' => 'OperationDenied.OnlyPostPaidEipSupported', 'errorMessage' => 'The operation is not allowed because of OnlyPostPaidEipSupported.', 'description' => '操作被拒绝,原因是只支持后付费类型的弹性公网IP。'], + ['errorCode' => 'Mismatch.ZoneIdAndVSwitchId', 'errorMessage' => 'The ZoneId and VSwitchId are mismatched.', 'description' => '可用区ID和交换机ID不匹配。'], + ['errorCode' => 'IncorrectBusinessStatus.Eip', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'ResourceNotFound.Eip', 'errorMessage' => 'The specified resource ResourceNotFound.Eip is not found.', 'description' => '资源弹性公网IP不存在。'], + ['errorCode' => 'IncorrectStatus.CommonBandwidthPackage', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的状态无效。'], + ['errorCode' => 'IncorrectBusinessStatus.CommonBandwidthPackage', 'errorMessage' => 'The business status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'OperationDenied.AddressTypeNotChanged', 'errorMessage' => 'The operation is not allowed because of AddressTypeNotChanged.', 'description' => '该负载均衡实例的网络类型未变更'], + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Acl', - 'errorMessage' => 'The specified resource %s is not found.', - ], + ['errorCode' => 'ResourceNotFound.CommonBandwidthPackage', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876F******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => '更新访问控制的属性', - ], - 'ListAcls' => [ - 'summary' => '查询某一个地域的访问控制列表。', - 'methods' => [ - 'get', - 'post', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'title' => '变更负载均衡实例的网络类型配置', + 'summary' => '变更应用型负载均衡实例的网络类型。', + 'description' => '前提条件:'."\n" + ."\n" + .'- 您已经创建应用型负载均衡实例,具体操作,请参见[CreateLoadBalancer](~~214358~~)。'."\n" + .'- 当您需要通过此接口将应用型负载均衡实例的网络类型由私网变为公网时,您需要先创建一个弹性公网IP。具体操作,请参见[AllocateEipAddress](~~120192~~)。'."\n" + ."\n" + .'使用说明:'."\n" + ."\n" + .'**UpdateLoadBalancerAddressTypeConfig**接口属于异步接口,即系统返回一个请求ID,但该应用型负载均衡实例的网络类型尚未变更成功,系统后台的变更任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询应用型负载均衡实例的网络类型的变更状态:'."\n" + .'- 当应用型负载均衡实例处于**Configuring**状态时,表示应用型负载均衡实例的网络类型正在变更中。'."\n" + .'- 当应用型负载均衡实例处于**Active**状态时,表示应用型负载均衡实例的网络类型变更成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateLoadBalancerAddressTypeConfig', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'alb:AddressType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + ], + 'UpdateLoadBalancerAttribute' => [ + 'summary' => '更新负载均衡实例属性,如名称、修改保护等。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'AclIds', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '访问控制策略Id', - 'description' => '根据ACL ID来过滤查找ACL列表。一次最多支持查询20个ACL ID。', - 'type' => 'array', - 'items' => [ - 'description' => 'ACL ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'acl-hp34s2h0xx1ht4nwo****', - ], - 'required' => false, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'AclNames', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '访问控制策略名称', - 'description' => 'ACL名称列表。一次最多支持查询10个ACL名称。', - 'type' => 'array', - 'items' => [ - 'description' => 'ACL名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test-acl', - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '资源组ID', - 'description' => '资源组ID,根据设置的资源组ID来过滤。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtopty****', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会修改应用型负载均衡实例的属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'NextToken', + 'name' => 'LoadBalancerId', 'in' => 'query', - 'schema' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['title' => '实例id', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hgn68jk****'], ], [ - 'name' => 'MaxResults', + 'name' => 'LoadBalancerName', 'in' => 'query', - 'schema' => [ - 'title' => '查询数量', - 'description' => '本次读取的最大数据记录数量,此参数为可选参数。取值范围:**1**~**100**。默认值:**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '50', - 'default' => '20', - ], + 'schema' => ['title' => '名称', 'description' => '应用型负载均衡实例的名称,长度为2~128个英文或中文字符,必须以字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格。', 'type' => 'string', 'required' => false, 'example' => 'alb-instance-test'], ], [ - 'name' => 'Tag', + 'name' => 'ModificationProtectionConfig', 'in' => 'query', '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, + 'title' => '负载均衡修改保护相关信息', + 'description' => '修改保护配置。', + 'type' => 'object', + 'properties' => [ + 'Reason' => ['title' => '设置修改保护状态的原因', 'description' => '开启修改保护配置的原因。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。'."\n" + ."\n" + .'仅在**Status**为**ConsoleProtection**时有效且合法。', 'type' => 'string', 'required' => false, 'example' => 'Managed Instance'], + 'Status' => ['title' => '负载均衡修改保护状态', 'description' => '应用型负载均衡实例的修改保护状态。取值:'."\n" + ."\n" + .'- **NonProtection**:不开启修改保护。如有配置**Reason**,**Reason**会被强制置空。'."\n" + ."\n" + .'- **ConsoleProtection**:开启控制台修改保护。如有配置**Reason**,**Reason**可生效。'."\n" + ."\n" + .'> 当取值为**ConsoleProtection**,即开启修改保护后,用户不能通过负载均衡控制台修改实例配置,但可以通过调用API修改实例配置。', 'type' => 'string', 'required' => false, 'example' => 'ConsoleProtection'], ], 'required' => false, ], @@ -20124,290 +12876,142 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构', + 'description' => '更新负责均衡实例属性。', 'type' => 'object', 'properties' => [ - 'Acls' => [ - 'title' => '访问控制列表', - 'description' => 'ACL列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'ACL结构。', - 'type' => 'object', - 'properties' => [ - 'AclId' => [ - 'title' => '访问控制策略id', - 'description' => 'ACL ID。', - 'type' => 'string', - 'example' => 'acl-hp34s2h0xx1ht4nwo****', - ], - 'AclName' => [ - 'title' => '访问控制策略名称', - 'description' => 'ACL名称。', - 'type' => 'string', - 'example' => 'test-acl', - ], - 'AclStatus' => [ - 'title' => '状态', - 'description' => 'ACL状态。取值:'."\n" - .'- **Creating**:创建中。'."\n" - .'- **Available**:正常可用状态。'."\n" - .'- **Configuring**:配置中。', - 'type' => 'string', - 'example' => 'Available', - ], - 'AddressIPVersion' => [ - 'title' => 'IP版本', - 'description' => 'ACL IP版本。取值:**IPv4**。'."\n", - 'type' => 'string', - 'example' => 'IPv4', - ], - 'ResourceGroupId' => [ - 'title' => '资源组ID', - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-atstuj3rtopty****', - ], - 'ConfigManagedEnabled' => [ - 'title' => '配置管理', - 'description' => '配置管理开关。取值:'."\n" - ."\n" - .'- **true**:开启配置管理。'."\n" - ."\n" - .'- **false**:未开启配置管理。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'CreateTime' => [ - 'description' => 'ACL创建时间,格式为:`YYYY-MM-DDThh:mm:ssZ`。', - 'type' => 'string', - 'example' => '2023-02-15T07:37:33Z', - ], - 'Tags' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签结构。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', - 'type' => 'string', - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。最多支持128个字符,不能以aliyun或acs:开头,不能包含http://或https://。', - 'type' => 'string', - 'example' => 'product', - ], - ], - ], - ], - ], - ], - ], - 'MaxResults' => [ - 'title' => '本次查询返回记录数量', - 'description' => '本次读取的最大数据记录数量,此参数为可选参数,取值**1**~**100**。参数传入为空时,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'NextToken' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70t****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF******', - ], - 'TotalCount' => [ - 'title' => '总记录数', - 'description' => '本次请求条件下的数据总量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], + 'JobId' => ['title' => '异步任务id', 'description' => '同步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ], 403 => [ - [ - 'errorCode' => 'Forbidden.Acl', - 'errorMessage' => 'ACL authentication has failed.', + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], + ], + [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => '更新负载均衡实例属性', + 'description' => '**UpdateLoadBalancerAttribute**接口属于异步接口,即系统返回一个请求ID,但该应用型负载均衡实例属性尚未修改成功,系统后台的修改任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询应用型负载均衡实例属性的修改状态:'."\n" + .'- 当应用型负载均衡实例属性处于**Configuring**状态时,表示应用型负载均衡实例属性正在修改中。'."\n" + .'- 当应用型负载均衡实例属性处于**Active**状态时,表示应用型负载均衡实例属性修改成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateLoadBalancerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Acls\\": [\\n {\\n \\"AclId\\": \\"acl-hp34s2h0xx1ht4nwo****\\",\\n \\"AclName\\": \\"test-acl\\",\\n \\"AclStatus\\": \\"Available\\",\\n \\"AddressIPVersion\\": \\"IPv4\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtopty****\\",\\n \\"ConfigManagedEnabled\\": false,\\n \\"CreateTime\\": \\"2023-02-15T07:37:33Z\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70t****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\",\\n \\"TotalCount\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n \\n nacl-hp34s2h0xx1ht4nwo****\\n test-acl\\n Available\\n IPv4\\n rg-atstuj3rtopty****\\n false\\n 2023-02-15T07:37:33Z\\n \\n 20\\n FFmyTO70t****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n 10\\n","errorExample":""}]', - 'title' => '查询访问控制列表', ], - 'ListAclEntries' => [ - 'summary' => '查询指定访问控制的条目。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateLoadBalancerEdition' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'NextToken', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ - 'name' => 'MaxResults', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '查询数量', - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '50', - 'default' => '20', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会修改应用型负载均衡版本。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行修改。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'AclId', + 'name' => 'LoadBalancerId', 'in' => 'query', - 'schema' => [ - 'title' => '访问控制策略Id', - 'description' => 'ACL实例ID', - 'type' => 'string', - 'required' => true, - 'example' => 'acl-hp34s2h0xx1ht4nwo****', - ], + 'schema' => ['title' => '实例Id', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-bp1b6c719dfa08ex****'], + ], + [ + 'name' => 'LoadBalancerEdition', + 'in' => 'query', + 'schema' => ['title' => '实例版本', 'description' => '应用型负载均衡的版本,不同版本有不同功能限制和计费策略。'."\n" + ."\n" + .'- **Basic**:基础版。'."\n" + ."\n" + .'- **Standard**:标准版。'."\n" + ."\n" + .'- **StandardWithWaf**:WAF增强版。', 'type' => 'string', 'required' => true, 'example' => 'Standard'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回数据结构。', + 'description' => '修改负载均衡版本。', 'type' => 'object', 'properties' => [ - 'AclEntries' => [ - 'title' => '访问控制列表', - 'description' => '访问控制条目列表。', - 'type' => 'array', - 'items' => [ - 'description' => '访问控制条目结构。', - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'title' => '描述信息', - 'description' => '访问控制条目备注描述,长度限制为1~256个字符,允许包含字母、数字、短划线(-)、正斜线(/)、半角句号(.)和下划线(_),支持中文字符。', - 'type' => 'string', - 'example' => 'test-entry', - ], - 'Entry' => [ - 'title' => 'IP条目', - 'description' => '访问控制条目IP地址段。', - 'type' => 'string', - 'example' => '10.0.1.1/24', - ], - 'Status' => [ - 'title' => '状态', - 'description' => 'ACL条目状态,取值:'."\n" - .'- **Adding**:添加中。'."\n" - .'- **Available**:添加成功,可用状态。'."\n" - .'- **Removing**:移除中。', - 'type' => 'string', - 'example' => 'Available', - ], - ], - ], - ], - 'MaxResults' => [ - 'title' => '本次查询返回记录数量', - 'description' => '分批次查询时每次显示的条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'NextToken' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F87******', - ], - 'TotalCount' => [ - 'title' => '总记录数', - 'description' => '本次请求条件下返回的总数据记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3'], ], ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden.Acl', - 'errorMessage' => 'ACL authentication has failed.', - ], + 400 => [ + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'OperationDenied.Downgrade', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'OperationDenied.EditionNotChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是版本未变化。'."\n"], ], - [ - [ - 'errorCode' => 'ResourceNotFound.Acl', - 'errorMessage' => 'The specified resource %s is not found.', + 404 => [ + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'title' => '变更负载均衡版本', + 'summary' => '变更当前负载均衡版本。', + 'description' => '- ALB实例仅支持基础版升级为标准版和WAF增强版,WAF增强版变更为标准版,不支持标准版和WAF增强版变更为基础版。具体操作,请参见[升级实例功能版本](~~214654~~)。'."\n" + .'- **UpdateLoadBalancerEdition**接口属于异步接口,即系统返回一个请求ID,但该应用型负载均衡版本尚未修改成功,系统后台的修改任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询应用型负载均衡版本的修改状态:'."\n" + .' - 当应用型负载均衡版本处于**Configuring**状态时,表示应用型负载均衡版本正在修改中。'."\n" + .' - 当应用型负载均衡版本处于**Active**状态时,表示应用型负载均衡版本修改成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateLoadBalancerEdition', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclEntries\\": [\\n {\\n \\"Description\\": \\"test-entry\\",\\n \\"Entry\\": \\"10.0.1.1/24\\",\\n \\"Status\\": \\"Available\\"\\n }\\n ],\\n \\"MaxResults\\": 50,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F87******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n \\n test-entry\\n 10.0.1.1/24\\n Available\\n \\n 50\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 1000\\n","errorExample":""}]', - 'title' => '查询访问控制条目', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', ], - 'AssociateAclsWithListener' => [ - 'summary' => '将访问控制关联到监听。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateLoadBalancerZones' => [ + 'summary' => '修改应用型负载均衡实例可用区属性。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -20416,82 +13020,73 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeCode' => '161', - 'abilityTreeNodes' => [ - 'FEATUREslbAYSA83', - ], + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '198', + 'abilityTreeNodes' => ['FEATUREslb9RALVR', 'FEATUREslbFTB0NK'], ], 'parameters' => [ [ - 'name' => 'AclIds', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '访问控制策略Id', - 'description' => 'ACL实例ID,最多支持3个ACL实例ID。', - 'type' => 'array', - 'items' => [ - 'description' => 'ACL实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'acl-hp34s2h0xx1ht4nwo****', - ], - 'required' => true, - 'maxItems' => 20, - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ - 'name' => 'ListenerId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '监听Id', - 'description' => '监听实例ID', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn9*******', - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会修改应用型负载均衡实例可用区属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP_2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'AclType', + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => ['title' => '实例id', 'description' => '应用型负载均衡实例ID。', 'type' => 'string', 'required' => true, 'example' => 'alb-o9ulmq5hfn68jk****'], + ], + [ + 'name' => 'ZoneMappings', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '绑定类型', - 'description' => '访问控制类型:'."\n" - ."\n" - .'- **White**: 仅转发来自所选访问控制策略组中设置的IP地址或地址段的请求,白名单适用于只允许特定IP访问的场景。设置白名单存在一定业务风险。一旦设置白名单,就只有白名单中的IP可以访问负载均衡监听。如果开启了白名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。'."\n" - .'- **Black**: 来自所选访问控制策略组中设置的IP地址或地址段的所有请求都不会转发,黑名单适用于只限制某些特定IP访问的场景。如果开启了黑名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。', - 'type' => 'string', + 'title' => '可用区及交换机映射列表', + 'description' => '可用区及交换机映射列表,最多支持指定10个可用区。若当前地域支持2个及以上的可用区,至少需要指定2个可用区。如果指定,则会替换之前的可用区配置。', + 'type' => 'array', + 'items' => [ + 'description' => '可用区及交换机映射结构。最多支持指定10个可用区。若当前地域支持2个及以上的可用区,至少需要指定2个可用区。如果指定,则会替换之前的可用区配置。', + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['title' => '交换机标识', 'description' => '可用区对应的交换机,每个可用区默认使用一台交换机和一个子网。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', 'type' => 'string', 'required' => true, 'example' => 'vsw-bp1rmcrwg3srh1fh8****'], + 'ZoneId' => ['title' => '可用区', 'description' => '可用区名称,通过调用[DescribeZones](~~189196~~)接口获得。最多支持添加10个可用区。若当前地域支持2个及以上的可用区,至少需要添加2个可用区。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a'], + 'EipType' => ['title' => '弹性公网IP类型', 'description' => '公网EIP的类型。取值:'."\n" + ."\n" + .'- **Common**:弹性公网IP,简称EIP。'."\n" + .'- **Anycast**:任播弹性公网IP,简称Anycast EIP。'."\n" + ."\n" + .'> ALB支持绑定Anycast EIP的地域,请参见[使用限制](~~460727~~)。', 'type' => 'string', 'required' => false, 'example' => 'Common'], + 'IntranetAddress' => ['description' => 'IPv4私网地址。至少需要添加2个可用区,最多支持添加10个可用区。', 'type' => 'string', 'required' => false, 'example' => '192.168.10.1'], + ], + 'required' => false, + ], 'required' => true, - 'example' => 'White', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => '预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会关联ACL到监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'maxItems' => 10, + 'minItems' => 1, ], ], [ - 'name' => 'ClientToken', + 'name' => 'RetainResourceType', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', + 'title' => '支持保留的ALB代创建资源', + 'type' => 'array', + 'items' => ['title' => '代创建资源类型', 'type' => 'string', 'example' => 'eip'], ], ], ], @@ -20499,1156 +13094,1182 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '将访问控制关联到监听。', + 'description' => '修改可用区属性。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => '请求id', - 'description' => '请求ID', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F87******', - ], + 'JobId' => ['title' => '异步任务id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'QuotaExceeded.AclsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'IncorrectStatus.Acl', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceQuotaExceeded.ListenerAclEntriesNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', - ], - [ - 'errorCode' => 'OperationDenied.AclNotSupport', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceAlreadyExist.AclEntry', - 'errorMessage' => 'The specified resource %s already exists.', - ], - [ - 'errorCode' => 'ResourceInUse.Acl', - 'errorMessage' => 'The specified resource %s is in use.', - ], - [ - 'errorCode' => 'OperationDenied.LoadBalancerJoinedSecurityGroupNotSupportAcl', - 'errorMessage' => 'The operation is not allowed because of loadbalancer joined security group not support acl.', - ], + ['errorCode' => 'IncorrectStatus.LoadBalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'IncorrectBusinessStatus.LoadBalancer', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'IncorrectBusinessStatus.Eip', 'errorMessage' => 'The business status of %s [%s]  is incorrect.', 'description' => '资源%s [%s]的业务状态无效。'], + ['errorCode' => 'OperationDenied.ZoneVSwitchChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'OperationDenied.ZoneMappingsNotChanged', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是可用区没有变化。'."\n"], + ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource %s is not enough.', 'description' => '资源%s不足。'."\n"], + ['errorCode' => 'Mismatch.ZoneIdAndVSwitchId', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => '%s和%s不匹配。'], ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Acl', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], + ['errorCode' => 'ResourceNotFound.LoadBalancer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'."\n"], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F87******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => '关联访问控制和监听', - 'description' => '**AssociateAclsWithListener**接口属于异步接口,即系统返回一个请求ID,但该ACL尚未成功绑定监听器,系统后台的绑定任务仍在进行。您可以调用[ListAclRelations](~~213618~~)查询ACL的绑定状态:'."\n" - .'- 当ACL处于**Associating**状态时,表示ACL正在绑定监听器中。'."\n" - .'- 当ACL处于**Associated**状态时,表示ACL已成功绑定监听器。', - ], - 'ListAclRelations' => [ - 'summary' => '查询访问控制关联的监听。', - 'methods' => [ - 'get', - 'post', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'title' => '更新负载均衡可用区', + 'description' => '**UpdateLoadBalancerZones**接口属于异步接口,即系统返回一个请求ID,但该应用型负载均衡实例可用区属性尚未修改成功,系统后台的修改任务仍在进行。您可以调用[GetLoadBalancerAttribute](~~214362~~)查询应用型负载均衡实例可用区属性的修改状态:'."\n" + .'- 当应用型负载均衡实例处于**Configuring**状态时,表示应用型负载均衡实例可用区属性正在修改中。'."\n" + .'- 当应用型负载均衡实例处于**Active**状态时,表示应用型负载均衡实例可用区属性修改成功。'."\n" + ."\n" + .'> 调用UpdateLoadBalancerZones接口可能会产生费用。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + ], + 'UpdateRuleAttribute' => [ + 'summary' => '更新转发规则属性,如条件、动作、名称等。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '177', + 'abilityTreeNodes' => ['FEATUREslbM7ALO6'], ], 'parameters' => [ [ - 'name' => 'AclIds', + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => ['title' => '转发规则标识', 'description' => '转发规则ID。', 'type' => 'string', 'required' => true, 'example' => 'rule-4dp5i6ea****'], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会更新转发规则属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'RuleConditions', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '访问控制策略Id', - 'description' => 'ACL实例ID列表。一次最多支持查询5个ACL实例ID。', + 'title' => '转发规则条件', + 'description' => '转发规则条件。', 'type' => 'array', 'items' => [ - 'description' => 'ACL实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'acl-hp34s2h0xx1ht4nwo****', - ], - 'required' => true, - 'maxItems' => 5, - 'minItems' => 1, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回数据结构', - 'type' => 'object', - 'properties' => [ - 'AclRelations' => [ - 'title' => '访问控制列表', - 'description' => 'ACL与监听关系列表', - 'type' => 'array', - 'items' => [ - 'description' => 'ACL与监听关系结构', + 'description' => '转发规则条件。', + 'type' => 'object', + 'properties' => [ + 'CookieConfig' => [ + 'title' => 'Cookie条件配置', + 'description' => 'Cookie配置。', 'type' => 'object', 'properties' => [ - 'AclId' => [ - 'title' => '访问控制策略id', - 'description' => 'ACL ID', - 'type' => 'string', - 'example' => 'acl-hp34s2h0xx1ht4nwo****', + 'Values' => [ + 'title' => 'Cookie键值对列表', + 'description' => 'Cookie配置。', + 'type' => 'array', + 'items' => [ + 'description' => 'Cookie配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'Cookie条件键', 'description' => 'Cookie键。长度为1~100个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&";`。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'Value' => ['title' => 'Cookie条件值', 'description' => 'Cookie值。长度为1~128个字符,支持小写英文字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&`。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + 'required' => false, + ], + 'required' => false, ], - 'RelatedListeners' => [ - 'title' => '关联的监听', - 'description' => '关联的监听列表', + ], + 'required' => false, + ], + 'HeaderConfig' => [ + 'title' => 'HTTP标头条件配置', + 'description' => '头字段配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'HTTP标头键', 'description' => '头字段键。长度为1~40个字符,支持字母、数字、短划线(-)和下划线(_),不支持Cookie和Host。', 'type' => 'string', 'required' => false, 'example' => 'Port'], + 'Values' => [ + 'title' => 'HTTP标头值列表', + 'description' => '头字段值。', + 'type' => 'array', + 'items' => ['description' => '头字段值。同一个转发规则条件内头字段值不能重复。命名规则:'."\n" + .'- 支持1~128个字符。'."\n" + .'- 支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、星号(*)和半角问号(?)。不支持`"`。'."\n" + .'- 开头和结尾不能为空格。结尾不能为`\\`。', 'type' => 'string', 'required' => false, 'example' => '5006'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'HostConfig' => [ + 'title' => '主机名条件配置', + 'description' => '主机配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '主机名列表', + 'description' => '主机名列表。', + 'type' => 'array', + 'items' => ['description' => '主机名。命名规则:'."\n" + ."\n" + .'- 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及星号(*)和半角问号(?)。'."\n" + ."\n" + .'- 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + ."\n" + .'- 最右侧的域标签只能包含字母、星号(*)和问号(?),不能包含数字或短划线(-)。'."\n" + ."\n" + .'- 短划线(-)不能出现在其它域标签的开头或结尾。星号(*)和半角问号(?)可以出现在域标签的任意位置。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'MethodConfig' => [ + 'title' => 'HTTP请求方法条件配置', + 'description' => '请求方法配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => 'HTTP请求方法列表', + 'description' => '请求方法列表。', + 'type' => 'array', + 'items' => ['description' => '请求方法。'."\n" + ."\n" + .'取值:**HEAD**、**GET**、**POST**、**OPTIONS**、**PUT**、**PATCH**或**DELETE**。', 'type' => 'string', 'required' => false, 'example' => 'PUT'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'PathConfig' => [ + 'title' => '路径条件配置', + 'description' => '转发的路径配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '路径条件列表', + 'description' => '转发路径列表。', + 'type' => 'array', + 'items' => ['description' => '转发路径。命名规则:'."\n" + .'- 长度为1~128个字符。'."\n" + .'- 必须以正斜线(/)开头,支持字母、数字和特殊字符`$-_.+/&~@:`,不支持`“%#;!()[]^,”\\"`,支持星号(*)和半角问号(?)作为通配符使用。', 'type' => 'string', 'required' => false, 'example' => '/test'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'QueryStringConfig' => [ + 'title' => '查询字符串条件配置', + 'description' => '查询字符串配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '查询字符串条件键值对列表', + 'description' => '查询字符串列表。最多支持添加20个查询字符串。', 'type' => 'array', 'items' => [ - 'description' => '关联的监听信息结构', + 'description' => '查询字符串结构。', 'type' => 'object', 'properties' => [ - 'ListenerId' => [ - 'title' => '监听ID', - 'description' => '监听ID', - 'type' => 'string', - 'example' => 'lsn-bpn0kn908w4nbw****', - ], - 'ListenerPort' => [ - 'title' => '监听端口', - 'description' => '监听端口', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'ListenerProtocol' => [ - 'title' => '监听协议', - 'description' => '监听协议', - 'type' => 'string', - 'example' => 'HTTPS', - ], - 'LoadBalancerId' => [ - 'title' => '实例ID', - 'description' => '负载均衡实例ID', - 'type' => 'string', - 'example' => 'alb-bp1b6c719dfa08ex****', - ], - 'Status' => [ - 'title' => '关联状态', - 'description' => 'ACL与监听关联的状态:'."\n" - ."\n" - .'- **Associating**:关联中'."\n" - .'- **Associated**:已关联'."\n" - .'- **Dissociating**:解除关联中', - 'type' => 'string', - 'example' => 'Associated', - ], + 'Key' => ['title' => '查询字符串条件键', 'description' => '查询字符串键。长度为1~100个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&"`。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'Value' => ['title' => '查询字符串条件值', 'description' => '查询字符串值。长度为1~128个字符,支持小写字母、可见字符、星号(*)和半角问号(?),不支持空格和`#[]{}\\|<>&"`。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], + 'required' => false, ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'Type' => ['title' => '条件类型', 'description' => '转发规则类型。最多支持添加7个转发规则类型。取值:'."\n" + ."\n" + .'- **Host**:主机。'."\n" + ."\n" + .'- **Path**:路径。'."\n" + ."\n" + .'- **Header**:HTTP头字段。'."\n" + ."\n" + .'- **QueryString**:查询字符串。'."\n" + ."\n" + .'- **Method**:请求方法。'."\n" + ."\n" + .'- **Cookie**:Cookie。'."\n" + ."\n" + .'- **SourceIp**:源IP。'."\n" + ."\n" + .'- **ResponseHeader**:响应HTTP头字段。'."\n" + ."\n" + .'- **ResponseStatusCode**: 响应状态码。', 'type' => 'string', 'required' => false, 'example' => 'Host'], + 'ResponseStatusCodeConfig' => [ + 'title' => '返回状态码条件', + 'description' => '响应状态码配置。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '返回状态码条件', + 'description' => '响应状态码列表。', + 'type' => 'array', + 'items' => ['description' => '响应状态码。', 'type' => 'string', 'required' => false, 'example' => '301'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'ResponseHeaderConfig' => [ + 'title' => '返回HTTP标头', + 'description' => '标头条件配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '返回HTTP标头键', 'description' => '头字段键。'."\n" + .'- 长度为1~40个字符。'."\n" + .'- 支持字母a~z、数字、短划线(-)和下划线(_)。'."\n" + .'- 不支持Cookie和Host。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'Values' => [ + 'title' => '返回HTTP标头值', + 'description' => '头字段值。', + 'type' => 'array', + 'items' => ['description' => '头字段值。'."\n" + ."\n" + .'- 长度为1~128个字符。'."\n" + .'- 支持ASCII码值`ch >= 32 && ch < 127`范围内可打印字符、小写字母以及通配符星号(*)和半角问号(?)。不支持`"`。'."\n" + .'- 开头和结尾不能为空格。结尾不能为`\\`。', 'type' => 'string', 'required' => false, 'example' => '50006'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'SourceIpConfig' => [ + 'title' => '基于源IP业务流量匹配', + 'description' => '基于源IP业务流量匹配。最多支持添加5个基于源IP业务流量匹配。', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '基于源IP业务流量匹配', + 'description' => '添加一个或多个IP地址或者IP地址段。'."\n" + ."\n", + 'type' => 'array', + 'items' => ['description' => '添加一个或多个IP地址或者IP地址段。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/32'], + 'required' => false, ], ], + 'required' => false, ], ], - 'RequestId' => [ - 'title' => '请求id', - 'description' => '请求ID', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0******', - ], + 'required' => false, ], + 'required' => false, + 'maxItems' => 100, + 'minItems' => 1, ], ], - ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden.Acl', - 'errorMessage' => 'Authentication is failed for %s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.Acl', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclRelations\\": [\\n {\\n \\"AclId\\": \\"acl-hp34s2h0xx1ht4nwo****\\",\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bpn0kn908w4nbw****\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"HTTPS\\",\\n \\"LoadBalancerId\\": \\"alb-bp1b6c719dfa08ex****\\",\\n \\"Status\\": \\"Associated\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n nacl-hp34s2h0xx1ht4nwo****\\n \\n lsr-bp1bpn0kn908w4nbw****\\n 80\\n HTTPS\\n lb-bp1b6c719dfa08ex****\\n Associated\\n \\n \\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', - 'title' => '查询访问控制关联关系', - ], - 'DissociateAclsFromListener' => [ - 'summary' => '将访问控制从监听上解除关联。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ [ - 'name' => 'AclIds', + 'name' => 'RuleActions', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '访问控制策略Id', - 'description' => 'ACL实例ID列表。一次最多支持将3个ACL实例与监听解除关联。', + 'title' => '转发规则动作', + 'description' => '转发规则动作列表。', 'type' => 'array', 'items' => [ - 'description' => 'ACL实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'acl-hp34s2h0xx1ht4nwo****', - ], - 'required' => true, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'ListenerId', - 'in' => 'query', - 'schema' => [ - 'title' => '监听Id', - 'description' => '监听实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bpn0kn908w4nbw****', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => '预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会将ACL与监听解除关联。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '将访问控制从监听上解除关联。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'title' => '异步任务id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => '请求id', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876******', + 'description' => '转发规则动作列表。', + 'type' => 'object', + 'properties' => [ + 'FixedResponseConfig' => [ + 'title' => '返回固定内容动作配置', + 'description' => '固定响应内容配置。', + 'type' => 'object', + 'properties' => [ + 'Content' => ['title' => '内容', 'description' => '返回的固定内容。最大1 KB,只支持ASCII字符。', 'type' => 'string', 'required' => false, 'example' => 'dssacav'], + 'ContentType' => ['title' => '内容类型', 'description' => '返回固定内容的格式。'."\n" + ."\n" + .'取值:**text/plain**、**text/css**、**text/html**、**application/javascript**或**application/json**。', 'type' => 'string', 'required' => false, 'example' => 'text/plain'], + 'HttpCode' => ['title' => 'HTTP响应码', 'description' => '返回的HTTP响应码,仅支持**2xx**、**4xx**、**5xx**数字型字符串,**x**为任意数字。', 'type' => 'string', 'required' => false, 'example' => '200'], + ], + 'required' => false, + ], + 'ForwardGroupConfig' => [ + 'title' => '转发组动作配置', + 'description' => '转发组配置。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'title' => '转发到的目的服务器组列表', + 'description' => '转发到的目标服务器组列表。', + 'type' => 'array', + 'items' => [ + 'description' => '转发到的目的服务器组结构。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['title' => '服务器组标识', 'description' => '转发到的目的服务器组ID。', 'type' => 'string', 'required' => false, 'example' => 'sg--atstuj3rtoptyui****'], + 'Weight' => ['title' => '权重', 'description' => '权重。取值越大,权重越大,表示转发的访问请求更多。取值范围:**0**~**100**。'."\n" + ."\n" + .'- 目的服务器组数为1时,未指定权重时默认值为**100**。'."\n" + ."\n" + .'- 目的服务器组数大于1时,需要用户指定权重值。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '0', 'example' => '30'], + ], + 'required' => false, + ], + 'required' => false, + ], + 'ServerGroupStickySession' => [ + 'title' => '服务器组之间会话保持', + 'description' => '服务器组之间会话保持。', + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['title' => '是否开启会话保持', 'description' => '是否开启会话保持。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**(默认值):不开启。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'Timeout' => ['title' => '超时时间', 'description' => '超时时间。单位:秒。取值范围:1~86400。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'InsertHeaderConfig' => [ + 'title' => '插入头部动作配置', + 'description' => '写入头字段配置。', + 'type' => 'object', + 'properties' => [ + 'CoverEnabled' => ['title' => '是否覆盖请求中的值', 'description' => '是否覆盖请求中的值。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'Key' => ['title' => 'HTTP标头', 'description' => '插入的头字段名称,长度为1\\~40个字符,支持大小写字母a\\~z、数字、下划线(_)和短划线(-)。**InsertHeaderConfig**中的头字段名称不能重复。'."\n" + ."\n" + .'> 不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`x-forwarded-host`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`。', 'type' => 'string', 'required' => false, 'example' => 'key'], + 'Value' => ['title' => 'HTTP标头内容', 'description' => '插入的头字段内容。'."\n" + ."\n" + .'- **ValueType**取值为**SystemDefined**时取值如下:'."\n" + .' - **ClientSrcPort**:客户端端口。'."\n" + .' - **ClientSrcIp**:客户端IP地址。'."\n" + .' - **Protocol**:客户端请求的协议(HTTP或HTTPS)。'."\n" + .' - **SLBId**:应用型负载均衡实例ID。'."\n" + .' - **SLBPort**:应用型负载均衡实例监听端口。'."\n" + .'- **ValueType**取值为**UserDefined**时:您可自定义头字段内容,限制长度为1\\~128个字符,支持通配符星号(*)、半角问号(?)和ASCII码值`ch >= 32 && ch < 127`范围内的可打印字符,不支持`"`。开头和结尾不能为空格。结尾不能为`\\`。'."\n" + .'- **ValueType**取值为**ReferenceHeader**时:您可以引用请求头字段中的某一个字段,限制长度限制为1\\~128个字符,支持小写字母a\\~z、数字、短划线(-)和下划线(_)。', 'type' => 'string', 'required' => false, 'example' => 'UserDefined'], + 'ValueType' => ['title' => '取值类型', 'description' => '头字段内容类型。取值:'."\n" + ."\n" + .'- **UserDefined**:您自定义头字段内容。'."\n" + ."\n" + .'- **ReferenceHeader**:引用请求头中的某一个头字段内容。'."\n" + ."\n" + .'- **SystemDefined**:系统定义头字段内容。', 'type' => 'string', 'required' => false, 'example' => 'UserDefined'], + ], + 'required' => false, + ], + 'Order' => ['title' => '优先级', 'description' => '转发规则动作执行的顺序,取值范围:**1~50000**,按值从小到大执行动作。值不能为空,不能重复。最多支持添加20个转发规则动作执行的顺序。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'RedirectConfig' => [ + 'title' => '重定向动作配置', + 'description' => '重定向配置。最多支持添加20个重定向。', + 'type' => 'object', + 'properties' => [ + 'Host' => ['title' => '要跳转的主机地址', 'description' => '要跳转的主机地址。取值:'."\n" + .'- **${host}**(默认值):取此值时不支持和其他字符拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)和半角问号(?)。'."\n" + .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。'."\n" + .' - 短划线(-)不能出现在其它域标签的开头或结尾。'."\n" + .' - 通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com'], + 'HttpCode' => ['title' => '跳转方式', 'description' => '跳转方式,取值为**301**、**302**、**303**、**307**或**308**。', 'type' => 'string', 'required' => false, 'example' => '301'], + 'Path' => ['title' => '要跳转的路径', 'description' => '要跳转的路径。取值:'."\n" + .'- **${path}**(默认值):可以引用**${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1~128个字符。'."\n" + .' - 必须以正斜线(/)开头,支持字母、数字和特殊字符`$-_.+/&~@:`,不支持`“%#;!()[]^,”\\"`,同时支持通配符星号(*)和半角问号(?)。', 'type' => 'string', 'required' => false, 'example' => '/test'], + 'Port' => ['title' => '要跳转的端口', 'description' => '要跳转的端口。取值:'."\n" + .'- **${port}**(默认值):该取值仅允许单独使用,不支持和其他字符拼接使用。'."\n" + .'- 其他取值:**1~63335**。', 'type' => 'string', 'required' => false, 'example' => '10'], + 'Protocol' => ['title' => '要跳转的协议', 'description' => '要跳转的协议。取值:'."\n" + ."\n" + .'- **${protocol}**(默认值):取该值时不支持和其他字符拼接使用。'."\n" + ."\n" + .'- **HTTP**或**HTTPS**。'."\n" + ."\n" + .'> HTTPS监听仅支持跳转HTTPS协议。'."\n", 'type' => 'string', 'required' => false, 'example' => 'HTTP'], + 'Query' => ['title' => '要跳转的查询字符串', 'description' => '要跳转的查询字符串。取值:'."\n" + .'- **${query}**(默认值):可以引用**${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1~128个字符。'."\n" + .' - 支持可见字符,不支持空格和 `#[]{}\\|<>"`。如果是字母则必须是小写字母。', 'type' => 'string', 'required' => false, 'example' => 'quert'], + ], + 'required' => false, + ], + 'RewriteConfig' => [ + 'title' => '内部重定向动作配置', + 'description' => '重写配置。', + 'type' => 'object', + 'properties' => [ + 'Host' => ['title' => '主机名', 'description' => '内部跳转的目的主机地址。取值:'."\n" + .'- **${host}**(默认值):该取值不支持和其他字符拼接。'."\n" + ."\n" + .'- 其他取值,字符格式限制如下:'."\n" + ."\n" + .' - 主机名长度为3\\~128个字符,支持小写字母a\\~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)和半角问号(?)。'."\n" + ."\n" + .' - 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。'."\n" + ."\n" + .' - 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。'."\n" + ."\n" + .' - 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com'], + 'Path' => ['title' => '路径', 'description' => '要跳转的路径。取值:'."\n" + .'- **${path}**(默认值):可以引用**${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1~128个字符。'."\n" + .' - 必须以正斜线(/)开头,支持字母、数字和特殊字符`$-_.+/&~@:`,不支持`“%#;!()[]^,”\\"`,同时支持通配符星号(*)和半角问号(?)。', 'type' => 'string', 'required' => false, 'example' => '/tsdf'], + 'Query' => ['title' => '查询', 'description' => '内部跳转的查询字符串。取值:'."\n" + .'- **${query}**(默认值):可以引用**${host}**、**${protocol}**和**${port}**,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。'."\n" + .'- 其他取值,字符集和格式限制如下:'."\n" + .' - 长度为1~128个字符。'."\n" + .' - 支持可见字符,不支持空格和 `#[]{}\\|<>"`。如果是字母则必须是小写字母。', 'type' => 'string', 'required' => false, 'example' => 'quedsa'], + ], + 'required' => false, + ], + 'Type' => ['title' => '转发规则动作类型', 'description' => '动作类型。最多支持添加11个动作类型。取值:'."\n" + ."\n" + .'- **ForwardGroup**:转发至多个虚拟服务器组。'."\n" + ."\n" + .'- **Redirect**:重定向。'."\n" + ."\n" + .'- **FixedResponse**:返回固定内容。'."\n" + ."\n" + .'- **Rewrite**:重写。'."\n" + ."\n" + .'- **InsertHeader**:写入头字段。'."\n" + ."\n" + .'- **RemoveHeader**:删除头字段。'."\n" + ."\n" + .'- **TrafficLimit**:流量限速。'."\n" + ."\n" + .'- **TrafficMirror**:流量镜像。'."\n" + ."\n" + .'- **Cors**:跨域。'."\n" + ."\n" + .'> 一个转发规则必须包含有一条**ForwardGroup**(转发至)、**Redirect**(重定向)或**FixedResponse**(返回固定响应)转发动作,与其他类型转发动作并存时,必须放在最后执行。', 'type' => 'string', 'required' => false, 'example' => 'ForwardGroup'], + 'TrafficLimitConfig' => [ + 'title' => '流量限速', + 'description' => '流量限速。', + 'type' => 'object', + 'properties' => [ + 'QPS' => ['description' => '每秒请求次数。取值范围:**1~1000000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + 'PerIpQps' => ['description' => '单IP每秒请求次数。 取值范围:**1 ~ 1000000**。'."\n" + ."\n" + .'> 如果同时配置**QPS**参数,**PerIpQps**参数的取值必须小于**QPS**参数的取值。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80'], + ], + 'required' => false, + ], + 'TrafficMirrorConfig' => [ + 'title' => '流量镜像', + 'description' => '流量镜像。', + 'type' => 'object', + 'properties' => [ + 'TargetType' => ['title' => '镜像目标类型', 'description' => '镜像的目标类型。取值:'."\n" + .'- **ForwardGroupMirror**:表示镜像至服务器组。', 'type' => 'string', 'required' => false, 'example' => 'ForwardGroupMirror'], + 'MirrorGroupConfig' => [ + 'title' => '镜像至服务器组', + 'description' => '流量镜像至服务器组。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'description' => '流量镜像至服务器组。', + 'type' => 'array', + 'items' => [ + 'description' => '流量镜像至服务器组。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => false, 'example' => 'srg-00mkgijak0w4qgz9****'], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'RemoveHeaderConfig' => [ + 'title' => '去除HTTP标头', + 'description' => '去除HTTP头部配置。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'HTTP标头键', 'description' => '去除的头字段名称,长度为1~40个字符,支持大小写字母a~z、数字、下划线(_)和短划线(-)。头字段名称不能重复用于RemoveHeader中。'."\n" + ."\n" + .'- 请求方向(Direction取值为Request):不允许将头名称设置为以下字段(不区分大小写):`slb-id`、`slb-ip`、`x-forwarded-for`、`x-forwarded-proto`、`x-forwarded-eip`、`x-forwarded-port`、`x-forwarded-client-srcport`、`x-forwarded-host`、`connection`、`upgrade`、`content-length`、`transfer-encoding`、`keep-alive`、`te`、`host`、`cookie`、`remoteip`、`authority`。'."\n" + .'- 响应方向(Direction取值为Response):响应方向不允许将头名称设置为以下字段(不区分大小写):`connection`、`upgrade`、`content-length`、`transfer-encoding`。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + 'required' => false, + ], + 'CorsConfig' => [ + 'title' => '跨域', + 'description' => '跨域。', + 'type' => 'object', + 'properties' => [ + 'AllowOrigin' => [ + 'title' => '允许的访问来源', + 'description' => '允许的访问来源列表。支持只配置一个元素`*`,或配置一个或多个值。'."\n" + .'- 单个值必须以`http://`或者`https://`开头,后边加一个正确的域名或一级泛域名。(例:`http://*.test.abc.example.com`)'."\n" + .'- 单个值可以不加端口,也可以指定端口,端口范围:**1**~**65535**。', + 'type' => 'array', + 'items' => ['description' => '允许的访问来源。', 'type' => 'string', 'required' => false, 'example' => 'http://test.com'], + 'required' => false, + ], + 'AllowMethods' => [ + 'title' => '选择跨域访问时允许的HTTP方法', + 'description' => '选择跨域访问时允许的HTTP方法。', + 'type' => 'array', + 'items' => ['description' => '选择跨域访问时允许的HTTP方法。取值:'."\n" + ."\n" + .'- **GET**。'."\n" + .'- **POST**。'."\n" + .'- **PUT**。'."\n" + .'- **DELETE**。'."\n" + .'- **HEAD**。'."\n" + .'- **OPTIONS**。'."\n" + .'- **PATCH**。', 'type' => 'string', 'required' => false, 'example' => 'GET'], + 'required' => false, + ], + 'AllowHeaders' => [ + 'title' => '允许跨域的Header列表', + 'description' => '允许跨域的Header列表。', + 'type' => 'array', + 'items' => ['description' => '允许跨域的Header列表。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', 'type' => 'string', 'required' => false, 'example' => 'test_123'], + 'required' => false, + ], + 'ExposeHeaders' => [ + 'title' => '允许暴露的Header列表', + 'description' => '允许暴露的Header列表。', + 'type' => 'array', + 'items' => ['description' => '允许暴露的 Header 列表。支持配置为`*`或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,以及不在首尾的下划线(_)和短划线(-),最大长度限制为32个字符。', 'type' => 'string', 'required' => false, 'example' => 'test_123'], + 'required' => false, + ], + 'AllowCredentials' => ['title' => '是否允许携带凭证信息', 'description' => '是否允许携带凭证信息。取值:'."\n" + ."\n" + .'- **on**:是。'."\n" + .'- **off**:否。', 'type' => 'string', 'required' => false, 'example' => 'on'], + 'MaxAge' => ['title' => '预检请求在浏览器的最大缓存时间', 'description' => '预检请求在浏览器的最大缓存时间,单位:秒。'."\n" + ."\n" + .'取值范围:**-1**~**172800**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1000'], + ], + 'required' => false, + ], ], + 'required' => false, ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.Acl', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceInConfiguring', - 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', - ], - [ - 'errorCode' => 'LockFailed', - 'errorMessage' => 'The specified resource lock failed.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotAssociated.Acl', - 'errorMessage' => 'The specified resource %s is not associated.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => '解除关联访问控制和监听', - 'description' => '**DissociateAclsFromListener**接口属于异步接口,即系统返回一个请求ID,但该ACL尚未成功解绑监听器,系统后台的解绑任务仍在进行。您可以调用[ListAclRelations](~~213618~~)查询ACL的解绑状态:'."\n" - .'- 当ACL处于**Dissociating**状态时,表示ACL正在解绑监听器中。'."\n" - .'- 当ACL处于**Dissociated**状态时,表示ACL已成功解绑监听器。', - ], - 'RemoveEntriesFromAcl' => [ - 'summary' => '从访问控制中移除条目。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '593B0448-D13E-4C56-AC0D-FDF******', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求,取值:'."\n" - ."\n" - .'- **true**:发送检查请求,不会删除访问控制策略组中的IP条目。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', 'required' => false, - 'example' => 'true', + 'maxItems' => 100, + 'minItems' => 1, ], ], [ - 'name' => 'AclId', + 'name' => 'RuleName', 'in' => 'query', - 'schema' => [ - 'title' => '访问控制策略Id', - 'description' => 'ACL实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'acl-hp34s2h0xx1ht4nwo****', - ], + 'schema' => ['title' => '转发规则名称', 'description' => '转发规则名称。 长度为2~128个英文或中文字符,必须以字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格。', 'type' => 'string', 'required' => false, 'example' => 'rule-instance-test'], ], [ - 'name' => 'Entries', + 'name' => 'Priority', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '条目列表', - 'description' => '移除的访问控制条目列表,单次调用最多移除20条。', - 'type' => 'array', - 'items' => [ - 'description' => '移除的访问控制条目。', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.1.0/24', - ], - 'required' => true, - 'maxItems' => 20, - 'minItems' => 1, - ], + 'schema' => ['title' => '转发规则优先级', 'description' => '规则优先级,取值范围:**1~10000**。值越小表示优先级越高。'."\n" + ."\n" + .'> 同一个监听内规则优先级必须唯一。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '从访问控制中移除条目。', + 'description' => '更新转发规则属性。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******', - ], + 'JobId' => ['title' => '异步任务Id', 'description' => ' 异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F5378-41F6-4AE4-92F8-7FF34B540710'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Acl', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], + ['errorCode' => 'IncorrectStatus.Rule', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '转发规则的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'OperationDenied.GRPCServerGroup', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是存在绑定本GRPC服务器组的监听没有启用HTTP2.0。'], + ['errorCode' => 'Conflict.Priority', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => '优先级冲突,已经存在相同配置'], + ['errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器组可被关联数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '后端服务器数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器添加到组已超额度限制。'], + ['errorCode' => 'QuotaExceeded.RuleWildcardsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'."\n"], + ['errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '转发规则条件数已超额度限制。'."\n"], + ['errorCode' => 'QuotaExceeded.RuleActionsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'."\n"], + ['errorCode' => 'Mismatch.Protocol', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'OperationDenied.RewriteMissingForwardGroup', 'errorMessage' => 'The operation is not allowed because of RewriteMissingForwardGroup.', 'description' => '操作被拒绝,原因是RewriteMissingForwardGroup。'], + ['errorCode' => 'ResourceInConfiguring.Listener', 'errorMessage' => 'The specified listener is being configured, please try again later.', 'description' => '资源正在变配中,请稍后重试。'], + ['errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', 'description' => '操作被禁止,原因:必须是相同的协议'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.Acl', - 'errorMessage' => 'ACL authentication has failed.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.Acl', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.AclEntry', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', - 'title' => '移除访问控制条目', - 'description' => '**RemoveEntriesFromAcl**接口属于异步接口,即系统返回一个请求ID,但该访问控制策略组中的IP条目尚未删除成功,系统后台的删除任务仍在进行。您可以调用[ListAclEntries](~~213616~~)查询访问控制策略组中的IP条目的删除状态:'."\n" - .'- 当访问控制策略组处于**Removing**状态时,表示访问控制策略组中的IP条目正在删除中。'."\n" - .'- 当查询不到该访问控制策略组时,表示访问控制策略组中的IP条目删除成功。', - ], - 'MoveResourceGroup' => [ - 'summary' => '修改云资源所属的资源组。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'title' => '资源类型', - 'description' => '需要修改资源组的云资源类型,取值:'."\n" - ."\n\n" - .'- **loadbalancer**:应用型负载均衡实例'."\n" - .'- **acl**:访问控制'."\n" - .'- **securitypolicy**:安全策略'."\n" - .'- **servergroup**:服务器组'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'acl', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'schema' => [ - 'title' => '指定资源Id', - 'description' => '需要修改资源组的云资源的实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'acl-hp34s2h0xx1ht4nwo****', - ], + ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication has failed for ServerGroup.', 'description' => '对ServerGroup鉴权失败'], + ['errorCode' => 'Forbidden.LoadBalancer', 'errorMessage' => 'Authentication is failed for %s.', 'description' => '负载均衡操作鉴权失败。'], ], [ - 'name' => 'NewResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'title' => '资源组id', - 'description' => '需要移入云资源实例的资源组ID。'."\n" - ."\n" - .'> 资源组是在阿里云账号下进行资源分组管理的一种机制,资源组能够帮助您解决单个云账号内的资源分组和授权管理等复杂性问题。更多信息,请参见[什么是资源管理](~~94475~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'rg-aekzbi7******', - ], + ['errorCode' => 'ResourceNotFound.Rule', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回数据结构体', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF******', - ], + 'title' => '更新转发规则属性', + 'description' => '- **UpdateRuleAttribute**接口属于异步接口,即系统返回一个请求ID,但该转发规则属性尚未更新成功,系统后台的更新任务仍在进行。您可以调用[ListRules](~~214379~~)查询转发规则属性的更新状态:'."\n" + .' - 当转发规则属性处于**Configuring**状态时,表示转发规则属性正在更新中。'."\n" + .' - 当转发规则属性处于**Available**状态时,表示转发规则属性更新成功。'."\n" + ."\n" + .'- 一条转发规则最多支持添加的条件数(**RuleConditions**)和动作数(**RuleActions**)如下:'."\n" + .' - 条件数:基础版5条、标准版10条、WAF增强版10条。'."\n" + .' - 动作数:基础版3条,标准版5条、WAF增强版5条。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateRuleAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'NotExist.ResourceGroup', - 'errorMessage' => 'ResourceGroup does not exist.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.Acl', - 'errorMessage' => 'ACL authentication has failed.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.Acl', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.SecurityPolicy', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', - 'title' => '修改资源组', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F5378-41F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F5378-41F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', ], - 'ListTagKeys' => [ - 'summary' => '查询指定标签的键。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateRulesAttribute' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '35808', + 'abilityTreeNodes' => ['FEATUREslbBIWWMH', 'FEATUREslbTXOYED', 'FEATUREslbQCCQ6L', 'FEATUREslb4T90LL', 'FEATUREslbIT4IYN', 'FEATUREslbA51OGD', 'FEATUREslbUBPZWI', 'FEATUREslbGVK35E', 'FEATUREslbYG3GCF', 'FEATUREslbRBR9GZ', 'FEATUREslbMWZQWL', 'FEATUREslbJCYSIV', 'FEATUREslbY93SFN', 'FEATUREslbVUMBEO', 'FEATUREslbZ4XFTS', 'FEATUREslb2Q6O49'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'title' => '查询数量', - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], - ], - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'title' => '资源类型', - 'description' => '资源类型,取值:'."\n" - ."\n" - .'- **acl**:访问控制。'."\n" - ."\n" - .'- **loadbalancer**:应用型负载均衡实例。'."\n" - ."\n" - .'- **securitypolicy**:安全策略。'."\n" - ."\n" - .'- **servergroup**:服务器组。', - 'type' => 'string', - 'required' => true, - 'example' => 'loadbalancer', - ], - ], - [ - 'name' => 'Category', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '标签类型', - 'description' => '标签类型。'."\n" - ."\n" - .'取值:**Custom**、**System**或**All**。'."\n" - ."\n" - .'默认值:**All**。', - 'type' => 'string', - 'required' => false, - 'example' => 'System', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'由客户端生成该参数值,要保证在不同请求间唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544***'], ], [ - 'name' => 'Keyword', - 'in' => 'query', - 'schema' => [ - 'title' => '具体的标签Key', - 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - ], - 'responses' => [ - 200 => [ + 'name' => 'Rules', + 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '标签键。', - 'type' => 'object', - 'properties' => [ - 'MaxResults' => [ - 'title' => '本次查询返回记录数量', - 'description' => '分批次查询时每次显示的条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'NextToken' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3', - ], - 'TagKeys' => [ - 'title' => '标签Key列表', - 'description' => '标签键列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签键结构。', - 'type' => 'object', - 'properties' => [ - 'Category' => [ - 'title' => '标签类型', - 'description' => '标签类型。'."\n" - ."\n" - .'取值:**Custom**、**System**或**All**。'."\n" - ."\n" - .'默认值:**All**。', - 'type' => 'string', - 'example' => 'System', + 'title' => '转发规则列表', + 'description' => '转发规则列表', + 'type' => 'array', + 'items' => [ + 'description' => '转发规则', + 'type' => 'object', + 'properties' => [ + 'Priority' => ['title' => '转发规则优先级', 'description' => '转发规则优先级', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80'], + 'RuleName' => ['title' => '转发规则名称', 'description' => '转发规则名称', 'type' => 'string', 'required' => false, 'example' => 'rule_111'], + 'RuleActions' => [ + 'title' => '转发规则动作', + 'description' => '转发规则动作列表', + 'type' => 'array', + 'items' => [ + 'description' => '转发规则动作', + 'type' => 'object', + 'properties' => [ + 'FixedResponseConfig' => [ + 'title' => '返回固定内容动作配置', + 'description' => '返回固定内容动作配置', + 'type' => 'object', + 'properties' => [ + 'Content' => ['title' => '内容', 'description' => '内容', 'type' => 'string', 'required' => false, 'example' => 'dssacav'], + 'ContentType' => ['title' => '内容类型', 'description' => '内容类型', 'type' => 'string', 'required' => false, 'example' => 'text/plain'], + 'HttpCode' => ['title' => 'HTTP响应码', 'description' => 'HTTP响应码', 'type' => 'string', 'required' => false, 'example' => '200'], + ], + 'required' => false, + ], + 'ForwardGroupConfig' => [ + 'title' => '转发组动作配置', + 'description' => '转发组动作配置', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'title' => '转发到的目的服务器组列表', + 'description' => '转发到的目的服务器组列表', + 'type' => 'array', + 'items' => [ + 'description' => '转发到的目的服务器组', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['title' => '服务器组标识', 'description' => '服务器组标识', 'type' => 'string', 'required' => false, 'example' => 'sgp-3kbj35ay7cvi******'], + 'Weight' => ['title' => '权重', 'description' => '权重', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '0', 'example' => '100'], + ], + 'required' => false, + ], + 'required' => false, + ], + 'ServerGroupStickySession' => [ + 'title' => '服务器组之间会话保持', + 'description' => '服务器组之间会话保持', + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['title' => '是否开启会话保持', 'description' => '是否开启会话保持', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'Timeout' => ['title' => '超时时间', 'description' => '超时时间', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'InsertHeaderConfig' => [ + 'title' => '插入头部动作配置', + 'description' => '插入头部动作配置', + 'type' => 'object', + 'properties' => [ + 'CoverEnabled' => ['title' => '是否覆盖请求中的值', 'description' => '是否覆盖请求中的值', 'type' => 'boolean', 'required' => false, 'example' => 'False'], + 'Key' => ['title' => 'HTTP标头', 'description' => 'HTTP标头', 'type' => 'string', 'required' => false, 'example' => 'key'], + 'Value' => ['title' => 'HTTP标头内容', 'description' => 'HTTP标头内容', 'type' => 'string', 'required' => false, 'example' => 'value'], + 'ValueType' => ['title' => '取值类型', 'description' => '取值类型', 'type' => 'string', 'required' => false, 'example' => 'SystemDefined'], + ], + 'required' => false, + ], + 'Order' => ['title' => '优先级', 'description' => '优先级', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + 'RedirectConfig' => [ + 'title' => '重定向动作配置', + 'description' => '重定向动作配置', + 'type' => 'object', + 'properties' => [ + 'Host' => ['title' => '要跳转的主机地址', 'description' => '要跳转的主机地址', 'type' => 'string', 'required' => false, 'example' => 'test.alb.com'], + 'HttpCode' => ['title' => '跳转方式', 'description' => '跳转方式', 'type' => 'string', 'required' => false, 'example' => '301'], + 'Path' => ['title' => '要跳转的路径', 'description' => '要跳转的路径', 'type' => 'string', 'required' => false, 'example' => '/'], + 'Port' => ['title' => '要跳转的端口', 'description' => '要跳转的端口', 'type' => 'string', 'required' => false, 'example' => '443'], + 'Protocol' => ['title' => '要跳转的协议', 'description' => '要跳转的协议', 'type' => 'string', 'required' => false, 'example' => 'HTTPS'], + 'Query' => ['title' => '要跳转的查询字符串', 'description' => '要跳转的查询字符串', 'type' => 'string', 'required' => false, 'example' => '${query}'], + ], + 'required' => false, + ], + 'RewriteConfig' => [ + 'title' => '内部重定向动作配置', + 'description' => '内部重定向动作配置', + 'type' => 'object', + 'properties' => [ + 'Host' => ['title' => '主机名', 'description' => '主机名', 'type' => 'string', 'required' => false, 'example' => '${host}'], + 'Path' => ['title' => '路径', 'description' => '路径', 'type' => 'string', 'required' => false, 'example' => '/'], + 'Query' => ['title' => '查询', 'description' => '查询', 'type' => 'string', 'required' => false, 'example' => '${query}'], + ], + 'required' => false, + ], + 'Type' => ['title' => '转发规则动作类型', 'description' => '转发规则动作类型', 'type' => 'string', 'required' => true, 'example' => 'ForwardGroup'], + 'TrafficLimitConfig' => [ + 'title' => '流量限速', + 'description' => '流量限速', + 'type' => 'object', + 'properties' => [ + 'QPS' => ['description' => '每秒请求次数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000'], + 'PerIpQps' => ['description' => '单IP每秒请求次数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + ], + 'required' => false, + ], + 'TrafficMirrorConfig' => [ + 'title' => '流量镜像', + 'description' => '流量镜像', + 'type' => 'object', + 'properties' => [ + 'TargetType' => ['title' => '镜像目标类型', 'description' => '镜像目标类型', 'type' => 'string', 'required' => false, 'example' => 'ForwardGroupMirror'], + 'MirrorGroupConfig' => [ + 'title' => '镜像至服务器组', + 'description' => '镜像至服务器组', + 'type' => 'object', + 'properties' => [ + 'ServerGroupTuples' => [ + 'description' => '流量镜像至服务器组。', + 'type' => 'array', + 'items' => [ + 'description' => '流量镜像至服务器组。', + 'type' => 'object', + 'properties' => [ + 'ServerGroupId' => ['description' => '服务器组ID。', 'type' => 'string', 'required' => false, 'example' => 'sgp-vlnjo1rhw0vc******'], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'RemoveHeaderConfig' => [ + 'title' => '去除HTTP标头', + 'description' => '去除HTTP标头', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'HTTP标头键', 'description' => 'HTTP标头键', 'type' => 'string', 'required' => false, 'example' => 'key'], + ], + 'required' => false, + ], + 'CorsConfig' => [ + 'title' => '跨域', + 'description' => '跨域', + 'type' => 'object', + 'properties' => [ + 'AllowOrigin' => [ + 'title' => '允许的访问来源', + 'description' => '允许的访问来源', + 'type' => 'array', + 'items' => ['description' => '允许的访问来源', 'type' => 'string', 'required' => false, 'example' => '*'], + 'required' => false, + ], + 'AllowMethods' => [ + 'title' => '选择跨域访问时允许的HTTP方法', + 'description' => '选择跨域访问时允许的HTTP方法', + 'type' => 'array', + 'items' => ['description' => '选择跨域访问时允许的HTTP方法。取值:'."\n" + .'- **GET**。'."\n" + .'- **POST**。'."\n" + .'- **PUT**。'."\n" + .'- **DELETE**。'."\n" + .'- **HEAD**。'."\n" + .'- **OPTIONS**。'."\n" + .'- **PATCH**。', 'type' => 'string', 'required' => false, 'example' => 'GET'], + 'required' => false, + ], + 'AllowHeaders' => [ + 'title' => '允许跨域的Header列表', + 'description' => '允许跨域的Header列表', + 'type' => 'array', + 'items' => ['description' => '允许跨域的Header', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'required' => false, + ], + 'ExposeHeaders' => [ + 'title' => '允许暴露的Header列表', + 'description' => '允许暴露的Header列表', + 'type' => 'array', + 'items' => ['description' => '允许暴露的Header', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'required' => false, + ], + 'AllowCredentials' => ['title' => '是否允许携带凭证信息', 'description' => '是否允许携带凭证信息', 'type' => 'string', 'required' => false, 'example' => 'off'], + 'MaxAge' => ['title' => '预检请求在浏览器的最大缓存时间', 'description' => '预检请求在浏览器的最大缓存时间', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '60'], + ], + 'required' => false, + ], ], - 'TagKey' => [ - 'title' => '标签Key', - 'description' => '返回满足所有筛选条件的标签。', - 'type' => 'string', - 'example' => 'test', + 'required' => true, + ], + 'required' => false, + ], + 'RuleConditions' => [ + 'title' => '转发规则条件', + 'description' => '转发规则条件列表', + 'type' => 'array', + 'items' => [ + 'description' => '转发规则条件', + 'type' => 'object', + 'properties' => [ + 'CookieConfig' => [ + 'title' => 'Cookie条件配置', + 'description' => 'Cookie条件配置', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => 'Cookie键值对列表', + 'description' => 'Cookie键值对列表', + 'type' => 'array', + 'items' => [ + 'description' => 'Cookie键值对', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'Cookie条件键', 'description' => 'Cookie条件键', 'type' => 'string', 'required' => false, 'example' => 'key'], + 'Value' => ['title' => 'Cookie条件值', 'description' => 'Cookie条件值', 'type' => 'string', 'required' => false, 'example' => 'value'], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'HeaderConfig' => [ + 'title' => 'HTTP标头条件配置', + 'description' => 'HTTP标头条件配置', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => 'HTTP标头键', 'description' => 'HTTP标头键', 'type' => 'string', 'required' => false, 'example' => 'key'], + 'Values' => [ + 'title' => 'HTTP标头值列表', + 'description' => 'HTTP标头值列表', + 'type' => 'array', + 'items' => ['description' => 'HTTP标头值', 'type' => 'string', 'required' => false, 'example' => 'value'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'HostConfig' => [ + 'title' => '主机名条件配置', + 'description' => '主机名条件配置', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '主机名列表', + 'description' => '主机名列表', + 'type' => 'array', + 'items' => ['description' => '主机名', 'type' => 'string', 'required' => false, 'example' => 'www.example.com'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'MethodConfig' => [ + 'title' => 'HTTP请求方法条件配置', + 'description' => 'HTTP请求方法条件配置', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => 'HTTP请求方法列表', + 'description' => 'HTTP请求方法列表', + 'type' => 'array', + 'items' => ['description' => 'HTTP请求方法', 'type' => 'string', 'required' => false, 'example' => 'PUT'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'PathConfig' => [ + 'title' => '查询字符串条件配置', + 'description' => '查询字符串条件配置', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '路径条件列表', + 'description' => '路径条件列表', + 'type' => 'array', + 'items' => ['description' => '路径条件', 'type' => 'string', 'required' => false, 'example' => '/test'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'QueryStringConfig' => [ + 'title' => '查询字符串条件配置', + 'description' => '查询字符串条件配置', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '查询字符串条件键值对列表', + 'description' => '查询字符串条件键值对列表', + 'type' => 'array', + 'items' => [ + 'description' => '查询字符串条件键值对', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '查询字符串条件键', 'description' => '查询字符串条件键', 'type' => 'string', 'required' => false, 'example' => 'account'], + 'Value' => ['title' => '查询字符串条件值', 'description' => '查询字符串条件值', 'type' => 'string', 'required' => false, 'example' => 'on'], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'ResponseHeaderConfig' => [ + 'title' => '返回HTTP标头', + 'description' => '返回HTTP标头', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '返回HTTP标头键', 'description' => '返回HTTP标头键', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'Values' => [ + 'title' => '返回HTTP标头值', + 'description' => '返回HTTP标头值', + 'type' => 'array', + 'items' => ['description' => '返回HTTP标头值', 'type' => 'string', 'required' => false, 'example' => 'value'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'ResponseStatusCodeConfig' => [ + 'title' => '返回状态码条件', + 'description' => '返回状态码条件', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'title' => '返回状态码条件', + 'description' => '返回状态码条件', + 'type' => 'array', + 'items' => ['description' => '返回状态码条件', 'type' => 'string', 'required' => false, 'example' => '200'], + 'required' => false, + ], + ], + 'required' => false, + ], + 'Type' => ['title' => '条件类型', 'description' => '条件类型', 'type' => 'string', 'required' => false, 'example' => 'Header'], + 'SourceIpConfig' => [ + 'title' => '基于源IP业务流量匹配', + 'description' => '基于源IP业务流量匹配', + 'type' => 'object', + 'properties' => [ + 'Values' => [ + 'description' => '添加一个或多个IP地址或者IP地址段。', + 'type' => 'array', + 'items' => ['description' => '添加一个或多个IP地址或者IP地址段。', 'type' => 'string', 'required' => false, 'example' => '192.168.1.1'], + 'required' => false, + ], + ], + 'required' => false, + ], ], + 'required' => true, ], - ], - ], - 'TotalCount' => [ - 'title' => '总记录数', - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - ], - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\",\\n \\"TagKeys\\": [\\n {\\n \\"Category\\": \\"System\\",\\n \\"TagKey\\": \\"test\\"\\n }\\n ],\\n \\"TotalCount\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 20\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n \\n System\\n test\\n \\n 10\\n","errorExample":""}]', - 'title' => '查询标签键', - ], - 'ListTagResources' => [ - 'summary' => '查询指定资源标签。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'title' => '查询数量', - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**。默认值:**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], - ], - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'title' => '资源类型', - 'description' => '资源类型,取值:'."\n" - ."\n" - .'- **acl**:访问控制。'."\n" - ."\n" - .'- **loadbalancer**:应用型负载均衡实例。'."\n" - ."\n" - .'- **securitypolicy**:安全策略。'."\n" - ."\n" - .'- **servergroup**:服务器组。', - 'type' => 'string', - 'required' => true, - 'example' => 'loadbalancer', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '资源实例Id', - 'description' => '资源ID。', - 'type' => 'array', - 'items' => [ - 'description' => '资源ID。'."\n" - ."\n" - .'> **ResourceId**和**Tag**参数至少填写其中一个。', - 'type' => 'string', - 'required' => false, - 'example' => 'alb-gws76zi******', - ], - 'required' => false, - 'example' => 'acl-123', - 'maxItems' => 50, - 'minItems' => 1, - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '标签列表', - 'description' => '标签。'."\n" - ."\n" - .'> **ResourceId**和**Tag**参数至少填写其中一个。', - 'type' => 'array', - 'items' => [ - 'description' => '标签结构。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '标签键', - 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'title' => '标签值', - 'description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', 'required' => false, - 'example' => 'product', ], + 'RuleId' => ['title' => '转发规则ID', 'description' => '转发规则ID', 'type' => 'string', 'required' => true, 'example' => 'rule-n4hfecmmtmfl******'], ], - 'required' => false, + 'required' => true, ], - 'required' => false, - 'example' => 'test', - 'maxItems' => 20, + 'required' => true, + 'maxItems' => 100, 'minItems' => 1, ], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '标签资源信息。', - 'type' => 'object', - 'properties' => [ - 'MaxResults' => [ - 'title' => '本次查询返回记录数量', - 'description' => '分批次查询时每次显示的条目数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'NextToken' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0FD******', - ], - 'TagResources' => [ - 'title' => '标签值列表', - 'description' => '返回符合标签键和标签值的标签。', - 'type' => 'array', - 'items' => [ - 'description' => '返回符合标签键和标签值的标签。', - 'type' => 'object', - 'properties' => [ - 'ResourceId' => [ - 'title' => '资源ID', - 'description' => '资源ID。', - 'type' => 'string', - 'example' => 'alb-gws76zijb0******', - ], - 'ResourceType' => [ - 'title' => '资源类型', - 'description' => '资源类型,取值:'."\n" - ."\n" - .'- **acl**:访问控制。'."\n" - ."\n" - .'- **loadbalancer**:应用型负载均衡实例。'."\n" - ."\n" - .'- **securitypolicy**:安全策略。'."\n" - ."\n" - .'- **servergroup**:服务器组。', - 'type' => 'string', - 'example' => 'loadbalancer', - ], - 'TagKey' => [ - 'title' => '标签Key', - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'env', - ], - 'TagValue' => [ - 'title' => '标签Value', - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'product', - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Acl', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.SecurityPolicy', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0FD******\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"alb-gws76zijb0******\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"TagKey\\": \\"env\\",\\n \\"TagValue\\": \\"product\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 20\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n \\n d-2ze1ot4ah7xjyv0d****\\n loadbalancer\\n env\\n product\\n \\n","errorExample":""}]', - 'title' => '查询资源标签', - ], - 'ListTagValues' => [ - 'summary' => '查询指定标签的值。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - ], - 'parameters' => [ - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'title' => '查询数量', - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], - ], - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'title' => '资源类型', - 'description' => '资源类型,取值:'."\n" - ."\n" - .'- **loadbalancer**:应用型负载均衡实例。'."\n" - ."\n" - .'- **acl**:访问控制。'."\n" - ."\n" - .'- **securitypolicy**:安全策略。'."\n" - ."\n" - .'- **servergroup**:服务器组。', - 'type' => 'string', - 'required' => false, - 'example' => 'loadbalancer', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'schema' => [ - 'title' => '资源实例Id', - 'description' => '资源实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'alb-gws76zijb0******', - ], - ], [ - 'name' => 'TagKey', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => '具体的标签Key', - 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'schema' => ['title' => '是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + ."\n" + .'- **true**:发送检查请求,不会批量更新转发规则属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + ."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回`HTTP 2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '查询标签值。', - 'type' => 'object', - 'properties' => [ - 'MaxResults' => [ - 'title' => '本次查询返回记录数量', - 'description' => '分批次查询时每次显示的条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'NextToken' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******', - ], - 'TagValues' => [ - 'title' => '标签值列表', - 'description' => '标签值。', - 'type' => 'array', - 'items' => [ - 'description' => '返回满足所有筛选条件的标签。', - 'type' => 'string', - 'example' => 'owner', - ], - ], - 'TotalCount' => [ - 'title' => '总记录数', - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710'], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'IncorrectStatus.Rule', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '转发规则的当前状态不支持本次操作。'."\n"], + ['errorCode' => 'OperationDenied.SameGroupForForwardAndMirrorAction', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是%s。'."\n"], + ['errorCode' => 'OperationDenied.GRPCServerGroup', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => '操作被拒绝,原因是存在绑定本GRPC服务器组的监听没有启用HTTP2.0。'], + ['errorCode' => 'Conflict.Priority', 'errorMessage' => 'There is already %s having the same configuration with %s.', 'description' => '优先级冲突,已经存在相同配置'], + ['errorCode' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器组可被关联数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '后端服务器数已超额度限制。'], + ['errorCode' => 'ResourceQuotaExceeded.ServerAddedNum', 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'description' => '服务器添加到组已超额度限制。'], + ['errorCode' => 'QuotaExceeded.RuleWildcardsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'."\n"], + ['errorCode' => 'QuotaExceeded.RuleMatchEvaluationsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '转发规则条件数已超额度限制。'."\n"], + ['errorCode' => 'QuotaExceeded.RuleActionsNum', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'."\n"], + ['errorCode' => 'Mismatch.Protocol', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => '%s在%s和%s中不匹配。'], + ['errorCode' => 'OperationDenied.ServiceManagedResource', 'errorMessage' => 'The operation is not allowed because the current resource of %s is managed resource.', 'description' => '操作被拒绝,原因是资源%s为托管资源。'], + ['errorCode' => 'OperationDenied.ListenerIdInconsistent', 'errorMessage' => 'The operation is not allowed because of ListenerIdInconsistent.', 'description' => '操作被拒绝,原因是当前转发规则属于不同的监听。'], + ['errorCode' => 'IllegalParam.Priority', 'errorMessage' => 'The param of Priority is illegal.', 'description' => '参数Priority非法'], + ['errorCode' => 'OperationDenied.MirrorActionSupportHttpGroupOnly', 'errorMessage' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.', 'description' => '操作被拒绝,原因是流量镜像动作只支持HTTP类型的服务器组。'], + ['errorCode' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', 'errorMessage' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', 'description' => '操作被禁止,原因:必须是相同的协议'], + ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Acl', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.SecurityPolicy', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', + ['errorCode' => 'ResourceNotFound.Rule', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Alb::2020-06-16::ListAsynJobs', 'callbackInterval' => 1000, 'maxCallbackTimes' => 60], + 'title' => '批量更新转发规则属性', + 'summary' => '批量更新转发规则属性。', + 'description' => '**UpdateRulesAttribute**接口属于异步接口,即系统返回一个请求ID,但该转发规则属性尚未批量更新成功,系统后台的更新任务仍在进行。您可以调用[ListRules](~~214379~~)查询转发规则属性的更新状态:'."\n" + .'- 当多条转发规则属性处于**Configuring**状态时,表示转发规则属性正在批量更新中。'."\n" + .'- 当多条转发规则属性处于**Available**状态时,表示转发规则属性批量更新成功。'."\n" + ."\n" + .'- 一条转发规则最多支持添加的条件数(**RuleConditions**)和动作数(**RuleActions**)如下:'."\n" + .' - 条件数:基础版5条,标准版10条,WAF增强版10条。'."\n" + .' - 动作数:基础版3条,标准版5条,WAF增强版5条。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateRulesAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MaxResults\\": 20,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\",\\n \\"TagValues\\": [\\n \\"owner\\"\\n ],\\n \\"TotalCount\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 20\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n owner\\n 10\\n","errorExample":""}]', - 'title' => '查询标签值', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', ], - 'TagResources' => [ - 'summary' => '给指定资源添加标签。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateSecurityPolicyAttribute' => [ + 'summary' => '更新安全策略属性,如安全协议版本、加密套件。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21656,135 +14277,153 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'ResourceType', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '资源类型', - 'description' => '资源类型,取值:'."\n" - ."\n" - .'- **acl**:访问控制。'."\n" - ."\n" - .'- **loadbalancer**:应用型负载均衡实例。'."\n" - ."\n" - .'- **securitypolicy**:安全策略。'."\n" - ."\n" - .'- **servergroup**:服务器组。', - 'type' => 'string', - 'required' => true, - 'example' => 'loadbalancer', - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**可能不一样。', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******'], ], [ - 'name' => 'ResourceId', + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会更新安全策略属性。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'SecurityPolicyId', + 'in' => 'query', + 'schema' => ['title' => '安全策略id', 'description' => '安全策略ID。', 'type' => 'string', 'required' => true, 'example' => 'sp-n0kn923****'], + ], + [ + 'name' => 'TLSVersions', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '资源实例Id', - 'description' => '资源ID。', + 'title' => 'TLS版本', + 'description' => '支持的TLS协议版本列表。', 'type' => 'array', - 'items' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'alb-gws76zi******', - ], - 'required' => true, - 'example' => 'acl-123', - 'maxItems' => 50, - 'minItems' => 1, + 'items' => ['description' => '支持的TLS协议版本,取值:**TLSv1.0**、**TLSv1.1**、**TLSv1.2**和**TLSv1.3**。'."\n" + .'最多支持添加4个TLS协议版本。', 'type' => 'string', 'required' => false, 'example' => 'TLSv1.0'], + 'required' => false, ], ], [ - 'name' => 'Tag', + 'name' => 'Ciphers', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '标签列表', - 'description' => '标签。', + 'title' => '加密套件', + 'description' => '支持的加密套件列表。', 'type' => 'array', - 'items' => [ - 'description' => '标签结构。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '标签键', - 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'title' => '标签值', - 'description' => '标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], - ], - 'required' => false, - ], - 'required' => true, - 'example' => 'test', - 'maxItems' => 20, + 'items' => ['description' => '支持的加密套件,具体依赖**TLSVersions**的取值。'."\n" + .'最多支持添加32个加密套件。'."\n" + ."\n" + .'Cipher只要被任何一个传入的**TLSVersions**支持即可。'."\n" + ."\n" + .'> 选择了TLSv1.3那么Cipher列表必须包含TLSv1.3支持的Cipher。'."\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-RSA-CHACHA20-POLY1305'."\n" + .' - ECDHE-ECDSA-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' => false, 'minItems' => 1, ], ], + [ + 'name' => 'SecurityPolicyName', + 'in' => 'query', + 'schema' => ['title' => '安全策略名称', 'description' => '安全策略名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格。', 'type' => 'string', 'required' => false, 'example' => 'test-secrity'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '给资源添加标签。', + 'description' => '返回数据结构。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF******', - ], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.SecurityPolicy', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '资源%s [%s]的状态无效。'], + ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Acl', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.SecurityPolicy', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', + ['errorCode' => 'ResourceNotFound.SecurityPolicy', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '资源%s不存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', + 'title' => '更新安全策略属性', + 'description' => '## 使用说明'."\n" + .'**UpdateSecurityPolicyAttribute**接口属于异步接口,即系统返回一个请求ID,但该安全策略属性尚未更新成功,系统后台的更新任务仍在进行。您可以调用[ListSecurityPolicies](~~213609~~)查询安全策略属性的更新状态:'."\n" + .'- 当安全策略属性处于**Configuring**状态时,表示安全策略属性正在更新中。'."\n" + .'- 当安全策略属性处于**Available**状态时,表示安全策略属性已更新完成。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateSecurityPolicyAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', - 'title' => '给资源添加标签', ], - 'UnTagResources' => [ - 'summary' => '删除资源上配置的标签。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateServerGroupAttribute' => [ + 'summary' => '更新服务器组的配置,例如健康检查、会话保持、名称、调度算法和协议等。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21793,445 +14432,340 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '165', + 'abilityTreeNodes' => ['FEATUREslbULKWF1', 'FEATUREslbVRSQEA'], ], 'parameters' => [ [ - 'name' => 'ResourceType', + 'name' => 'ServerGroupName', 'in' => 'query', - 'schema' => [ - 'title' => '资源类型', - 'description' => '资源类型,取值:'."\n" - ."\n" - .'- **acl**:访问控制。'."\n" - ."\n" - .'- **loadbalancer**:应用型负载均衡实例。'."\n" - ."\n" - .'- **securitypolicy**:安全策略。'."\n" - ."\n" - .'- **servergroup**:服务器组。', - 'type' => 'string', - 'required' => true, - 'example' => 'loadbalancer', - ], + 'schema' => ['title' => 'Acl名称', 'description' => '服务器组名称。'."\n" + ."\n" + .'长度为2~128个英文或中文字符,必须以大小字母、中文或数字开头,可包含数字、半角句号(.)、下划线(_)、短划线(-)和空格。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'ResourceId', + 'name' => 'Scheduler', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '资源实例Id', - 'description' => '要删除标签的资源ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '要删除标签的资源ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'alb-gws76zij******', - ], - 'required' => true, - 'example' => 'acl-123', - 'maxItems' => 50, - 'minItems' => 1, - ], + 'schema' => ['title' => '调度策略', 'description' => '调度算法。取值:'."\n" + ."\n" + .'- **Wrr**:加权轮询,权重值越高的后端服务器,被轮询到的次数(概率)也越高。'."\n" + .'- **Wlc**:加权最小连接数,除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。'."\n" + .'- **Sch**:一致性哈希,相同哈希因子计算结果的请求将会调度到相同的后端服务器。不配置UchConfig参数时,默认哈希因子为源IP,相同源IP地址的请求会分发到同一台后端服务器;配置了UchConfig参数时,哈希因子为URL参数,相同URL参数的请求会分发到同一台后端服务器。', 'type' => 'string', 'required' => false, 'example' => 'Wrr'], ], [ - 'name' => 'Tag', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '标签列表', - 'description' => '要删除的标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '要删除的标签结构。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '标签键', - 'description' => '要删除标签的标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'title' => '标签值', - 'description' => '要删除标签的标签值。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], - ], - 'required' => false, - ], - 'required' => false, - 'example' => 'test', - 'maxItems' => 20, - 'minItems' => 1, - ], + 'schema' => ['title' => '幂等标识', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3******'], ], [ - 'name' => 'TagKey', + 'name' => 'DryRun', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '标签键列表', - 'description' => '要删除标签的标签键列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签键。最多支持128个字符,不能以`aliyun`或`acs:`开头,不能包含`http://`或`https://`。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'required' => false, - 'maxItems' => 20, - 'minItems' => 1, - ], + 'schema' => ['title' => ' 是否只预检此次请求', 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会修改资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP `2xx`状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'All', + 'name' => 'HealthCheckConfig', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '是否删除全部', - 'description' => '是否解绑资源的所有标签。取值:'."\n" - ."\n" - .'- **true**:解绑资源的所有标签。'."\n" - .'- **false**(默认值):不解绑资源的所有标签。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '删除标签。', + 'title' => '健康检查配置', + 'description' => '健康检查相关配置结构体。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******', + 'HealthCheckConnectPort' => ['title' => '健康检查端口', 'description' => '健康检查的后端服务器的端口。'."\n" + ."\n" + .'取值范围:**0**~**65535**。'."\n" + ."\n" + .'设置为**0**时代表使用后端服务器的端口进行健康检查。'."\n" + ."\n" + .'> 当前服务器组**HealthCheckEnabled**为**true**时,该参数配置生效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '65535', 'minimum' => '0', 'example' => '80'], + 'HealthCheckEnabled' => ['title' => '是否启用健康检查', 'description' => '是否启用健康检查,取值:'."\n" + .'- **true**:启用'."\n" + .'- **false**:不启用', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'HealthCheckHost' => ['title' => '健康检查域名', 'description' => '健康检查域名。'."\n" + ."\n" + .'- **使用后端服务器的内网IP**(默认):使用后端服务器的内网IP地址作为健康检查的域名。'."\n" + ."\n" + .'- **指定特定域名**:输入一个域名。'."\n" + ."\n" + .' - 长度限制为1~80个字符。'."\n" + ."\n" + .' - 可包含小写字母、数字、短划线(-)和半角句号(.)。'."\n" + ."\n" + .' - 至少包含一个半角句号(.),半角句号(.)不能出现在开头或结尾。'."\n" + ."\n" + .' - 最右侧的域标签,只能包含字母,不能包含数字或短划线(-)。'."\n" + ."\n" + .' - 短划线(-)不能出现在开头或结尾。'."\n" + ."\n" + .'> 只有**HealthCheckProtocol**设置为**HTTP**、**HTTPS**或**gRPC**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], + 'HealthCheckCodes' => [ + 'title' => '健康检查正常的状态码', + 'description' => '健康检查正常的状态码列表。', + 'type' => 'array', + 'items' => ['description' => '健康检查正常的状态码。'."\n" + ."\n" + .'- 当**HealthCheckProtocol**取值为**HTTP**或**HTTPS**时,**HealthCheckCodes**可以选择**http\\_2xx**(默认值)、 **http\\_3xx**、**http\\_4xx**和**http\\_5xx**。多个状态码用半角逗号(,)分隔。'."\n" + ."\n" + .'- 当**HealthCheckProtocol**取值为**gRPC**时,**HealthCheckCodes**状态码范围:**0~99**,默认值:**0**。支持范围输入,最多支持20个范围值。多个范围值使用半角逗号(,)隔开。'."\n" + ."\n" + .'> 当前服务器组**HealthCheckEnabled**为**true**且**HealthCheckProtocol**设置为**HTTP**或**HTTPS**或**gRPC**时该参数生效。', 'type' => 'string', 'required' => false, 'example' => '200'], + 'required' => false, ], - ], - ], - ], - ], - 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Acl', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.SecurityPolicy', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ServerGroup', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\n","errorExample":""}]', - 'title' => '删除资源的标签', - ], - 'ListAsynJobs' => [ - 'summary' => '查询指定地域的异步任务。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'HealthCheckHttpVersion' => ['title' => '健康检查HTTP协议版本', 'description' => '健康检查HTTP协议版本。取值:'."\n" + ."\n" + .'- **HTTP1.0**'."\n" + .'- **HTTP1.1**'."\n" + ."\n" + .'> 当前服务器组**HealthCheckEnabled**为true且**HealthCheckProtocol**设置为**HTTP**或**HTTPS**时该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'HTTP1.1'], + 'HealthCheckInterval' => ['title' => '健康检查间隔', 'description' => '健康检查的时间间隔。单位:秒。 '."\n" + ."\n" + .'取值范围:**1**~**50**。'."\n" + ."\n" + .'> 当前服务器组**HealthCheckEnabled**为**true**时,该参数配置生效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '5'], + 'HealthCheckMethod' => ['title' => '健康检查方法', 'description' => '健康检查方法。取值:'."\n" + ."\n" + .'- **GET**:如果响应报文长度超过8K,会被截断,但不会影响健康检查结果的判定。'."\n" + ."\n" + .'- **POST**:gRPC监听健康检查默认采用POST方法。'."\n" + ."\n" + .'- **HEAD**:HTTP和HTTPS监听健康检查默认采用HEAD方法。'."\n" + ."\n" + .'> 当前服务器组**HealthCheckEnabled**为true且**HealthCheckProtocol**设置为**HTTP**或**HTTPS**或**gRPC**时该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'HEAD'], + 'HealthCheckPath' => ['title' => '健康检查Path', 'description' => '健康检查的转发规则路径。'."\n" + ."\n" + .'长度限制为1~80,只能使用字母、数字、字符`-/.%?#&=`以及扩展字符`_;~!()*[]@$^:\',+`。 URL开头必须为`/`。'."\n" + ."\n" + .'> 当前服务器组**HealthCheckEnabled**为**true**且**HealthCheckProtocol**设置为**HTTP**或**HTTPS**时该参数生效。', 'type' => 'string', 'required' => false, 'example' => '/test/index.html'], + 'HealthCheckProtocol' => ['title' => '健康检查协议类型', 'description' => '健康检查协议。取值:'."\n" + ."\n" + .'- **HTTP**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。'."\n" + ."\n" + .'- **HTTPS**:通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。(数据加密,相比HTTP更安全。)'."\n" + ."\n" + .'- **TCP**:通过发送SYN握手报文来检测服务器端口是否存活。'."\n" + ."\n" + .'- **gRPC**:通过发送POST或GET请求来检查服务器应用是否健康。', 'type' => 'string', 'required' => false, 'example' => 'HTTP'], + 'HealthCheckTimeout' => ['title' => '健康检查超时时间', 'description' => '接收来自运行状况检查的响应需要等待的时间。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败。单位:秒。'."\n" + ."\n" + .'取值范围:**1**~**300**。'."\n" + ."\n" + .'> 当前服务器组**HealthCheckEnabled**为**true**时,该参数配置生效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '300', 'minimum' => '1', 'example' => '3'], + 'HealthyThreshold' => ['title' => '健康检查成功判定阈值', 'description' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由**fail**判定为**success**。'."\n" + ."\n" + .'取值范围:**2**~**10**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10', 'minimum' => '2', 'example' => '4'], + 'UnhealthyThreshold' => ['title' => '健康检查不成功判定阈值', 'description' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由**success**判定为**fail**。'."\n" + ."\n" + .'取值范围:**2**~**10**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10', 'minimum' => '2', 'example' => '4'], + ], + 'required' => false, + 'example' => 'true', + ], ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ [ - 'name' => 'JobIds', + 'name' => 'StickySessionConfig', 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'title' => '任务ID列表', - 'description' => '任务ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'bfb728bf-53a8-4886-84cb-829******', + 'title' => '会话保持配置', + 'description' => '会话保持配置结构体', + 'type' => 'object', + 'properties' => [ + 'Cookie' => ['title' => '服务器上配置的Cookie', 'description' => '服务器上配置的Cookie。'."\n" + ."\n" + .'长度为1~200个字符,只能包含ASCII英文字母和数字字符,不能包含半角逗号(,)、半角分号(;)或空格,也不能以美元符号($)开头。'."\n" + ."\n" + .'> 当前服务器组**StickySessionEnabled**为**true**且**StickySessionType**配置为**Server**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'B490B5EBF6F3CD402E515D22B******'], + 'CookieTimeout' => ['title' => '服务器上配置的Cookie', 'description' => 'Cookie超时时间。单位:秒。'."\n" + ."\n" + .'取值范围:**1**~**86400**。'."\n" + ."\n" + .'>当前服务器组**StickySessionEnabled**为**true**且**StickySessionType**配置为**Insert**时,该参数生效。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '86400', 'minimum' => '1', 'example' => '1000'], + 'StickySessionEnabled' => ['title' => '是否启用会话保持', 'description' => '是否启用会话保持。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'StickySessionType' => ['title' => '会话保持类型', 'description' => 'Cookie的处理方式。取值:'."\n" + ."\n" + .'- **Insert**:植入Cookie。'."\n" + .'客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP或HTTPS响应报文中插入SERVERID),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。'."\n" + .'- **Server**:重写Cookie。'."\n" + .'负载均衡发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器。'."\n" + ."\n" + .'> 当前服务器组**StickySessionEnabled**为**true**时,该参数生效。', 'type' => 'string', 'required' => false, 'example' => 'Insert'], ], 'required' => false, - 'maxItems' => 10, ], ], [ - 'name' => 'ResourceType', + 'name' => 'ServerGroupId', 'in' => 'query', - 'schema' => [ - 'title' => '资源类型类型', - 'description' => '关联的资源类型。取值:'."\n" - ."\n" - .'- **loadbalancer**:应用型负载均衡实例。'."\n" - .'- **listener**:监听。'."\n" - .'- **rule**:转发规则。'."\n" - .'- **acl**:访问控制。'."\n" - .'- **securitypolicy**:安全策略。'."\n" - .'- **servergroup**:服务器组。', - 'type' => 'string', - 'required' => false, - 'example' => 'loadbalancer', - ], + 'schema' => ['title' => '服务器组Id', 'description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtop****'], ], [ - 'name' => 'ResourceIds', + 'name' => 'UpstreamKeepaliveEnabled', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '资源实例ID列表', - 'description' => '资源实例ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '资源实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'alb-o8mszt95oamfjy****', - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['title' => '是否开启后端长链接', 'description' => '是否开启后端长连接。'."\n" + ."\n" + .'- **true**:开启'."\n" + ."\n" + .'- **false**:不开启。', 'type' => 'boolean', 'required' => false, 'example' => 'sgp-123'], ], [ - 'name' => 'ApiName', + 'name' => 'ServiceName', 'in' => 'query', + 'schema' => ['title' => '服务器名称', 'description' => '仅适用于ALB Ingress场景,表示服务器组对应的`K8s Service`名称。', 'type' => 'string', 'required' => false, 'example' => 'test2'], + ], + [ + 'name' => 'UchConfig', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '操作接口名', - 'description' => '操作接口名称。', - 'type' => 'string', + 'title' => 'url一致性hash参数配置', + 'description' => 'url一致性hash参数配置。', + 'type' => 'object', + 'properties' => [ + 'Type' => ['title' => '参数类型', 'description' => '参数类型。只支持输入QueryString。', 'type' => 'string', 'required' => true, 'example' => 'QueryString'], + 'Value' => ['title' => '一致性hash参数值', 'description' => '一致性hash参数值。', 'type' => 'string', 'required' => true, 'example' => 'abc'], + ], 'required' => false, - 'example' => 'CreateLoadBalancer', ], ], [ - 'name' => 'BeginTime', + 'name' => 'ConnectionDrainConfig', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '任务过滤时间范围-开始时间', - 'description' => '任务开始时间戳。单位:毫秒。'."\n" + 'description' => '连接优雅中断相关配置。'."\n" ."\n" - .'时间戳的格式采用Unix时间戳,表示从格林威治时间1970年01月01日00时00分00秒至开始查询异步任务状态时的总时长。', - 'type' => 'integer', - 'format' => 'int64', + .'开启连接优雅中断,在移除后端服务器或者健康检查失败后,负载均衡使现有连接在一定时间内正常传输。'."\n" + .'> '."\n" + .'> - 基础版实例不支持开启连接优雅中断,仅标准版、WAF增强版实例支持。'."\n" + .'> - 服务器类型、IP类型服务器组支持连接优雅中断,函数计算类型不支持。', + 'type' => 'object', + 'properties' => [ + 'ConnectionDrainEnabled' => ['description' => '是否开启连接优雅中断。'."\n" + ."\n" + .'- **true**:开启'."\n" + .'- **false**:关闭', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'ConnectionDrainTimeout' => ['description' => '连接优雅中断超时时间。'."\n" + ."\n" + .'取值范围:**0**~**900**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '300'], + ], 'required' => false, - 'example' => '2134663231234', ], ], [ - 'name' => 'EndTime', + 'name' => 'SlowStartConfig', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '任务过滤时间范围-结束时间', - 'description' => '任务结束时间戳。单位:毫秒。'."\n" + 'title' => '慢启动配置', + 'description' => '慢启动相关配置。'."\n" ."\n" - .'时间戳的格式采用Unix时间戳,表示从格林威治时间1970年01月01日00时00分00秒至查询异步任务状态结束时的总时长。', - 'type' => 'integer', - 'format' => 'int64', + .'开启慢启动后,将会在设定的时间段内对新添加到后端服务器组的后端服务器进行预热,转发到该服务器的请求数量线性增加。'."\n" + .'>'."\n" + .'> - 基础版实例不支持开启慢启动,仅标准版、WAF增强版实例支持。'."\n" + .'> - 服务器类型、IP类型服务器组支持配置慢启动,函数计算类型不支持。'."\n" + .'> - 慢启动仅在后端调度算法是加权轮询算法时可开启。', + 'type' => 'object', + 'properties' => [ + 'SlowStartEnabled' => ['title' => '是否开启慢启动'."\n", 'description' => '是否开启慢启动。'."\n" + ."\n" + .'- **true**:开启'."\n" + .'- **false**:关闭', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'SlowStartDuration' => ['title' => '慢启动时间', 'description' => '慢启动持续时间。'."\n" + ."\n" + .'取值范围:**30**~**900**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + ], 'required' => false, - 'example' => '2144663233315', ], ], [ - 'name' => 'NextToken', + 'name' => 'CrossZoneEnabled', 'in' => 'query', - 'schema' => [ - 'title' => '下一个查询开始Token', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'- 如果有下一次查询,取值为上一次API调用返回的**NextToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => '服务器组是否开启跨AZ负载均衡。取值:'."\n" + ."\n" + .'- **true**:开启(默认值)'."\n" + ."\n" + .'- **false**:关闭'."\n" + ."\n" + .'> '."\n" + .'> - 基础版实例不支持绑定关闭跨AZ负载均衡的服务器组,仅标准版、WAF 增强版实例支持。'."\n" + .'> - 服务器类型、IP 类型服务器组支持关闭跨AZ负载均衡,函数计算类型不支持。'."\n" + .'> - 关闭跨AZ负载均衡时,不支持开启会话保持。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'MaxResults', + 'name' => 'IpVersionAffinityMode', 'in' => 'query', - 'schema' => [ - 'title' => '本次读取的最大数据记录数量', - 'description' => '分批次查询时每次显示的条目数。取值范围:**1**~**100**,默认值:**20**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '20', - ], + 'allowEmptyValue' => true, + 'schema' => ['title' => 'IP版本亲和模式', 'description' => 'IP版本亲和模式', 'type' => 'string', 'required' => false, 'example' => 'Affinity'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '任务列表。', + 'description' => '返回数据结构组', 'type' => 'object', 'properties' => [ - 'Jobs' => [ - 'title' => '任务列表', - 'description' => '任务列表。', - 'type' => 'array', - 'items' => [ - 'description' => '任务列表。', - 'type' => 'object', - 'properties' => [ - 'ApiName' => [ - 'title' => 'openapi名称', - 'description' => '操作接口名称。', - 'type' => 'string', - 'example' => 'CreateLoadBalancer', - ], - 'CreateTime' => [ - 'title' => '任务开始时间戳', - 'description' => '任务开始时间戳。单位:毫秒。'."\n" - ."\n" - .'时间戳的格式采用Unix时间戳,表示从格林威治时间1970年01月01日00时00分00秒至开始查询异步任务状态时的总时长。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2134663231234', - ], - 'ErrorCode' => [ - 'title' => '如果Status为失败,则为错误码', - 'description' => '如果**Status**为失败,则为错误码。', - 'type' => 'string', - 'example' => '506', - ], - 'ErrorMessage' => [ - 'title' => '如果Status为失败,则为错误信息', - 'description' => '如果**Status**为失败,则为错误信息。', - 'type' => 'string', - 'example' => 'AllocateEipAddress Failed', - ], - 'Id' => [ - 'title' => '任务ID', - 'description' => '任务ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B5****', - ], - 'ModifyTime' => [ - 'title' => '任务结束时间戳', - 'description' => '任务结束时间戳。单位:毫秒。'."\n" - ."\n" - .'时间戳的格式采用Unix时间戳,表示从格林威治时间1970年01月01日00时00分00秒至查询异步任务状态结束时的总时长。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2144663233315', - ], - 'OperateType' => [ - 'title' => '操作类型', - 'description' => '操作类型,取值:'."\n" - ."\n" - .'- **Create**:创建。'."\n" - ."\n" - .'- **Update**:修改。'."\n" - ."\n" - .'- **Delete**: 删除。', - 'type' => 'string', - 'example' => 'Create', - ], - 'ResourceId' => [ - 'title' => '关联的资源实例ID', - 'description' => '关联的资源实例ID。', - 'type' => 'string', - 'example' => 'alb-o8mszt95oamfjy****', - ], - 'ResourceType' => [ - 'title' => '关联的资源类型', - 'description' => '关联的资源类型。取值:'."\n" - ."\n" - .'- **loadbalancer**:应用型负载均衡实例。'."\n" - .'- **listener**:监听。'."\n" - .'- **rule**:转发规则。'."\n" - .'- **acl**:访问控制。'."\n" - .'- **securitypolicy**:安全策略。'."\n" - .'- **servergroup**:服务器组。', - 'type' => 'string', - 'example' => 'loadbalancer', - ], - 'Status' => [ - 'title' => '任务状态', - 'description' => '任务状态,取值:'."\n" - ."\n" - .'- **Succeeded**:成功。'."\n" - ."\n" - .'- **Failed**:失败。'."\n" - ."\n" - .'- **Processing**:执行。', - 'type' => 'string', - 'example' => 'Succeeded', - ], - ], - ], - ], - 'MaxResults' => [ - 'title' => '本次查询返回记录数量', - 'description' => '分批次查询时每次显示的条目数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'NextToken' => [ - 'title' => '分页查询标识', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], - 'TotalCount' => [ - 'title' => '总记录数 ', - 'description' => '列表条目数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3*****'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Jobs\\": [\\n {\\n \\"ApiName\\": \\"CreateLoadBalancer\\",\\n \\"CreateTime\\": 2134663231234,\\n \\"ErrorCode\\": \\"506\\",\\n \\"ErrorMessage\\": \\"AllocateEipAddress Failed\\",\\n \\"Id\\": \\"365F4154-92F6-4AE4-92F8-7FF34B5****\\",\\n \\"ModifyTime\\": 2144663233315,\\n \\"OperateType\\": \\"Create\\",\\n \\"ResourceId\\": \\"alb-o8mszt95oamfjy****\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"Status\\": \\"Succeeded\\"\\n }\\n ],\\n \\"MaxResults\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"TotalCount\\": 1000\\n}","errorExample":""},{"type":"xml","example":"\\n \\n CreateLoadBalancer\\n 2134663231234\\n 506\\n AllocateEipAddress Failed\\n 365F4154-92F6-4AE4-92F8-7FF34B5****\\n 2144663233315\\n Create\\n alb-o8mszt95oamfjy****\\n acl\\n Succeeded\\n \\n 10\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 1000\\n","errorExample":""}]', - 'title' => '查询异步任务', - ], - 'ModifyCapacityReservation' => [ - 'summary' => '创建和修改资源预留。', - 'path' => '', - 'methods' => [ - 'post', - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '服务器组状态无效。'], + ['errorCode' => 'Mismatch.LoadBalancerEditionAndConnectionDrain', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => '参数%s和%s不匹配。'], + ['errorCode' => 'Mismatch.ServerGroupSchedulerAndSlowStartEnable', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => '参数%s和%s不匹配。'], + ['errorCode' => 'QuotaExceeded.ConnectionDrainTimeout', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '参数%s超过配额限制,当前值%s,配额值%s。'], + ['errorCode' => 'UnsupportedFeature.ConnectionDrain', 'errorMessage' => 'The feature of %s is not supported.', 'description' => '不支持%s特性。'], + ['errorCode' => 'QuotaExceeded.SlowStartDuration', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => '参数%s超过配额限制,当前值%s,配额值%s。'], + ['errorCode' => 'UnsupportedFeature.SlowStart', 'errorMessage' => 'The feature of %s is not supported.', 'description' => '不支持%s特性。'], + ['errorCode' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => '参数%s和%s不匹配。'], + ['errorCode' => 'OperationDenied.UpstreamKeepaliveDisabled', 'errorMessage' => 'The operation is not allowed because of UpstreamKeepaliveDisabled.', 'description' => '不允许更新是否开启后端长连接为关闭状态'], + ['errorCode' => 'OperationDenied.UpstreamKeepaliveEnabled', 'errorMessage' => 'The operation is not allowed because of UpstreamKeepaliveEnabled.', 'description' => '不允许更新是否开启后端长连接为开启状态'], + ['errorCode' => 'CloseUpstreamKeepaliveNotSupport', 'errorMessage' => 'The param of UpstreamKeepalive is not Support.', 'description' => '不支持关闭服务器组的后端长链接'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], + ], ], - 'schemes' => [ - 'https', + 'title' => '更新服务器组配置', + 'description' => '**UpdateServerGroupAttribute**接口属于异步接口,即系统返回一个请求ID,但该服务器组的配置尚未更新成功,系统后台的更新任务仍在进行。您可以调用[ListServerGroups](~~213627~~)查询服务器组的配置的更新状态:'."\n" + .'- 当服务器组的配置处于**Configuring**状态时,表示服务器组的配置正在更新中。'."\n" + .'- 当服务器组的配置处于**Available**状态时,表示服务器组的配置更新成功。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateServerGroupAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3*****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + ], + 'UpdateServerGroupServersAttribute' => [ + 'summary' => '更新服务器组中后端服务器的权重和描述等配置。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -22242,1250 +14776,1704 @@ 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREslbEUW2CG', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslbULKWF1'], ], 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'ServerGroupId', 'in' => 'query', + 'schema' => ['title' => '后端服务器Id', 'description' => '服务器组ID。', 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtop****'], + ], + [ + 'name' => 'Servers', + 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'title' => '应用型负载均衡实例ID。', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', + 'title' => '后端服务器列表', + 'description' => '后端服务器组列表,单次调用最多支持传入40个服务器。', + 'type' => 'array', + 'items' => [ + 'description' => '后端服务器组结构体', + 'type' => 'object', + 'properties' => [ + 'Description' => ['title' => '后端服务器描述', 'description' => '后端服务器描述。长度为 2~256 个英文或中文字符,不能以http://和https://开头。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'Port' => ['title' => '后端端口号', 'description' => '后端服务器使用的端口。取值范围:**1**~**65535**。'."\n" + .'> 当**ServerType**取值为**Fc**时,无需配置该参数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'docRequired' => false, 'example' => '80'], + 'ServerId' => ['title' => '后端服务器id', 'description' => '后端服务器ID。'."\n" + ."\n" + .'- 当**ServerType**取值为**Ecs**、**Eni**、**Eci**时,该参数为Ecs、Eni、Eci的资源ID。'."\n" + .'- 当**ServerType**取值为**Ip**时,该参数为IP地址。'."\n" + .'- 当**ServerType**取值为**Fc**时,该参数为函数计算的ARN标识。', 'type' => 'string', 'required' => false, 'example' => 'i-bp1f9kdprbgy9uiu****'], + 'ServerIp' => ['title' => '后端服务器ip', 'description' => '指定IP地址。', 'type' => 'string', 'required' => false, 'example' => '192.168.1.1'], + 'ServerType' => ['title' => '后端服务器类型', 'description' => '后端服务器类型。取值:'."\n" + .'- **Ecs**:ECS实例。'."\n" + .'- **Eni**:ENI弹性网卡实例。'."\n" + .'- **Eci**:ECI弹性容器。'."\n" + .'- **Ip**:IP地址。'."\n" + .'- **Fc**:函数计算。', 'type' => 'string', 'required' => true, 'docRequired' => false, 'example' => 'Ecs'], + 'Weight' => ['title' => '后端服务器权重', 'description' => '后端服务器的权重。取值范围:**0**~**100**。默认值为**100**。如果设置权重为**0**,则不会将请求转发给该后端服务器。单次调用最多支持传入40个服务器。'."\n" + ."\n" + .'> 当**ServerType**取值为**Fc**时,无需配置该参数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + ], + 'required' => false, + 'title' => '后端服务器', + ], 'required' => true, - 'example' => 'alb-iv9gj3spak6fbj****', + 'maxItems' => 200, + 'minItems' => 1, ], ], [ - 'name' => 'ResetCapacityReservation', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '是否取消资源预留', - 'description' => '是否取消资源预留。取值:'."\n" - .'* **true**:取消资源预留。'."\n" - .'* **false**(默认值):不取消资源预留。创建、修改资源预留时可不填写此属性。', - 'type' => 'boolean', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'false', - 'default' => 'false', - 'enum' => [ - 'true', - 'false', - ], - ], + 'schema' => ['title' => '幂等Token', 'description' => '客户端Token,用于保证请求的幂等性。'."\n" + ."\n" + .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" + ."\n" + .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', 'type' => 'string', 'required' => false, 'example' => '593B0448-D13E-4C56-AC0D-FDF0******'], ], [ - 'name' => 'MinimumLoadBalancerCapacity', + 'name' => 'DryRun', 'in' => 'query', - 'style' => 'flat', + 'schema' => ['title' => 'dryRun', 'description' => '是否只预检此次请求,取值:'."\n" + .'- **true**:发送检查请求,不会更新服务器组中后端服务器的权重和描述等配置信息。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" + .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '预留的最小负载均衡器容量', - 'description' => '预留的最小负载均衡器容量。', + 'title' => 'Schema of Response', + 'description' => '返回数据结构体', 'type' => 'object', 'properties' => [ - 'CapacityUnits' => [ - 'title' => 'LCU数量', - 'description' => '每小时预留LCU数量。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], + 'JobId' => ['title' => '异步任务Id', 'description' => '异步任务ID。', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3*****'], ], - 'required' => false, ], ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => '是否只预检此次请求,取值:'."\n" - .'- **true**:发送检查请求,不会预留资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'false', + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.ServerGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => '服务器组状态无效。'], + ['errorCode' => 'ResourceInConfiguring', 'errorMessage' => 'The specified resource of %s is being configured. Please try again later.', 'description' => '指定的资源在变更中,请稍后再试'], + ], + 403 => [ + ['errorCode' => 'Forbidden.ServerGroup', 'errorMessage' => 'Authentication has failed for ServerGroup.', 'description' => '对ServerGroup鉴权失败'], + ], + [ + ['errorCode' => 'ResourceNotFound.ServerGroup', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '后端服务器组不存在。'], + ['errorCode' => 'ResourceNotFound.BackendServer', 'errorMessage' => 'The specified resource %s is not found.', 'description' => '服务器组不存在。'], + ], + ], + 'title' => '更新后端服务器配置', + 'description' => '**UpdateServerGroupServersAttribute**接口属于异步接口,即系统返回一个请求ID,但该后端服务器配置信息尚未添加成功,系统后台的添加任务仍在进行。'."\n" + .'1. 您可以调用[ListServerGroups](~~213627~~)查询服务器组状态:'."\n" + .' - 当服务器组处于**Configuring**状态时,表示服务器组正在变配中。'."\n" + .' - 当服务器组处于**Available**状态时,表示服务器组运行中。'."\n" + ."\n" + .'2. 您可以调用[ListServerGroupServers](~~213628~~)查询后端服务器状态:'."\n" + .' - 当后端服务器处于**Configuring**状态时,表示后端服务器正在变配中。'."\n" + .' - 当后端服务器处于**Available**状态时,表示后端服务器运行中。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateServerGroupServersAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:ecs/{#ecsId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3*****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + ], + ], + 'endpoints' => [ + ['regionId' => 'ap-northeast-1', 'regionName' => '日本(东京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.ap-northeast-1.aliyuncs.com', 'endpoint' => 'alb.ap-northeast-1.aliyuncs.com', 'vpc' => 'alb-vpc.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'ap-northeast-2', 'regionName' => '韩国(首尔)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.ap-northeast-2.aliyuncs.com', 'endpoint' => 'alb.ap-northeast-2.aliyuncs.com', 'vpc' => 'alb-vpc.ap-northeast-2.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.ap-southeast-1.aliyuncs.com', 'endpoint' => 'alb.ap-southeast-1.aliyuncs.com', 'vpc' => 'alb-vpc.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-2', 'regionName' => '澳大利亚(悉尼)已关停', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.ap-southeast-2.aliyuncs.com', 'endpoint' => 'alb.ap-southeast-2.aliyuncs.com', 'vpc' => 'alb-vpc.ap-southeast-2.aliyuncs.com'], + ['regionId' => 'ap-southeast-3', 'regionName' => '马来西亚(吉隆坡)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.ap-southeast-3.aliyuncs.com', 'endpoint' => 'alb.ap-southeast-3.aliyuncs.com', 'vpc' => 'alb-vpc.ap-southeast-3.aliyuncs.com'], + ['regionId' => 'ap-southeast-5', 'regionName' => '印度尼西亚(雅加达)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.ap-southeast-5.aliyuncs.com', 'endpoint' => 'alb.ap-southeast-5.aliyuncs.com', 'vpc' => 'alb-vpc.ap-southeast-5.aliyuncs.com'], + ['regionId' => 'ap-southeast-6', 'regionName' => '菲律宾(马尼拉)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.ap-southeast-6.aliyuncs.com', 'endpoint' => 'alb.ap-southeast-6.aliyuncs.com', 'vpc' => 'alb-vpc.ap-southeast-6.aliyuncs.com'], + ['regionId' => 'ap-southeast-7', 'regionName' => '泰国(曼谷)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.ap-southeast-7.aliyuncs.com', 'endpoint' => 'alb.ap-southeast-7.aliyuncs.com', 'vpc' => 'alb-vpc.ap-southeast-7.aliyuncs.com'], + ['regionId' => 'cn-beijing', 'regionName' => '华北2(北京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-beijing.aliyuncs.com', 'endpoint' => 'alb.cn-beijing.aliyuncs.com', 'vpc' => 'alb-vpc.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-chengdu', 'regionName' => '西南1(成都)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-chengdu.aliyuncs.com', 'endpoint' => 'alb.cn-chengdu.aliyuncs.com', 'vpc' => 'alb-vpc.cn-chengdu.aliyuncs.com'], + ['regionId' => 'cn-fuzhou', 'regionName' => '华东6(福州-本地地域)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-fuzhou.aliyuncs.com', 'endpoint' => 'alb.cn-fuzhou.aliyuncs.com', 'vpc' => 'alb-vpc.cn-fuzhou.aliyuncs.com'], + ['regionId' => 'cn-guangzhou', 'regionName' => '华南3(广州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-guangzhou.aliyuncs.com', 'endpoint' => 'alb.cn-guangzhou.aliyuncs.com', 'vpc' => 'alb-vpc.cn-guangzhou.aliyuncs.com'], + ['regionId' => 'cn-hangzhou', 'regionName' => '华东1(杭州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-hangzhou.aliyuncs.com', 'endpoint' => 'alb.cn-hangzhou.aliyuncs.com', 'vpc' => 'alb-vpc.cn-hangzhou.aliyuncs.com'], + ['regionId' => 'cn-heyuan', 'regionName' => '华南2(河源)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-heyuan.aliyuncs.com', 'endpoint' => 'alb.cn-heyuan.aliyuncs.com', 'vpc' => 'alb-vpc.cn-heyuan.aliyuncs.com'], + ['regionId' => 'cn-hongkong', 'regionName' => '中国香港', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-hongkong.aliyuncs.com', 'endpoint' => 'alb.cn-hongkong.aliyuncs.com', 'vpc' => 'alb-vpc.cn-hongkong.aliyuncs.com'], + ['regionId' => 'cn-nanjing', 'regionName' => '华东5(南京-本地地域)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-nanjing.aliyuncs.com', 'endpoint' => 'alb.cn-nanjing.aliyuncs.com', 'vpc' => 'alb-vpc.cn-nanjing.aliyuncs.com'], + ['regionId' => 'cn-qingdao', 'regionName' => '华北1(青岛)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-qingdao.aliyuncs.com', 'endpoint' => 'alb.cn-qingdao.aliyuncs.com', 'vpc' => 'alb-vpc.cn-qingdao.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-shanghai.aliyuncs.com', 'endpoint' => 'alb.cn-shanghai.aliyuncs.com', 'vpc' => 'alb-vpc.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-shenzhen', 'regionName' => '华南1(深圳)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-shenzhen.aliyuncs.com', 'endpoint' => 'alb.cn-shenzhen.aliyuncs.com', 'vpc' => 'alb-vpc.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'cn-wuhan-lr', 'regionName' => '华中1(武汉-本地地域)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-wuhan-lr.aliyuncs.com', 'endpoint' => 'alb.cn-wuhan-lr.aliyuncs.com', 'vpc' => 'alb-vpc.cn-wuhan-lr.aliyuncs.com'], + ['regionId' => 'cn-wulanchabu', 'regionName' => '华北6(乌兰察布)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-wulanchabu.aliyuncs.com', 'endpoint' => 'alb.cn-wulanchabu.aliyuncs.com', 'vpc' => 'alb-vpc.cn-wulanchabu.aliyuncs.com'], + ['regionId' => 'cn-zhangjiakou', 'regionName' => '华北3(张家口)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-zhangjiakou.aliyuncs.com', 'endpoint' => 'alb.cn-zhangjiakou.aliyuncs.com', 'vpc' => 'alb-vpc.cn-zhangjiakou.aliyuncs.com'], + ['regionId' => 'cn-zhengzhou-jva', 'regionName' => '郑州(联通合营)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'alb.cn-zhengzhou-jva.aliyuncs.com', 'endpoint' => 'alb.cn-zhengzhou-jva.aliyuncs.com', 'vpc' => 'alb-vpc.cn-zhengzhou-jva.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'regionName' => '德国(法兰克福)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'alb.eu-central-1.aliyuncs.com', 'endpoint' => 'alb.eu-central-1.aliyuncs.com', 'vpc' => 'alb-vpc.eu-central-1.aliyuncs.com'], + ['regionId' => 'eu-west-1', 'regionName' => '英国(伦敦)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'alb.eu-west-1.aliyuncs.com', 'endpoint' => 'alb.eu-west-1.aliyuncs.com', 'vpc' => 'alb-vpc.eu-west-1.aliyuncs.com'], + ['regionId' => 'na-south-1', 'regionName' => '墨西哥', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'alb.na-south-1.aliyuncs.com', 'endpoint' => 'alb.na-south-1.aliyuncs.com', 'vpc' => 'alb-vpc.na-south-1.aliyuncs.com'], + ['regionId' => 'us-east-1', 'regionName' => '美国(弗吉尼亚)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'alb.us-east-1.aliyuncs.com', 'endpoint' => 'alb.us-east-1.aliyuncs.com', 'vpc' => 'alb-vpc.us-east-1.aliyuncs.com'], + ['regionId' => 'us-west-1', 'regionName' => '美国(硅谷)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'alb.us-west-1.aliyuncs.com', 'endpoint' => 'alb.us-west-1.aliyuncs.com', 'vpc' => 'alb-vpc.us-west-1.aliyuncs.com'], + ['regionId' => 'ap-south-1', 'regionName' => '印度(孟买)已关停', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'alb.ap-south-1.aliyuncs.com', 'endpoint' => 'alb.ap-south-1.aliyuncs.com', 'vpc' => 'alb-vpc.ap-south-1.aliyuncs.com'], + ['regionId' => 'me-central-1', 'regionName' => '沙特(利雅得)', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'alb.me-central-1.aliyuncs.com', 'endpoint' => 'alb.me-central-1.aliyuncs.com', 'vpc' => 'alb-vpc.me-central-1.aliyuncs.com'], + ['regionId' => 'cn-beijing-finance-1', 'regionName' => '华北2 金融云(邀测)', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'alb.cn-beijing-finance-1.aliyuncs.com', 'endpoint' => 'alb.cn-beijing-finance-1.aliyuncs.com', 'vpc' => 'alb-vpc.cn-beijing-finance-1.aliyuncs.com'], + ['regionId' => 'cn-hangzhou-finance', 'regionName' => '华东1 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'alb.cn-hangzhou.aliyuncs.com', 'endpoint' => 'alb.cn-hangzhou.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shanghai-finance-1', 'regionName' => '华东2 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'alb.cn-shanghai-finance-1.aliyuncs.com', 'endpoint' => 'alb.cn-shanghai-finance-1.aliyuncs.com', 'vpc' => 'alb-vpc.cn-shanghai-finance-1.aliyuncs.com'], + ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => '华南1 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'alb.cn-shenzhen-finance-1.aliyuncs.com', 'endpoint' => 'alb.cn-shenzhen-finance-1.aliyuncs.com', 'vpc' => 'alb-vpc.cn-shenzhen-finance-1.aliyuncs.com'], + ], + 'errorCodes' => [ + ['code' => 'CloseUpstreamKeepaliveNotSupport', 'message' => 'The param of UpstreamKeepalive is not Support.', 'http_code' => 400, 'description' => '不支持关闭服务器组的后端长链接'], + ['code' => 'Conflict.Acl', 'message' => 'There is already %s having the same configuration with %s.', 'http_code' => 400, 'description' => '%s冲突,已经存在同配置的%s。'], + ['code' => 'Conflict.BackendServer', 'message' => 'There is already %s having the same configuration with %s.', 'http_code' => 400, 'description' => '服务器冲突,已经存在同配置的后端服务器。'], + ['code' => 'Conflict.Priority', 'message' => 'There is already %s having the same configuration with %s.', 'http_code' => 400, 'description' => '优先级冲突,已经存在相同配置'], + ['code' => 'DryRunOperation', 'message' => 'Request validation has been passed with DryRun flag set.', 'http_code' => 400, 'description' => '本次操作为预校验操作,并未真正生效。DryRun置为false,重新执行本次操作,操作会生效。'], + ['code' => 'DuplicatedParam.%s', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => '参数重复。'], + ['code' => 'DuplicatedParam.BackendServer', 'message' => 'The param of BackendServer is duplicated.', 'http_code' => 400, 'description' => '参数BackendServer重复'], + ['code' => 'DuplicatedParam.BackendServer', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => '参数%s是重复的。'], + ['code' => 'DuplicatedParam.Key', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => '参数%s重复'], + ['code' => 'DuplicatedParam.Order', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => '参数%s重复'], + ['code' => 'DuplicatedParam.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param of RuleConditions.1.SourceIpConfig.Values is duplicated.', 'http_code' => 400, 'description' => '参数RuleConditions.1.SourceIpConfig.Values重复'], + ['code' => 'DuplicatedParam.Rules.2.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param of Rules.2.RuleConditions.1.SourceIpConfig.Values is duplicated.', 'http_code' => 400, 'description' => '参数Rules.2.RuleConditions.1.SourceIpConfig.Values重复'], + ['code' => 'DuplicatedParam.TagKey', 'message' => 'The param of TagKey is duplicated.', 'http_code' => 400, 'description' => '参数TagKey重复'], + ['code' => 'DuplicatedParam.Type', 'message' => 'The param of Type is duplicated.', 'http_code' => 400, 'description' => '参数Type重复'], + ['code' => 'DuplicatedParam.Value', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => '参数重复'], + ['code' => 'DuplicatedParam.ZoneId', 'message' => 'The param of ZoneId is duplicated.', 'http_code' => 400, 'description' => '参数ZoneId重复'], + ['code' => 'EntityNotExist.Role', 'message' => 'The role not exists.', 'http_code' => 404, 'description' => 'RAM角色不存在'], + ['code' => 'ExclusiveParam.%sAnd%s', 'message' => 'The param of %s and %s are mutually exclusive.', 'http_code' => 400, 'description' => '参数%s和%s不能同时有效。'], + ['code' => 'ExclusiveParam.TrafficMirrorAndFixedResponse', 'message' => 'The param of RuleActions.TrafficMirror and RuleActions.FixedResponse are mutually exclusive.', 'http_code' => 400, 'description' => 'RuleActions里的TrafficMirror参数和FixedResponse参数互斥'], + ['code' => 'ExclusiveParam.TrafficMirrorAndRedirect', 'message' => 'The param of Rules.1.RuleActions.TrafficMirror and Rules.1.RuleActions.Redirect are mutually exclusive.', 'http_code' => 400, 'description' => 'RuleActions里的TrafficMirror参数和Redirect参数互斥'], + ['code' => 'ExclusiveParam.TrafficMirrorAndRewrite', 'message' => 'The param of RuleActions.TrafficMirror and RuleActions.Rewrite are mutually exclusive.', 'http_code' => 400, 'description' => 'RuleActions里的TrafficMirror参数和Rewrite参数互斥'], + ['code' => 'Forbidden.Acl', 'message' => 'ACL authentication has failed.', 'http_code' => 403, 'description' => '对Acl鉴权失败'], + ['code' => 'Forbidden.Acl', 'message' => 'Authentication is failed for %s.', 'http_code' => 403, 'description' => '访问控制鉴权失败。'], + ['code' => 'Forbidden.alb', 'message' => 'Authentication has failed for alb.', 'http_code' => 400, 'description' => 'alb操作鉴权失败'], + ['code' => 'Forbidden.HealthCheckTemplate', 'message' => 'Authentication has failed for HealthCheckTemplate.', 'http_code' => 403, 'description' => '对HealthCheckTemplate鉴权失败'], + ['code' => 'Forbidden.HealthCheckTemplate', 'message' => 'Authentication is failed for %s.', 'http_code' => 403, 'description' => '健康检查模版操作鉴权失败。'], + ['code' => 'Forbidden.Listener', 'message' => 'Authentication is failed for %s.', 'http_code' => 403, 'description' => '监听鉴权失败。'], + ['code' => 'Forbidden.LoadBalancer', 'message' => 'Authentication has failed for LoadBalancer.', 'http_code' => 403, 'description' => '负载均衡操作鉴权失败'], + ['code' => 'Forbidden.LoadBalancer', 'message' => 'Authentication is failed for %s.', 'http_code' => 403, 'description' => '负载均衡操作鉴权失败。'], + ['code' => 'Forbidden.SecurityPolicy', 'message' => 'Authentication has failed for SecurityPolicy.', 'http_code' => 403, 'description' => '对SecurityPolicy鉴权失败'], + ['code' => 'Forbidden.ServerGroup', 'message' => 'Authentication has failed for ServerGroup.', 'http_code' => 403, 'description' => '对ServerGroup鉴权失败'], + ['code' => 'Forbidden.ServerGroup', 'message' => 'Authentication is failed for ServerGroup.', 'http_code' => 403, 'description' => '当前服务器组权限校验失败。'], + ['code' => 'IdempotentParameterMismatch', 'message' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'http_code' => 400, 'description' => '该请求使用了与之前不相同的请求相同的客户端令牌。除非请求相同,否则请勿在不同请求之间重用客户端令牌。'], + ['code' => 'IllegalParam.%s', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => '指定的参无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParam.AclEntrys', 'message' => 'The param of AclEntrys is illegal.', 'http_code' => 400, 'description' => '参数AclEntrys非法'], + ['code' => 'IllegalParam.AclIds', 'message' => 'The param of AclIds is illegal.', 'http_code' => 400, 'description' => '参数AclIds非法'], + ['code' => 'IllegalParam.AclName', 'message' => 'The param of AclName is illegal.', 'http_code' => 400, 'description' => '参数AclName非法'], + ['code' => 'IllegalParam.AclType', 'message' => 'The param of AclType is illegal.', 'http_code' => 400, 'description' => '参数AclType非法'], + ['code' => 'IllegalParam.AddressAllocatedMode', 'message' => 'The param of AddressAllocatedMode is illegal.', 'http_code' => 400, 'description' => '参数IP模式非法'], + ['code' => 'IllegalParam.AddressType', 'message' => 'The param of AddressType is illegal.', 'http_code' => 400, 'description' => '参数网络类型非法'], + ['code' => 'IllegalParam.CaCertificates', 'message' => 'The param of CaCertificates is illegal.', 'http_code' => 400, 'description' => '参数CaCertificates非法'], + ['code' => 'IllegalParam.Category', 'message' => 'The param of Category is illegal.', 'http_code' => 400, 'description' => '参数Category非法'], + ['code' => 'IllegalParam.Cipher', 'message' => 'The param of Cipher is illegal.', 'http_code' => 400, 'description' => '参数Cipher非法'], + ['code' => 'IllegalParam.Ciphers', 'message' => 'The param of Ciphers is illegal.', 'http_code' => 400, 'description' => '参数Ciphers非法'], + ['code' => 'IllegalParam.ConnectPort', 'message' => 'The param of ConnectPort is illegal.', 'http_code' => 400, 'description' => '参数ConnectPort非法'], + ['code' => 'IllegalParam.Content', 'message' => 'The param of Rules.RuleActions.FixedResponseConfig.Content is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.FixedResponseConfig.Content非法'], + ['code' => 'IllegalParam.ContentType', 'message' => 'The param of Rules.RuleActions.FixedResponseConfig.ContentType is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.FixedResponseConfig.ContentType非法'], + ['code' => 'IllegalParam.Cookie', 'message' => 'The param of Cookie is illegal.', 'http_code' => 400, 'description' => '参数Cookie非法'], + ['code' => 'IllegalParam.Description', 'message' => 'The param of Description is illegal.', 'http_code' => 400, 'description' => '参数Description非法'], + ['code' => 'IllegalParam.Direction', 'message' => 'The param of Rules.Direction is illegal.', 'http_code' => 400, 'description' => '参数Rules.Direction非法'], + ['code' => 'IllegalParam.EnableCrossBorder', 'message' => 'Invalid EnableCrossBorder.', 'http_code' => 400, 'description' => '您选择的加速区域及源站涉及跨境数据传输,请配置EnableCrossBorder参数,同意相关合规承诺。'], + ['code' => 'IllegalParam.HealthCheck.healthCheckHost', 'message' => 'The param of HealthCheck.healthCheckHost is illegal.', 'http_code' => 400, 'description' => '参数HealthCheck.healthCheckHost非法'], + ['code' => 'IllegalParam.HealthCheck.healthCheckHttpVersion', 'message' => 'The param of HealthCheck.healthCheckHttpVersion is illegal.', 'http_code' => 400, 'description' => '参数HealthCheck.healthCheckHttpVersion非法'], + ['code' => 'IllegalParam.HealthCheck.healthCheckMethod', 'message' => 'The param of HealthCheck.healthCheckMethod is illegal.', 'http_code' => 400, 'description' => '参数HealthCheck.healthCheckMethod非法'], + ['code' => 'IllegalParam.HealthCheckHost', 'message' => 'The param of HealthCheckHost is illegal.', 'http_code' => 400, 'description' => '指定的HealthCheckHost无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParam.HealthCheckHttpCode', 'message' => 'The param of HealthCheckHttpCode is illegal.', 'http_code' => 400, 'description' => '参数HealthCheckHttpCode非法'], + ['code' => 'IllegalParam.HealthCheckHttpVersion', 'message' => 'The param of HealthCheckHttpVersion is illegal.', 'http_code' => 400, 'description' => '参数HealthCheckHttpVersion非法'], + ['code' => 'IllegalParam.HealthCheckMethod', 'message' => 'The param of HealthCheckMethod is illegal.', 'http_code' => 400, 'description' => '参数HealthCheckMethod非法'], + ['code' => 'IllegalParam.HealthCheckPath', 'message' => 'The param of HealthCheckPath is illegal.', 'http_code' => 400, 'description' => '指定的HealthCheckPath无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParam.HealthyThreshold', 'message' => 'The param of HealthyThreshold is illegal.', 'http_code' => 400, 'description' => '参数HealthyThreshold非法'], + ['code' => 'IllegalParam.Host', 'message' => 'The param of Rules.RuleConditions.HostConfig.Values is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleConditions.HostConfig.Values非法'], + ['code' => 'IllegalParam.HttpCode', 'message' => 'The param of Rules.RuleActions.FixedResponseConfig.HttpCode is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.FixedResponseConfig.HttpCode非法'], + ['code' => 'IllegalParam.HttpVersion', 'message' => 'The param of HttpVersion is illegal.', 'http_code' => 400, 'description' => '参数HttpVersion非法'], + ['code' => 'IllegalParam.InternetChargeType', 'message' => 'The param of InternetChargeType is illegal.', 'http_code' => 400, 'description' => '参数计费类型非法'], + ['code' => 'IllegalParam.IntervalTime', 'message' => 'The param of IntervalTime is illegal.', 'http_code' => 400, 'description' => '参数IntervalTime非法'], + ['code' => 'IllegalParam.IP', 'message' => 'The param of IP is illegal.', 'http_code' => 400, 'description' => '参数IP非法'], + ['code' => 'IllegalParam.Key', 'message' => 'The param of Rules.RuleActions.RemoveHeaderConfig.Key is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.RemoveHeaderConfig.Key非法'], + ['code' => 'IllegalParam.ListenerDescription', 'message' => 'The param of ListenerDescription is illegal.', 'http_code' => 400, 'description' => '参数ListenerDescription非法'], + ['code' => 'IllegalParam.ListenerIds', 'message' => 'The param of ListenerIds is illegal.', 'http_code' => 400, 'description' => '参数ListenerIds非法'], + ['code' => 'IllegalParam.ListenerPort', 'message' => 'The param of ListenerPort is illegal.', 'http_code' => 400, 'description' => '监听端口参数非法'], + ['code' => 'IllegalParam.ListenerProtocol', 'message' => 'The param of ListenerProtocol is illegal.', 'http_code' => 400, 'description' => '监听协议参数非法'], + ['code' => 'IllegalParam.LoadBalancerEdition', 'message' => 'The param of LoadBalancerEdition is illegal.', 'http_code' => 400, 'description' => '指定的LoadBalancerEdition无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParam.LoadBalancerIds', 'message' => 'The param of LoadBalancerIds is illegal.', 'http_code' => 400, 'description' => '参数LoadBalancerIds非法'], + ['code' => 'IllegalParam.LoadBalancerName', 'message' => 'The param of LoadBalancerName is illegal.', 'http_code' => 400, 'description' => '参数负载均衡实例名称非法'], + ['code' => 'IllegalParam.MaxResults', 'message' => 'The param of MaxResults is illegal.', 'http_code' => 400, 'description' => '参数MaxResults非法'], + ['code' => 'IllegalParam.Method', 'message' => 'The param of Method is illegal.', 'http_code' => 400, 'description' => '参数Method非法'], + ['code' => 'IllegalParam.Name', 'message' => 'The param of Name is illegal.', 'http_code' => 400, 'description' => '参数Name非法'], + ['code' => 'IllegalParam.NextToken', 'message' => 'The param of NextToken is illegal.', 'http_code' => 400, 'description' => '参数NextToken非法。'], + ['code' => 'IllegalParam.Order', 'message' => 'The param of Rules.RuleActions.TrafficLimitConfig.Order is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.TrafficLimitConfig.Order非法'], + ['code' => 'IllegalParam.Path', 'message' => 'The param of Rules.RuleActions.RewriteConfig.Path is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.RewriteConfig.Path非法'], + ['code' => 'IllegalParam.PayType', 'message' => 'The param of PayType is illegal.', 'http_code' => 400, 'description' => '参数付费类型非法'], + ['code' => 'IllegalParam.Port', 'message' => 'The param of Rules.RuleActions.Redirect.Port is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.Redirect.Port非法'], + ['code' => 'IllegalParam.Priority', 'message' => 'The param of Priority is illegal.', 'http_code' => 400, 'description' => '参数Priority非法'], + ['code' => 'IllegalParam.Protocol', 'message' => 'The param of Protocol is illegal.', 'http_code' => 400, 'description' => '参数Protocol非法'], + ['code' => 'IllegalParam.Query', 'message' => 'The param of Rules.RuleActions.Redirect.Query is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.Redirect.Query非法'], + ['code' => 'IllegalParam.Reason', 'message' => 'The param of ModificationProtectionConfig.Reason is illegal.', 'http_code' => 400, 'description' => '参数ModificationProtectionConfig.Reason非法'], + ['code' => 'IllegalParam.ResourceId', 'message' => 'ResourceId %s is illegal.', 'http_code' => 400, 'description' => '参数ResourceId非法'], + ['code' => 'IllegalParam.ResourceType', 'message' => 'The param of ResourceType is illegal.', 'http_code' => 400, 'description' => '指定的ResourceType无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParam.RuleAction', 'message' => 'The param of Rules.RuleActions is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions非法'], + ['code' => 'IllegalParam.RuleIds', 'message' => 'The param of RuleIds is illegal.', 'http_code' => 400, 'description' => '参数RuleIds非法'], + ['code' => 'IllegalParam.RuleIds', 'message' => 'Invalid RuleIds, array length cannot exceed 20.', 'http_code' => 400, 'description' => 'RuleIds 无效,数组长度不能超过20个'], + ['code' => 'IllegalParam.RuleName', 'message' => 'The param of Rules.RuleName is illegal.', 'http_code' => 400, 'description' => '参数RuleName非法'], + ['code' => 'IllegalParam.Rules.2.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param of Rules.2.RuleConditions.1.SourceIpConfig.Values is illegal.', 'http_code' => 400, 'description' => '参数Rules.2.RuleConditions.1.SourceIpConfig.Values非法'], + ['code' => 'IllegalParam.Scheduler', 'message' => 'The param of Scheduler is illegal.', 'http_code' => 400, 'description' => '参数Scheduler非法'], + ['code' => 'IllegalParam.SecurityPolicyName', 'message' => 'The param of SecurityPolicyName is illegal.', 'http_code' => 400, 'description' => '参数SecurityPolicyName非法'], + ['code' => 'IllegalParam.ServerGroupName', 'message' => 'The param of ServerGroupName is illegal.', 'http_code' => 400, 'description' => '参数ServerGroupName非法'], + ['code' => 'IllegalParam.ServerGroupStickySession', 'message' => 'The specified ServerGroupStickySession parameter is invalid.', 'http_code' => 400, 'description' => '指定的ServerGroupStickySession无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParam.ServerGroupType', 'message' => 'The param of ServerGroupType is illegal.', 'http_code' => 400, 'description' => '参数ServerGroupType非法'], + ['code' => 'IllegalParam.ServerIp', 'message' => 'The param of ServerIp is illegal.', 'http_code' => 400, 'description' => '参数ServerIp非法'], + ['code' => 'IllegalParam.Servers', 'message' => 'The param of Servers is illegal.', 'http_code' => 400, 'description' => '参数Servers非法'], + ['code' => 'IllegalParam.Status', 'message' => 'The param of Status is illegal.', 'http_code' => 400, 'description' => '参数状态非法'], + ['code' => 'IllegalParam.StickySession.cookie', 'message' => 'The param of StickySession.cookie is illegal.', 'http_code' => 400, 'description' => '参数StickySession.cookie非法'], + ['code' => 'IllegalParam.TagKey', 'message' => 'The param of TagKey is illegal.', 'http_code' => 400, 'description' => '参数TagKey非法'], + ['code' => 'IllegalParam.TagModels', 'message' => 'The param of TagModels is illegal.', 'http_code' => 400, 'description' => '参数TagModels非法'], + ['code' => 'IllegalParam.TagValue', 'message' => 'The param of TagValue is illegal.', 'http_code' => 400, 'description' => '参数TagValue非法'], + ['code' => 'IllegalParam.TargetType', 'message' => 'The param of TargetType is illegal.', 'http_code' => 400, 'description' => '指定的TargetType无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParam.Timeout', 'message' => 'The param of Timeout is illegal.', 'http_code' => 400, 'description' => '参数Timeout非法'], + ['code' => 'IllegalParam.TLSVersion', 'message' => 'The param of TLSVersion is illegal.', 'http_code' => 400, 'description' => '参数TLSVersion非法'], + ['code' => 'IllegalParam.TracingSample', 'message' => 'The param of AccessLogTracingConfig.TracingSample is illegal.', 'http_code' => 400, 'description' => '参数AccessLogTracingConfig.TracingSample非法'], + ['code' => 'IllegalParam.TracingType', 'message' => 'The param of AccessLogTracingConfig.TracingType is illegal.', 'http_code' => 400, 'description' => '参数AccessLogTracingConfig.TracingType非法'], + ['code' => 'IllegalParam.TrafficLimitConfig', 'message' => 'The param of Rules.RuleActions.TrafficLimitConfig.QPS is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.TrafficLimitConfig.QPS非法'], + ['code' => 'IllegalParam.Type', 'message' => 'The param of Rules.RuleActions.Type is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.Type非法'], + ['code' => 'IllegalParam.UnhealthyThreshold', 'message' => 'The param of UnhealthyThreshold is illegal.', 'http_code' => 400, 'description' => '参数UnhealthyThreshold非法'], + ['code' => 'IllegalParam.Value', 'message' => 'The param of Rules.RuleConditions.ResponseStatusCode.Values is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleConditions.ResponseStatusCode.Values非法'], + ['code' => 'IllegalParam.ValueType', 'message' => 'The param of Rules.RuleConditions.ValueType is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleConditions.ValueType非法'], + ['code' => 'IllegalParam.Weight', 'message' => 'The param of Rules.RuleActions.ForwardGroupConfig.ServerGroupTuples.Weight is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.ForwardGroupConfig.ServerGroupTuples.Weight非法'], + ['code' => 'IllegalParam.XForwardedForClientCertClientVerifyAlias', 'message' => 'The param of XForwardedForClientCertClientVerifyAlias is illegal.', 'http_code' => 400, 'description' => '参数XForwardedForClientCertClientVerifyAlias非法'], + ['code' => 'IllegalParam.XForwardedForClientCertFingerprintAlias', 'message' => 'The param of XForwardedForClientCertFingerprintAlias is illegal.', 'http_code' => 400, 'description' => '参数XForwardedForClientCertFingerprintAlias非法'], + ['code' => 'IllegalParam.XForwardedForClientCertIssuerDNAlias', 'message' => 'The param of XForwardedForClientCertIssuerDNAlias is illegal.', 'http_code' => 400, 'description' => '参数XForwardedForClientCertIssuerDNAlias非法'], + ['code' => 'IllegalParam.XForwardedForClientCertSubjectDNAlias', 'message' => 'The param of XForwardedForClientCertSubjectDNAlias is illegal.', 'http_code' => 400, 'description' => '参数XForwardedForClientCertSubjectDNAlias非法'], + ['code' => 'IllegalParamFormat.%s', 'message' => 'The param format of %s is illegal.', 'http_code' => 400, 'description' => '指定参数的格式无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParamFormat.ServerId', 'message' => 'The param format of ServerId is illegal.', 'http_code' => 400, 'description' => '指定的ServerId格式无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParamLength.%s', 'message' => 'The param length of %s is illegal.', 'http_code' => 400, 'description' => '指定的%s长度无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParamLength.Host', 'message' => 'The param length of Host is illegal.', 'http_code' => 400, 'description' => '参数Host长度非法'], + ['code' => 'IllegalParamLength.Key', 'message' => 'The param length of Rules.RuleActions.RemoveHeaderConfig.Key is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.RemoveHeaderConfig.Key长度非法'], + ['code' => 'IllegalParamLength.Path', 'message' => 'The param length of Rules.RuleActions.RewriteConfig.Path is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.RewriteConfig.Path长度非法'], + ['code' => 'IllegalParamLength.Query', 'message' => 'The param length of Rules.RuleActions.Redirect.Query is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.Redirect.Query长度非法'], + ['code' => 'IllegalParamLength.Value', 'message' => 'The param length of Rules.RuleConditions.HostConfig.Values is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleConditions.HostConfig.Values长度非法'], + ['code' => 'IllegalParamSize.%s', 'message' => 'The param size of %s is illegal.', 'http_code' => 400, 'description' => '指定的参数大小无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParamSize.AdditionalCertificates', 'message' => 'The param size of AdditionalCertificates is illegal.', 'http_code' => 400, 'description' => '指定的AdditionalCertificates大小无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParamSize.Certificates', 'message' => 'The param size of Certificates is illegal.', 'http_code' => 400, 'description' => '指定的Certificates大小无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParamSize.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param size of RuleConditions.1.SourceIpConfig.Values is illegal.', 'http_code' => 400, 'description' => '参数RuleConditions.1.SourceIpConfig.Values大小非法'], + ['code' => 'IllegalParamSize.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param of IllegalParamSize.RuleConditions.1.SourceIpConfig.Values is illegal.', 'http_code' => 400, 'description' => '参数IllegalParamSize.RuleConditions.1.SourceIpConfig.Values非法'], + ['code' => 'IllegalParamSize.Rules.2.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param size of Rules.2.RuleConditions.1.SourceIpConfig.Values is illegal.', 'http_code' => 400, 'description' => '参数Rules.2.RuleConditions.1.SourceIpConfig.Values大小非法'], + ['code' => 'IllegalParamSize.Rules.2.RuleConditions.1.SourceIpConfig.Values', 'message' => 'The param of IllegalParamSize.Rules.2.RuleConditions.1.SourceIpConfig.Values is illegal.', 'http_code' => 400, 'description' => '参数IllegalParamSize.Rules.2.RuleConditions.1.SourceIpConfig.Values非法'], + ['code' => 'IllegalParamSize.ServerGroupTuple', 'message' => 'The param size of ServerGroupTuple is illegal.', 'http_code' => 400, 'description' => '参数ServerGroupTuple大小非法'], + ['code' => 'IllegalParamSize.ServerGroupTuples', 'message' => 'The param size of ServerGroupTuples is illegal.', 'http_code' => 400, 'description' => '参数ServerGroupTuples大小非法'], + ['code' => 'IllegalParamSize.ServerGroupTuples', 'message' => 'The param of IllegalParamSize.ServerGroupTuples is illegal.', 'http_code' => 400, 'description' => '参数IllegalParamSize.ServerGroupTuples非法'], + ['code' => 'IllegalParamSize.Servers', 'message' => 'The param size of Servers is illegal.', 'http_code' => 400, 'description' => '指定的Servers大小无效。请检查参数约束,并在修改后重试。'], + ['code' => 'IllegalParamSize.Value', 'message' => 'The param size of Rules.RuleConditions.HostConfig.Values is illegal.', 'http_code' => 400, 'description' => '参数Rules.RuleConditions.HostConfig.Values大小非法'], + ['code' => 'IllegalParamSize.ZoneMappings', 'message' => 'The param size of ZoneMappings is illegal.', 'http_code' => 400, 'description' => '可用区参数大小非法'], + ['code' => 'IncorrectBusinessStatus.CommonBandwidthPackage', 'message' => 'The business status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s [%s]的业务状态无效。'], + ['code' => 'IncorrectBusinessStatus.Eip', 'message' => 'The business status of %s [%s]  is incorrect.', 'http_code' => 400, 'description' => '资源%s [%s]的业务状态无效。'], + ['code' => 'IncorrectBusinessStatus.Eip', 'message' => 'The business status of Eip [%s] is incorrect.', 'http_code' => 400, 'description' => '资源Eip [%s]的业务状态无效。'], + ['code' => 'IncorrectBusinessStatus.LoadBalancer', 'message' => 'The business status of %s [%s]  is incorrect.', 'http_code' => 400, 'description' => '资源%s [%s]的业务状态无效。'], + ['code' => 'IncorrectBusinessStatus.LoadBalancer', 'message' => 'The business status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '实例的当前状态不支持本次操作。'], + ['code' => 'IncorrectStatus.Acl', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '访问控制策略组ACL的当前状态不支持本次操作。'], + ['code' => 'IncorrectStatus.AclNotStable', 'message' => 'The status of %s [%s] is not stable.', 'http_code' => 400, 'description' => '访问控制策略组ACL的当前状态不支持本次操作。'], + ['code' => 'IncorrectStatus.CommonBandwidthPackage', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s [%s]的状态无效。'], + ['code' => 'IncorrectStatus.Eni', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s [%s]的状态无效。'], + ['code' => 'IncorrectStatus.HealthCheckTemplate', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s [%s]的状态无效。'], + ['code' => 'IncorrectStatus.Listener', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '监听的当前状态不支持本次操作。'."\n"], + ['code' => 'IncorrectStatus.LoadBalancer', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '实例的当前状态不支持本次操作。'."\n"], + ['code' => 'IncorrectStatus.Rule', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '转发规则的当前状态不支持本次操作。'."\n"], + ['code' => 'IncorrectStatus.SecurityPolicy', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '资源%s [%s]的状态无效。'], + ['code' => 'IncorrectStatus.ServerGroup', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => '服务器组状态无效。'], + ['code' => 'InternalError', 'message' => 'The request failed to be processed due to unknown errors or exceptions.', 'http_code' => 500, 'description' => '由于未知错误、异常或失败,请求处理失败。'], + ['code' => 'InvalidAccessLogRecordCustomizedHeadersEnabled', 'message' => 'AccessLogRecordCustomizedHeadersEnabled is invalid.', 'http_code' => 400, 'description' => '参数AccessLogRecordCustomizedHeadersEnabled无效'], + ['code' => 'InvalidCaEnabled', 'message' => 'CaEnabled is invalid.', 'http_code' => 400, 'description' => '参数CaEnabled无效'], + ['code' => 'InvalidCookieTimeout', 'message' => 'CookieTimeout is invalid.', 'http_code' => 400, 'description' => '参数CookieTimeout无效'], + ['code' => 'InvalidDeletionProtectionEnabled', 'message' => 'DeletionProtectionEnabled is invalid.', 'http_code' => 400, 'description' => '删除保护开关参数无效'], + ['code' => 'InvalidDryRun', 'message' => 'DryRun is invalid.', 'http_code' => 400, 'description' => 'DryRun参数无效'], + ['code' => 'InvalidEnabled', 'message' => 'Specified parameter Enabled is not valid.', 'http_code' => 400, 'description' => '参数Enabled无效'], + ['code' => 'InvalidGzipEnabled', 'message' => 'GzipEnabled is invalid.', 'http_code' => 400, 'description' => '参数GzipEnabled无效'], + ['code' => 'InvalidHealthCheckConnectPort', 'message' => 'HealthCheckConnectPort is invalid.', 'http_code' => 400, 'description' => '参数HealthCheckConnectPort无效'], + ['code' => 'InvalidHealthCheckInterval', 'message' => 'HealthCheckInterval is invalid.', 'http_code' => 400, 'description' => '参数HealthCheckInterval无效'], + ['code' => 'InvalidHealthCheckTcpFastCloseEnabled', 'message' => 'HealthCheckTcpFastCloseEnabled is invalid.', 'http_code' => 400, 'description' => '参数HealthCheckTcpFastCloseEnabled无效'], + ['code' => 'InvalidHealthCheckTimeout', 'message' => 'HealthCheckTimeout is invalid.', 'http_code' => 400, 'description' => '参数HealthCheckTimeout无效'], + ['code' => 'InvalidHealthyThreshold', 'message' => 'HealthyThreshold is invalid.', 'http_code' => 400, 'description' => '参数HealthyThreshold无效'], + ['code' => 'InvalidHttp2Enabled', 'message' => 'Http2Enabled is invalid.', 'http_code' => 400, 'description' => '参数Http2Enabled无效'], + ['code' => 'InvalidIdleTimeout', 'message' => 'IdleTimeout is invalid.', 'http_code' => 400, 'description' => '参数IdleTimeout无效'], + ['code' => 'InvalidInternetBandwidth', 'message' => 'InternetBandwidth is invalid.', 'http_code' => 400, 'description' => '参数公网带宽无效'], + ['code' => 'InvalidMaxResults', 'message' => 'MaxResults is invalid.', 'http_code' => 400, 'description' => '参数MaxResults无效'], + ['code' => 'InvalidParameter', 'message' => 'Invalid parameter, please check the parameter input.', 'http_code' => 400, 'description' => '无效参数,请检查参数输入。'], + ['code' => 'InvalidQPS', 'message' => 'Specified parameter QPS is not valid.', 'http_code' => 400, 'description' => '参数QPS无效'], + ['code' => 'InvalidQuicUpgradeEnabled', 'message' => 'QuicUpgradeEnabled is invalid.', 'http_code' => 400, 'description' => '参数QuicUpgradeEnabled无效'], + ['code' => 'InvalidRequestTimeout', 'message' => 'RequestTimeout is invalid.', 'http_code' => 400, 'description' => '参数RequestTimeout无效'], + ['code' => 'InvalidTracingEnabled', 'message' => 'TracingEnabled is invalid.', 'http_code' => 400, 'description' => '参数TracingEnabled无效'], + ['code' => 'InvalidUnhealthyThreshold', 'message' => 'UnhealthyThreshold is invalid.', 'http_code' => 400, 'description' => '参数UnhealthyThreshold无效'], + ['code' => 'InvalidXForwardedForClientCertClientVerifyEnabled', 'message' => 'XForwardedForClientCertClientVerifyEnabled is invalid.', 'http_code' => 400, 'description' => '参数XForwardedForClientCertClientVerifyEnabled无效'], + ['code' => 'InvalidXForwardedForClientCertFingerprintEnabled', 'message' => 'XForwardedForClientCertFingerprintEnabled is invalid.', 'http_code' => 400, 'description' => '参数XForwardedForClientCertFingerprintEnabled无效'], + ['code' => 'InvalidXForwardedForClientCertIssuerDNEnabled', 'message' => 'XForwardedForClientCertIssuerDNEnabled is invalid.', 'http_code' => 400, 'description' => '参数XForwardedForClientCertIssuerDNEnabled无效'], + ['code' => 'InvalidXForwardedForClientCertSubjectDNEnabled', 'message' => 'XForwardedForClientCertSubjectDNEnabled is invalid.', 'http_code' => 400, 'description' => '参数XForwardedForClientCertSubjectDNEnabled无效'], + ['code' => 'InvalidXForwardedForClientSrcPortEnabled', 'message' => 'XForwardedForClientSrcPortEnabled is invalid.', 'http_code' => 400, 'description' => '参数XForwardedForClientSrcPortEnabled无效'], + ['code' => 'InvalidXForwardedForEnabled', 'message' => 'XForwardedForEnabled is invalid.', 'http_code' => 400, 'description' => '参数XForwardedForEnabled无效'], + ['code' => 'InvalidXForwardedForProtoEnabled', 'message' => 'XForwardedForProtoEnabled is invalid.', 'http_code' => 400, 'description' => '参数XForwardedForProtoEnabled无效'], + ['code' => 'InvalidXForwardedForSLBIdEnabled', 'message' => 'XForwardedForSLBIdEnabled is invalid.', 'http_code' => 400, 'description' => '参数XForwardedForSLBIdEnabled无效'], + ['code' => 'InvalidXForwardedForSLBPortEnabled', 'message' => 'XForwardedForSLBPortEnabled is invalid.', 'http_code' => 400, 'description' => '参数XForwardedForSLBPortEnabled无效'], + ['code' => 'LockFailed', 'message' => 'The specified resource lock failed.', 'http_code' => 400, 'description' => '指定的资源锁定失败。'], + ['code' => 'Mismatch.IspType', 'message' => 'The IspType is mismatched for Eip and CommonBandwidthPackage.', 'http_code' => 400, 'description' => '共享带宽包和EIP的线路类型不匹配。'], + ['code' => 'Mismatch.LoadBalancerEditionAndConnectionDrain', 'message' => 'The %s and %s are mismatched.', 'http_code' => 400, 'description' => '参数%s和%s不匹配。'], + ['code' => 'Mismatch.LoadBalancerEditionAndSlowStartEnable', 'message' => 'The %s and %s are mismatched.', 'http_code' => 400, 'description' => '参数%s和%s不匹配。'], + ['code' => 'Mismatch.Protocol', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => '%s在%s和%s中不匹配。'], + ['code' => 'Mismatch.ServerGroupSchedulerAndSlowStartEnable', 'message' => 'The %s and %s are mismatched.', 'http_code' => 400, 'description' => '参数%s和%s不匹配。'], + ['code' => 'Mismatch.ServerType', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => '%s在%s和%s中不匹配。'], + ['code' => 'Mismatch.Type', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => '%s在%s和%s中不匹配。'], + ['code' => 'Mismatch.VpcId', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => '%s在%s和%s中不匹配。'], + ['code' => 'Mismatch.ZoneIdAndVSwitchId', 'message' => 'The %s and %s are mismatched.', 'http_code' => 400, 'description' => '%s和%s不匹配。'], + ['code' => 'Mismatch.ZoneIdAndVSwitchId', 'message' => 'The ZoneId and VSwitchId are mismatched.', 'http_code' => 400, 'description' => '可用区ID和交换机ID不匹配。'], + ['code' => 'MissingLoadBalancerBillingConfig.PayType', 'message' => 'LoadBalancerBillingConfig.PayType is mandatory for this action.', 'http_code' => 400, 'description' => 'LoadBalancerBillingConfig.PayType参数必传'], + ['code' => 'MissingParam.%s', 'message' => 'The param of %s is missing.', 'http_code' => 400, 'description' => '参数%s缺失。'], + ['code' => 'MissingParam.CaCertificates', 'message' => 'The param of CaCertificates is missing.', 'http_code' => 400, 'description' => '缺少参数CaCertificates'], + ['code' => 'MissingParam.Certificates', 'message' => 'The param of Certificates is missing.', 'http_code' => 400, 'description' => '参数Certificates缺失'], + ['code' => 'MissingParam.Ciphers', 'message' => 'The param of Ciphers is missing.', 'http_code' => 400, 'description' => '参数Ciphers缺失'], + ['code' => 'MissingParam.Cookie', 'message' => 'The param of Cookie is missing.', 'http_code' => 400, 'description' => '参数Cookie缺失'], + ['code' => 'MissingParam.Key', 'message' => 'The param of Rules.RuleActions.RemoveHeaderConfig.Key is missing.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.RemoveHeaderConfig.Key丢失'], + ['code' => 'MissingParam.LoadBalancerId', 'message' => 'The param of LoadBalancerId is missing.', 'http_code' => 400, 'description' => '参数LoadBalancerId缺失'], + ['code' => 'MissingParam.LoadBalancerName', 'message' => 'The param of LoadBalancerName is missing.', 'http_code' => 400, 'description' => '参数LoadBalancerName缺失'], + ['code' => 'MissingParam.Port', 'message' => 'The param of Port is missing.', 'http_code' => 400, 'description' => '参数Port缺失'], + ['code' => 'MissingParam.QuicListenerId', 'message' => 'The param of QuicListenerId is missing.', 'http_code' => 400, 'description' => '缺少参数QuicListenerId'], + ['code' => 'MissingParam.StickySession', 'message' => 'The param of StickySession is missing.', 'http_code' => 400, 'description' => '参数StickySession缺失'], + ['code' => 'MissingParam.StickySession.cookie', 'message' => 'The param of StickySession.cookie is missing.', 'http_code' => 400, 'description' => '参数StickySession.cookie缺失'], + ['code' => 'MissingParam.TagsOrResourceIds', 'message' => 'The param of TagsOrResourceIds is missing.', 'http_code' => 400, 'description' => '标签或资源ID参数缺失'], + ['code' => 'MissingParam.TLSVersions', 'message' => 'The param of TLSVersions is missing.', 'http_code' => 400, 'description' => '参数TLSVersions缺失'], + ['code' => 'MissingParam.Type', 'message' => 'The param of Type is missing.', 'http_code' => 400, 'description' => '参数Type缺失'], + ['code' => 'MissingParam.VpcId', 'message' => 'The param of VpcId is missing.', 'http_code' => 400, 'description' => '参数VpcId缺失'], + ['code' => 'MissingParam.Weight', 'message' => 'The param of Rules.RuleActions.ForwardGroupConfig.ServerGroupTuples.Weight is missing.', 'http_code' => 400, 'description' => '参数Rules.RuleActions.ForwardGroupConfig.ServerGroupTuples.Weight丢失'], + ['code' => 'MissingZoneMappings', 'message' => 'ZoneMappings is mandatory for this action.', 'http_code' => 400, 'description' => '可用区参数必传'], + ['code' => 'NotExist.ResourceGroup', 'message' => 'ResourceGroup does not exist.', 'http_code' => 400, 'description' => '资源组不存在'], + ['code' => 'OperationDenied.AcceleratorCidrConflictWithAclEntity', 'message' => 'The operation is not allowed because of ga back-to-source cidr conflict with acl entity which associated with listener in loadbalancer.', 'http_code' => 400, 'description' => 'GA回源Ip与Acl地址段冲突,无法开启全球加速'], + ['code' => 'OperationDenied.AcceleratorIpInAclBlackList', 'message' => 'The operation is not allowed because of ga back-source Ip in blacklist acl', 'http_code' => 400, 'description' => 'GA回源Ip在黑名单Acl中,无法开启全球加速'], + ['code' => 'OperationDenied.AccessLogDisabled', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,实例未开启访问日志。'."\n"], + ['code' => 'OperationDenied.AccessLogEnabled', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因访问日志已开启。'], + ['code' => 'OperationDenied.AclNotSupport', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '因为%s,该操作不被允许。'], + ['code' => 'OperationDenied.AddressTypeNotChanged', 'message' => 'The operation is not allowed because of AddressTypeNotChanged.', 'http_code' => 400, 'description' => '该负载均衡实例的网络类型未变更'], + ['code' => 'OperationDenied.AddressTypeNotChanged', 'message' => 'The address type of the specified loadbalancer has not been changed.', 'http_code' => 400, 'description' => '应用型负载均衡实例的地址类型没有改变。'], + ['code' => 'OperationDenied.CaEnableListenerNotSupportGA', 'message' => 'The operation is not allowed because of the ALB instance has a listener configured for mutual authentication.', 'http_code' => 400, 'description' => 'ALB实例存在配置双向认证的监听,不支持开启应用加速'], + ['code' => 'OperationDenied.CertCommonNameEmpty', 'message' => 'The operation is not allowed because of CertCommonNameEmpty.', 'http_code' => 400, 'description' => '当前操作被拒绝,证书域名非法。'], + ['code' => 'OperationDenied.CertificateTypeMismatched', 'message' => 'The operation is not allowed because of CertificateTypeMismatched.', 'http_code' => 400, 'description' => '操作被拒绝,原因是证书类型不匹配。'], + ['code' => 'OperationDenied.CloudBox', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'], + ['code' => 'OperationDenied.ConfigLastActiveZoneNotSupport', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '禁止对最后一个Active状态的可用区进行删除或停止或摘除DNS A记录操作'], + ['code' => 'OperationDenied.ConfigManagedEnabled', 'message' => 'The operation is not allowed because the ConfigManaged is enabled.', 'http_code' => 400, 'description' => '操作被拒绝,原因是当前实例已开启配置管理功能。'], + ['code' => 'OperationDenied.CrossListenerAScripts', 'message' => 'The operation is not allowed because of %s', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'], + ['code' => 'OperationDenied.CrossLoadBalancerQUICListener', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'."\n"], + ['code' => 'OperationDenied.CrossLoadBalancerRules', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'."\n"], + ['code' => 'OperationDenied.DefaultCertificateUsed', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是默认证书不允许解除关联。'], + ['code' => 'OperationDenied.DeletionProtectionEnabled', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'."\n"], + ['code' => 'OperationDenied.Downgrade', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'."\n"], + ['code' => 'OperationDenied.EciNotSupportJobType', 'message' => 'he operation is not allowed because of eci not support job type.', 'http_code' => 400, 'description' => '不支持将Job类型的ECI加入到服务器组中'], + ['code' => 'OperationDenied.EciNotSupportJobType', 'message' => 'The operation is not allowed because of eci not support job type.', 'http_code' => 400, 'description' => '服务器组不支持添加Job优化型ECI实例。'], + ['code' => 'OperationDenied.EditionNotChanged', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是版本未变化。'."\n"], + ['code' => 'OperationDenied.EniStatusNotSupport', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'Eni当前状态不支持此操作'], + ['code' => 'OperationDenied.GaNotSupportAcceleratorRegion', 'message' => 'The operation is not allowed because of ga not support this accelerator region.', 'http_code' => 400, 'description' => '加速区域不存在。'], + ['code' => 'OperationDenied.GaNotSupportAdditionalCertificate', 'message' => 'The operation is not allowed because of loadbalancer configured with additional certificate not support application acceleration.', 'http_code' => 400, 'description' => 'ALB实例已经配置扩展证书,暂不支持开启应用加速。'], + ['code' => 'OperationDenied.GaNotSupportCustomSecurityPolicy', 'message' => 'The operation is not allowed because of the ALB instance configured with custom TLS.', 'http_code' => 400, 'description' => '不允许操作,配置了自定义TLS的ALB实例,不支持开启应用加速'], + ['code' => 'OperationDenied.GaNotSupportQuic', 'message' => 'The operation is not allowed because of Ga not support Quic.', 'http_code' => 400, 'description' => '不允许操作,负载均衡实例下存在QUIC协议类型监听,暂不支持一键开启全球加速'], + ['code' => 'OperationDenied.GRPCServerGroup', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是存在绑定本GRPC服务器组的监听没有启用HTTP2.0。'], + ['code' => 'OperationDenied.GRPCServerGroupNotSupport', 'message' => 'The operation is not allowed because of ALB instances associated with gRPC backend server groups.', 'http_code' => 400, 'description' => '关联了gRPC协议类型后端服务器组的ALB实例,不支持开启应用加速'], + ['code' => 'OperationDenied.HttpListenerNotSupport', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是不支持HTTP协议监听。'], + ['code' => 'OperationDenied.IntranetLoadBalancer', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因私网实例不支持绑定共享带宽包。'."\n"], + ['code' => 'OperationDenied.IpGroupCanNotUsedForMirrorAction', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'."\n"], + ['code' => 'OperationDenied.Ipv6InternetInstance', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'], + ['code' => 'OperationDenied.Ipv6IntranetInstance', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'], + ['code' => 'OperationDenied.LbAssociatedAclCanNotJoinSecurityGroup', 'message' => 'The operation is not allowed because of loadBalancer associated acl can not join security group.', 'http_code' => 400, 'description' => '不允许该操作,原因是负载均衡实例下的监听已经绑定过访问控制策略,则不允许再加入安全组'], + ['code' => 'OperationDenied.LbAssociatedGrpcServerGroupNotSupportGA', 'message' => 'The operation is not allowed because of ALB instances associated with gRPC backend server groups.', 'http_code' => 400, 'description' => '关联了gRPC协议类型后端服务器组的ALB实例,不支持开启应用加速'], + ['code' => 'OperationDenied.ListenerConfiguring', 'message' => 'The operation is not allowed because of Listener configuring.', 'http_code' => 400, 'description' => '监听变配中,不支持开启应用加速'], + ['code' => 'OperationDenied.ListenerEnabledCaNotSupportGA', 'message' => 'The operation is not allowed because of the ALB instance has a listener configured for mutual authentication.', 'http_code' => 400, 'description' => 'ALB实例存在配置双向认证的监听,不支持开启应用加速'], + ['code' => 'OperationDenied.ListenerIdInconsistent', 'message' => 'The operation is not allowed because of ListenerIdInconsistent.', 'http_code' => 400, 'description' => '操作被拒绝,原因是当前转发规则属于不同的监听。'], + ['code' => 'OperationDenied.LoadbalancerAlreadyEnableAccelerator', 'message' => 'The operation is not allowed because of Global Acceleration has been enabled for the instance.', 'http_code' => 400, 'description' => '实例已经开启过全球加速'], + ['code' => 'OperationDenied.LoadbalancerAlreadyEnabledAccelerator', 'message' => 'The operation is not allowed because of Global Acceleration has been enabled for the instance.', 'http_code' => 400, 'description' => '实例已经开启过全球加速。'], + ['code' => 'OperationDenied.LoadBalancerJoinedSecurityGroupNotSupportAcl', 'message' => 'The operation is not allowed because of loadbalancer joined security group not support acl.', 'http_code' => 400, 'description' => '不允许操作,原因是负载均衡实例加入安全组后,不能再绑定访问控制策略'], + ['code' => 'OperationDenied.MirrorActionSupportHttpGroupOnly', 'message' => 'The operation is not allowed because of MirrorActionSupportHttpGroupOnly.', 'http_code' => 400, 'description' => '操作被拒绝,原因是流量镜像动作只支持HTTP类型的服务器组。'], + ['code' => 'OperationDenied.NoAvailableBusinessRegionForGa', 'message' => 'The operation is not allowed because of Global Acceleration is not available in this region.', 'http_code' => 400, 'description' => '全球加速GA在此地域暂未开服,不支持开启应用加速。'], + ['code' => 'OperationDenied.NoAvailableVSwitch', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'], + ['code' => 'OperationDenied.NoListenerInLoadbalancer', 'message' => 'The operation is not allowed because of the ALB instance does not contain listeners.', 'http_code' => 400, 'description' => '实例中不包含监听,不支持开启应用加速'], + ['code' => 'OperationDenied.NonDualStackInstance', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'], + ['code' => 'OperationDenied.OnlyFixedAddressAllocatedModeSupported', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '负载均衡实例的IP模式不支持此操作'], + ['code' => 'OperationDenied.OnlyPostPaidEipSupported', 'message' => 'The operation is not allowed because of OnlyPostPaidEipSupported.', 'http_code' => 400, 'description' => '操作被拒绝,原因是只支持后付费类型的弹性公网IP。'], + ['code' => 'OperationDenied.ProtectedPrivateIPv4AddressChanged', 'message' => 'The operation is not allowed because of ProtectedPrivateIPv4AddressChanged.', 'http_code' => 400, 'description' => '存量可用区的IPv4私网IP地址不能变化。'], + ['code' => 'OperationDenied.ProtocolMustSameForForwardGroupAction', 'message' => 'The operation is not allowed because of ProtocolMustSameForForwardGroupAction.', 'http_code' => 400, 'description' => '操作被禁止,原因:必须是相同的协议'], + ['code' => 'OperationDenied.RewriteMissingForwardGroup', 'message' => 'The operation is not allowed because of RewriteMissingForwardGroup.', 'http_code' => 400, 'description' => '操作被拒绝,原因是RewriteMissingForwardGroup。'], + ['code' => 'OperationDenied.SameGroupForForwardAndMirrorAction', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'."\n"], + ['code' => 'OperationDenied.SecurityGroupNotSupport', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '不支持绑定安全组'], + ['code' => 'OperationDenied.ServerGroupProtocolNotSupport', 'message' => 'The operation is not allowed because of ServerGroupProtocolNotSupport.', 'http_code' => 400, 'description' => '操作被拒绝,原因是ServerGroupProtocolNotSupport。'], + ['code' => 'OperationDenied.ServiceManagedResource', 'message' => 'The operation is not allowed because the current resource is managed resource.', 'http_code' => 400, 'description' => '操作被拒绝,原因是当前操作资源为托管资源。'], + ['code' => 'OperationDenied.ServiceManagedResource', 'message' => 'The operation is not allowed because the current resource of %s is managed resource.', 'http_code' => 400, 'description' => '操作被拒绝,原因是资源%s为托管资源。'], + ['code' => 'OperationDenied.TcpFastCloseNotSupport', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'], + ['code' => 'OperationDenied.UnsupportedInternetChargeTypeConvert', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'."\n"], + ['code' => 'OperationDenied.UpstreamKeepaliveDisabled', 'message' => 'The operation is not allowed because of UpstreamKeepaliveDisabled.', 'http_code' => 400, 'description' => '不允许更新是否开启后端长连接为关闭状态'], + ['code' => 'OperationDenied.UpstreamKeepaliveEnabled', 'message' => 'The operation is not allowed because of UpstreamKeepaliveEnabled.', 'http_code' => 400, 'description' => '不允许更新是否开启后端长连接为开启状态'], + ['code' => 'OperationDenied.VgwVipNotFound', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'], + ['code' => 'OperationDenied.VpcNotSupportIpv6', 'message' => 'The operation is not allowed because of VpcNotSupportIpv6.', 'http_code' => 400, 'description' => '不允许该操作,原因:当前VPC未开启IPv6功能'], + ['code' => 'OperationDenied.VpcVportNotFound', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '不允许该操作,原因:vpc端口未找到'], + ['code' => 'OperationDenied.WafVersionNotSupport', 'message' => 'The operation is not allowed because of WafVersionNotSupport.', 'http_code' => 400, 'description' => '不支持当前WAF版本,请升级到 WAF3.0 后重试。'], + ['code' => 'OperationDenied.WrongTargetAddressType', 'message' => 'The operation is not allowed because of WrongTargetAddressType.', 'http_code' => 400, 'description' => '网络类型指定错误'], + ['code' => 'OperationDenied.ZoneMappingsNotChanged', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是可用区没有变化。'."\n"], + ['code' => 'OperationDenied.ZoneVSwitchChanged', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '操作被拒绝,原因是%s。'."\n"], + ['code' => 'OperationDenied.ZoneVSwitchNotExist', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '实例不包含请求中的可用区和虚拟交换机'], + ['code' => 'OperationDenyed.ServiceLinkedRoleNotExist', 'message' => 'The service linked role AliyunServiceRoleForAlb does not exist.', 'http_code' => 400, 'description' => '用户账号未关联阿里云服务角色 AliyunServiceRoleForAlb'], + ['code' => 'OperationFailed.CancelShiftLoadBalancerZonesFailed', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '恢复此可用区中IP的DNS A记录失败'], + ['code' => 'OperationFailed.CertCommonNameEmpty', 'message' => 'The operation failed because of CertCommonNameEmpty.', 'http_code' => 400, 'description' => '操作失败,原因是证书CommonName为空。'], + ['code' => 'OperationFailed.DefaultCertificateNotFound', 'message' => 'The operation failed because of %s.', 'http_code' => 400, 'description' => '操作失败,原因是%s。'], + ['code' => 'OperationFailed.LockFailed', 'message' => 'The operation failed because of LockFailed.', 'http_code' => 400, 'description' => '操作失败,原因是当前资源正在变配中。'], + ['code' => 'OperationFailed.ResourceGroupStatusCheckFail', 'message' => 'The operation failed because of ResourceGroupStatusCheckFail.', 'http_code' => 400, 'description' => '操作失败,原因是ResourceGroupStatusCheckFail。'], + ['code' => 'OperationFailed.ShiftLoadBalancerZonesFailed', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => '摘除此可用区中IP的DNS A记录失败'."\n"], + ['code' => 'QuotaExceeded.AclEntriesNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['code' => 'QuotaExceeded.AclsNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['code' => 'QuotaExceeded.ConnectionDrainTimeout', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '参数%s超过配额限制,当前值%s,配额值%s。'], + ['code' => 'QuotaExceeded.HealthCheckTemplatesNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['code' => 'QuotaExceeded.LoadBalancerCertificatesNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['code' => 'QuotaExceeded.LoadBalancersNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['code' => 'QuotaExceeded.RuleActionsNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'."\n"], + ['code' => 'QuotaExceeded.RuleMatchEvaluationsNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '转发规则条件数已超额度限制。'."\n"], + ['code' => 'QuotaExceeded.RuleWildcardsNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'."\n"], + ['code' => 'QuotaExceeded.SecurityPoliciesNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['code' => 'QuotaExceeded.ServerGroupsNum', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['code' => 'QuotaExceeded.SlowStartDuration', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => '参数%s超过配额限制,当前值%s,配额值%s。'], + ['code' => 'ResourceAlreadyAssociated.Certificate', 'message' => 'The specified resource %s is already associated.', 'http_code' => 400, 'description' => '证书已被关联。'."\n"], + ['code' => 'ResourceAlreadyAssociated.Listener', 'message' => 'The specified resource %s is already associated.', 'http_code' => 400, 'description' => '资源%s已被关联。'], + ['code' => 'ResourceAlreadyAssociated.SecurityGroup', 'message' => 'The specified resource of %s is already associated.', 'http_code' => 400, 'description' => '安全组已经绑定了此负载均衡实例'], + ['code' => 'ResourceAlreadyExist.AclEntry', 'message' => 'The specified resource %s already exists.', 'http_code' => 400, 'description' => '访问控制策略组中的IP条目已存在。'], + ['code' => 'ResourceAlreadyExist.Listener', 'message' => 'The specified resource %s is already exist.', 'http_code' => 400, 'description' => '同端口监听已存在。'."\n"], + ['code' => 'ResourceInConfiguring', 'message' => 'The specified resource of %s is being configured. Please try again later.', 'http_code' => 400, 'description' => '指定的资源在变更中,请稍后再试'], + ['code' => 'ResourceInConfiguring.BackendServer', 'message' => 'The specified resource of BackendServer is being configured. Please try again later.', 'http_code' => 400, 'description' => '指定的资源BackendServer正在配置中,请稍后再试'], + ['code' => 'ResourceInConfiguring.BackendServer', 'message' => 'The specified resource of %s is being configured, please try again later.', 'http_code' => 400, 'description' => '指定的资源%s正在配置中,请稍后再试'], + ['code' => 'ResourceInConfiguring.Listener', 'message' => 'The specified resource %s is configuring, please try again later.', 'http_code' => 400, 'description' => '资源%s正在变配中,请稍后重试。'], + ['code' => 'ResourceInConfiguring.Listener', 'message' => 'The specified listener is being configured, please try again later.', 'http_code' => 400, 'description' => '资源正在变配中,请稍后重试。'], + ['code' => 'ResourceInConfiguring.Listener', 'message' => 'The specified resource is being configured, please try again later.', 'http_code' => 400, 'description' => '资源正在变配中,请稍后重试。'], + ['code' => 'ResourceInConfiguring.Listener', 'message' => 'The specified resource of %s is being configured, please try again later.', 'http_code' => 400, 'description' => '指定的资源%s正在配置中,请稍后再试。'], + ['code' => 'ResourceInConfiguring.LoadBalancer', 'message' => 'The specified resource of %s is being configured, please try again later.', 'http_code' => 400, 'description' => '指定的资源%s正在配置中,请稍后再试。'], + ['code' => 'ResourceInConfiguring.SecurityPolicy', 'message' => 'The specified resource %s is being configured. Please try again later.', 'http_code' => 400, 'description' => '资源%s正在变配中,请稍后重试。'], + ['code' => 'ResourceInUse.Acl', 'message' => 'The specified resource %s is in use.', 'http_code' => 400, 'description' => '资源%s正在使用中。'], + ['code' => 'ResourceInUse.Eni', 'message' => 'The specified resource %s is in use.', 'http_code' => 400, 'description' => '资源%s正在使用中。'], + ['code' => 'ResourceInUse.IP', 'message' => 'The specified resource %s is in use.', 'http_code' => 400, 'description' => '资源%s正在使用中。'], + ['code' => 'ResourceInUse.Listener', 'message' => 'The specified resource %s is in use.', 'http_code' => 400, 'description' => '资源%s正在使用中。'."\n"], + ['code' => 'ResourceInUse.SecurityPolicy', 'message' => 'The specified resource %s is in use.', 'http_code' => 400, 'description' => '自定义安全策略正在使用中。'], + ['code' => 'ResourceInUse.ServerGroup', 'message' => 'The specified resource %s is in use.', 'http_code' => 400, 'description' => '资源%s正在使用中。'], + ['code' => 'ResourceInUse.ServerGroup', 'message' => 'The specified server group is in use.', 'http_code' => 400, 'description' => '服务器组正在使用中。'], + ['code' => 'ResourceNotAssociated.Acl', 'message' => 'The specified resource %s is not associated.', 'http_code' => 404, 'description' => '资源%s未被关联。'], + ['code' => 'ResourceNotAssociated.Certificate', 'message' => 'The specified resource %s is not associated.', 'http_code' => 400, 'description' => '资源%s未被关联。'], + ['code' => 'ResourceNotAssociated.SecurityGroup', 'message' => 'The specified resource of %s is not associated.', 'http_code' => 400, 'description' => '安全组没有绑定此负载均衡实例'], + ['code' => 'ResourceNotEnough.VSwitchIp', 'message' => 'The specified resource %s is not enough.', 'http_code' => 400, 'description' => '资源%s不足。'."\n"], + ['code' => 'ResourceNotFound', 'message' => 'The specified resource (%s) is not found.', 'http_code' => 400, 'description' => '找不到指定的资源(%s)'], + ['code' => 'ResourceNotFound.Acl', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '访问控制策略组ACL不存在。'], + ['code' => 'ResourceNotFound.AclEntry', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.AScript', 'message' => 'The specified resource %s is not found.', 'http_code' => 400, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.Ascript', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.BackendServer', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '服务器组不存在。'], + ['code' => 'ResourceNotFound.Certificate', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.Certificate', 'message' => 'The specified certificate is not found.', 'http_code' => 404, 'description' => '指定的证书不存在。'], + ['code' => 'ResourceNotFound.CommonBandwidthPackage', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.Eci', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => 'Eci服务器不存在。'], + ['code' => 'ResourceNotFound.Ecs', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => 'Ecs服务器不存在。'], + ['code' => 'ResourceNotFound.Eip', 'message' => 'The specified resource ResourceNotFound.Eip is not found.', 'http_code' => 400, 'description' => '资源弹性公网IP不存在。'], + ['code' => 'ResourceNotFound.Eni', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.HealthCheckTemplate', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.Ipv6Gateway', 'message' => 'The specified resource is not found.', 'http_code' => 404, 'description' => 'vpc ipv6网关资源不存在'], + ['code' => 'ResourceNotFound.Listener', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '监听不存在。'], + ['code' => 'ResourceNotFound.LoadBalancer', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.LoadBalancer', 'message' => 'The specified LoadBalancer is not found.', 'http_code' => 404, 'description' => '指定的实例不存在。'], + ['code' => 'ResourceNotFound.LoadBalancer', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.ResourceGroup', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.Rule', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.SecurityGroup', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '找不到安全组资源'], + ['code' => 'ResourceNotFound.SecurityPolicy', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'], + ['code' => 'ResourceNotFound.ServerGroup', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '后端服务器组不存在。'], + ['code' => 'ResourceNotFound.ServerLoadBalancer', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => '找不到负载均衡资源'], + ['code' => 'ResourceNotFound.Vpc', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => 'VPC不存在。'], + ['code' => 'ResourceNotFound.VSwitch', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => '资源%s不存在。'."\n"], + ['code' => 'ResourceQuotaExceeded.AclEntriesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ['code' => 'ResourceQuotaExceeded.AScriptLinesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['code' => 'ResourceQuotaExceeded.AScriptsNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['code' => 'ResourceQuotaExceeded.AScriptsTotalLinesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,目前已使用%s,配额为%s。'], + ['code' => 'ResourceQuotaExceeded.FcServerGroupServersNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ['code' => 'ResourceQuotaExceeded.ListenerAclEntriesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ['code' => 'ResourceQuotaExceeded.LoadBalancerAclEntriesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ['code' => 'ResourceQuotaExceeded.LoadBalancerCertificatesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '实例证书已超额度限制。'], + ['code' => 'ResourceQuotaExceeded.LoadBalancerListenersNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ['code' => 'ResourceQuotaExceeded.LoadBalancerRulesNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '转发规则数已超额度限制。'], + ['code' => 'ResourceQuotaExceeded.LoadBalancerServersNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '后端服务器数已超额度限制。'], + ['code' => 'ResourceQuotaExceeded.SecurityGroupNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '实例绑定的安全组数目超限'], + ['code' => 'ResourceQuotaExceeded.SecurityPolicyAttachedNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。'], + ['code' => 'ResourceQuotaExceeded.ServerAddedNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '服务器添加到组已超额度限制。'], + ['code' => 'ResourceQuotaExceeded.ServerGroupAttachedNum', 'message' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', 'http_code' => 400, 'description' => '服务器组可被关联数已超额度限制。'], + ['code' => 'ServiceUnavailable', 'message' => 'The request has failed due to a temporary failure of the server.', 'http_code' => 400, 'description' => '请求因服务器暂时性故障而失败。'], + ['code' => 'SystemBusy', 'message' => 'System is busy, please try again later.', 'http_code' => 400, 'description' => '当前系统繁忙,请稍后重试。'], + ['code' => 'SystemBusy', 'message' => 'System is busy now, please try again later.', 'http_code' => 400, 'description' => '当前系统繁忙,请稍后重试。'], + ['code' => 'Throttling', 'message' => 'Request was denied due to flow control.', 'http_code' => 429, 'description' => '当前请求过于频繁,请稍后重试。'], + ['code' => 'UnauthorizedRegion', 'message' => 'The specified region of %s is not authorized.', 'http_code' => 403, 'description' => '指定地域实例不可见。'], + ['code' => 'UnauthorizedZone', 'message' => 'The specified zone of %s is not authorized.', 'http_code' => 403, 'description' => '指定可用区%s不可见。'], + ['code' => 'UnsupportedFeature.ConnectionDrain', 'message' => 'The feature of %s is not supported.', 'http_code' => 400, 'description' => '不支持%s特性。'], + ['code' => 'UnsupportedFeature.CookieForward', 'message' => 'The feature of CookieForward is not supported.', 'http_code' => 400, 'description' => '基于COOKIE转发特性不支持。'], + ['code' => 'UnsupportedFeature.CustomizeTLS', 'message' => 'The feature of CustomizeTLS is not supported.', 'http_code' => 400, 'description' => '自定义TLS算法套件特性不支持。'], + ['code' => 'UnsupportedFeature.FcServerGroup', 'message' => 'The feature of TcpFastClose is not supported.', 'http_code' => 400, 'description' => 'ALB挂函数计算FC性还未支持。'], + ['code' => 'UnsupportedFeature.FcServerGroup', 'message' => 'Server groups of type FC are not supported.', 'http_code' => 400, 'description' => '不支持FC类型的服务器组'], + ['code' => 'UnsupportedFeature.FC_SUPPORT_CA', 'message' => 'The feature of FC SUPPORT CA is not supported.', 'http_code' => 400, 'description' => '监听不支持双向认证'], + ['code' => 'UnsupportedFeature.FixResponse', 'message' => 'The feature of FixResponse is not supported.', 'http_code' => 400, 'description' => '返回固定响应特性不支持。'], + ['code' => 'UnsupportedFeature.FullTraceHttps', 'message' => 'The feature of FullTraceHttps is not supported for current instance.', 'http_code' => 400, 'description' => '当前实例版本不支持全链路HTTPS特性。'], + ['code' => 'UnsupportedFeature.GroupStickySession', 'message' => 'The feature of GroupStickySession is not supported.', 'http_code' => 400, 'description' => '服务器组间会话保持特性还未支持。'], + ['code' => 'UnsupportedFeature.GRPC', 'message' => 'The feature of GRPC is not supported.', 'http_code' => 400, 'description' => 'Grpc特性还未支持。'], + ['code' => 'UnsupportedFeature.HttpMethodForward', 'message' => 'The feature of HttpMethodForward is not supported.', 'http_code' => 400, 'description' => '基于HTTP Method转发特性不支持。'], + ['code' => 'UnsupportedFeature.IpServerGroup', 'message' => 'The feature of IpServerGroup is not supported.', 'http_code' => 400, 'description' => 'IP Target的后端服务器组类型还未支持。'], + ['code' => 'UnsupportedFeature.QueryStringForward', 'message' => 'The feature of QueryStringForward is not supported.', 'http_code' => 400, 'description' => '基于QueryString转发特性不支持。'], + ['code' => 'UnsupportedFeature.ResponseRule', 'message' => 'The feature of ResponseRule is not supported.', 'http_code' => 400, 'description' => '不支持Response方向的转发规则配置。'], + ['code' => 'UnsupportedFeature.Rewrite', 'message' => 'The feature of Rewrite is not supported.', 'http_code' => 400, 'description' => '不支持转发规则Rewrite动作。'], + ['code' => 'UnsupportedFeature.SelectCommonBandwidthPackage', 'message' => 'The feature of SelectCommonBandwidthPackage is not supported.', 'http_code' => 400, 'description' => '实例不支持绑定共享带宽包'], + ['code' => 'UnsupportedFeature.ServiceName', 'message' => 'The feature of ServiceName is not supported.', 'http_code' => 400, 'description' => '不支持ServiceName特性'], + ['code' => 'UnsupportedFeature.SlowStart', 'message' => 'The feature of %s is not supported.', 'http_code' => 400, 'description' => '不支持%s特性。'], + ['code' => 'UnsupportedFeature.SourceIpCondition', 'message' => 'The feature of SourceIpCondition is not supported.', 'http_code' => 400, 'description' => '基于源IP业务流量匹配特性还未支持。'], + ['code' => 'UnsupportedFeature.SupportCA', 'message' => 'The feature of SupportCA is not supported.', 'http_code' => 400, 'description' => '不支持双向认证特性。'], + ['code' => 'UnsupportedFeature.TcpFastClose', 'message' => 'The feature of TcpFastClose is not supported.', 'http_code' => 400, 'description' => '健康检查快速关闭特性还未支持。'], + ['code' => 'UnsupportedFeature.UpstreamKeepalive', 'message' => 'The feature of UpstreamKeepalive is not supported.', 'http_code' => 400, 'description' => '不支持开启后端长链接特性'], + ['code' => 'UnsupportedRegion', 'message' => 'The feature of %s is not supported in region of %s.', 'http_code' => 400, 'description' => '特性%s还未在地域%s开通。'], + ['code' => 'UnsupportedZone', 'message' => 'The feature of %s is not supported in zone of %s.', 'http_code' => 400, 'description' => '特性%s还未在可用区%s开通。'], + ['code' => 'OperationDenied.DeploymentSetsNotSharedToAlb', 'message' => 'DeploymentSets are not shared to alb.', 'http_code' => 400, 'description' => '部署集没有共享给ALB。'], + ['code' => 'OperationDenied.CACertificateCorrupted', 'message' => 'The CA certificate is corrupted.', 'http_code' => 400, 'description' => 'CA证书已经损坏'], + ], + 'changeSet' => [], + 'ram' => [ + 'productCode' => 'ALB', + 'productName' => '负载均衡', + 'ramCodes' => ['alb'], + 'ramLevel' => '资源级', + 'ramConditions' => [ + [ + 'name' => 'alb:ServerGroupProtocol', + 'schema' => [ + 'type' => 'String', + 'description' => '应用型负载均衡的服务器组协议类型', + 'enums' => ['GRPC', 'HTTP', 'HTTPS'], + ], + ], + [ + 'name' => 'alb:AddressType', + 'schema' => [ + 'type' => 'String', + 'description' => '应用型负载均衡的地址类型', + 'enums' => ['Internet', 'Intranet'], + ], + ], + [ + 'name' => 'alb:ListenerProtocol', + 'schema' => [ + 'type' => 'String', + 'description' => '应用型负载均衡的监听协议类型', + 'enums' => ['HTTP', 'HTTPS', 'QUIC'], + ], + ], + ], + 'ramActions' => [ + [ + 'apiName' => 'UpdateListenerLogConfig', + 'description' => '更新监听日志相关属性', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateListenerLogConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], + [ + 'apiName' => 'EnableLoadBalancerAccessLog', + 'description' => '开启访问日志', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:EnableLoadBalancerAccessLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => '保证请求的幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId不一样。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', + ], + [ + 'apiName' => 'AssociateAdditionalCertificatesWithListener', + 'description' => '关联扩展证书和监听', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:AssociateAdditionalCertificatesWithListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '593B0448-D13E-4C56-AC0D-FDF0F******', - ], - ], + [ + 'apiName' => 'AttachCommonBandwidthPackageToLoadBalancer', + 'description' => '实例绑定共享带宽包', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:AttachCommonBandwidthPackageToLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationDenied.ListenerNotFound', - 'errorMessage' => 'The operation is not allowed because of ListenerNotFound.', - ], - [ - 'errorCode' => 'OperationDenied.CapacityReservationNotSupport', - 'errorMessage' => 'Resource reservation is not supported.', + [ + 'apiName' => 'CreateRule', + 'description' => '创建转发规则', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], ], - [ - 'errorCode' => 'OperationDenied.CapacityUnitsBelowMinimum', - 'errorMessage' => 'The operation is not allowed because of CapacityUnitsBelowMinimum.', + ], + ], + [ + 'apiName' => 'ListTagValues', + 'description' => '查询标签值', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'alb:ListTagValues', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'OperationDenied.CapacityDecreaseRequestLimitExceeded', - 'errorMessage' => 'The operation is not allowed because of CapacityDecreaseRequestLimitExceeded.', + ], + ], + [ + 'apiName' => 'DeleteHealthCheckTemplates', + 'description' => '批量删除健康检查模板', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteHealthCheckTemplates', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#HealthCheckTemplatesId}'], ], - [ - 'errorCode' => 'OperationDenied.PriorRequestNotComplete', - 'errorMessage' => 'The operation is not allowed because of PriorRequestNotComplete.', + ], + ], + [ + 'apiName' => 'CreateSecurityPolicy', + 'description' => '创建自定义安全策略', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/*'], ], - [ - 'errorCode' => 'OperationDenied.DeploymentSetExists', - 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetExists.', + ], + ], + [ + 'apiName' => 'GetHealthCheckTemplateAttribute', + 'description' => '查询健康检查模板详细信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:GetHealthCheckTemplateAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthchecktemplateId}'], ], - [ - 'errorCode' => 'OperationDenied.DeploymentSetIsEmpty', - 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetIsEmpty.', + ], + ], + [ + 'apiName' => 'UpdateServerGroupServersAttribute', + 'description' => '更新后端服务器配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateServerGroupServersAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:ecs/{#ecsId}'], ], - [ - 'errorCode' => 'OperationDenied.DeploymentSetsConflicts', - 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetsConflicts.', + ], + ], + [ + 'apiName' => 'DeleteRule', + 'description' => '删除转发规则', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteRule', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'acs:ResourceTag', 'validationType' => 'always'], ], - [ - 'errorCode' => 'OperationDenied.DeploymentSetsNotSupport', - 'errorMessage' => 'The operation is not allowed because of OperationDenied.DeploymentSetsNotSupport.', + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], - [ - 'errorCode' => 'OperationDenied.DeploymentSetsStrategyNotMatch', - 'errorMessage' => 'The operation is not allowed because of DeploymentSetsStrategyNotMatch.', + ], + ], + [ + 'apiName' => 'GetListenerAttribute', + 'description' => '查询监听器的属性', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:GetListenerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'acs:ResourceTag', 'validationType' => 'always'], ], - [ - 'errorCode' => 'QuotaExceeded.ReservationMaxLcuPerLb', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], - [ - 'errorCode' => 'QuotaExceeded.ReservationMaxLcuPerRegion', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', + ], + ], + [ + 'apiName' => 'DissociateAclsFromListener', + 'description' => '解除关联访问控制和监听', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DissociateAclsFromListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], - [ - 'errorCode' => 'QuotaExceeded.DeploymentSetsNum', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', + ], + ], + [ + 'apiName' => 'UpdateAScripts', + 'description' => '更新可编程脚本', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateAScripts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource of %s is not found.', + ], + [ + 'apiName' => 'UpdateListenerAttribute', + 'description' => '更新监听的配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateListenerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'UpdateRulesAttribute', + 'description' => '批量更新转发规则属性', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateRulesAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"593B0448-D13E-4C56-AC0D-FDF0F******\\"\\n}","type":"json"}]', - 'title' => '修改资源预留', - 'description' => '**ModifyCapacityReservation**接口属于异步接口,即系统返回一个请求ID,但该资源预留尚未完成,系统后台的预留任务仍在进行。您可以调用DescribeCapacityReservation查询资源预留的状态:'."\n" - .' - 当资源预留处于**Pending**状态时,表示资源预留正在进行中。'."\n" - .' - 当资源预留处于**Provisioned**状态时,表示资源预留已经完成。'."\n" - .' - 当资源预留处于**Rebalancing**状态时,表示资源预留正在在可用区间重新分配。', - ], - 'DescribeCapacityReservation' => [ - 'summary' => '查询资源预留。', - 'path' => '', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'DeleteSecurityPolicy', + 'description' => '删除安全策略', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ], + ], ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'UpdateLoadBalancerAttribute', + 'description' => '更新负载均衡实例属性', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateLoadBalancerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'LoadBalancerJoinSecurityGroup', + 'description' => '负载均衡实例加入安全组', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'alb:LoadBalancerJoinSecurityGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREslbEUW2CG', + [ + 'apiName' => 'AddEntriesToAcl', + 'description' => '添加访问控制条目', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:AddEntriesToAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ], ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', ], - 'parameters' => [ - [ - 'name' => 'LoadBalancerId', - 'in' => 'query', - 'schema' => [ - 'title' => '应用型负载均衡实例ID。', - 'description' => '应用型负载均衡实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'alb-o9ulmq5hgn68jk****'."\n", + [ + 'apiName' => 'DisableDeletionProtection', + 'description' => '关闭删除保护', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:DisableDeletionProtection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => '请求id', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], - 'CapacityReservationState' => [ - 'title' => '容量预留状态', - 'description' => '容量预留状态。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'AvailabilityZone' => [ - 'title' => '资源可用区', - 'description' => '可用区。', - 'type' => 'string', - 'example' => 'cn-hangzhou-k', - ], - 'EffectiveCapacityUnits' => [ - 'title' => '有效的LCU容量', - 'description' => '每小时有效预留LCU数量。', - 'type' => 'number', - 'format' => 'double', - 'example' => '50.0', - ], - 'Status' => [ - 'description' => '资源预留状态。例如:'."\n" - ."\n" - .'* **Pending**:预留中'."\n" - .'* **Provisioned**:预留完成'."\n" - .'* **Failed**:预留失败'."\n" - .'* **Rebalancing**:重新平衡', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'Provisioned', - ], - 'Reason' => [ - 'description' => '当预留状态为Failed的时候,反馈失败原因。', - 'type' => 'string', - 'example' => 'INSUFFICIENT_CAPACITY', - ], - ], - ], - ], - 'DecreaseRequestsRemaining' => [ - 'title' => '剩余降配、取消资源预留的次数', - 'description' => '剩余降配、取消资源预留的次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'LastModifiedTime' => [ - 'title' => '容量预留最后修改时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'description' => '上次资源预留的修改时间,格式为yyyy-MM-dd HH:mm:ss。', - 'type' => 'string', - 'example' => '2025-08-22 05:06:58', - ], - 'MinimumLoadBalancerCapacity' => [ - 'title' => '负载均衡请求的最小预留容量', - 'description' => '负载均衡请求的最小预留容量。', - 'type' => 'object', - 'properties' => [ - 'CapacityUnits' => [ - 'title' => 'LCU数量', - 'description' => 'LCU数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - ], - ], - ], + [ + 'apiName' => 'ListAclEntries', + 'description' => '查询访问控制条目', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListAclEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], ], ], ], - 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.LoadBalancer', - 'errorMessage' => 'The specified resource of %s is not found.', + [ + 'apiName' => 'UpdateLoadBalancerEdition', + 'description' => '变更负载均衡版本', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateLoadBalancerEdition', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'ListListenerCertificates', + 'description' => '查询监听证书', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListListenerCertificates', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"CapacityReservationState\\": [\\n {\\n \\"AvailabilityZone\\": \\"cn-hangzhou-k\\",\\n \\"EffectiveCapacityUnits\\": 50,\\n \\"Status\\": \\"Provisioned\\",\\n \\"Reason\\": \\"INSUFFICIENT_CAPACITY\\"\\n }\\n ],\\n \\"DecreaseRequestsRemaining\\": 2,\\n \\"LastModifiedTime\\": \\"2025-08-22 05:06:58\\",\\n \\"MinimumLoadBalancerCapacity\\": {\\n \\"CapacityUnits\\": 100\\n }\\n}","type":"json"}]', - 'title' => '查询资源预留', - ], - 'UpdateAScripts' => [ - 'summary' => '更新可编程脚本。', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'UpdateSecurityPolicyAttribute', + 'description' => '更新安全策略属性', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateSecurityPolicyAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateAcl', + 'description' => '创建访问控制', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'AddServersToServerGroup', + 'description' => '添加后端服务器', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:AddServersToServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'UpdateAclAttribute', + 'description' => '更新访问控制的属性', 'operationType' => 'update', - 'abilityTreeCode' => '34540', - 'abilityTreeNodes' => [ - 'FEATUREslb2Q6O49', + 'ramAction' => [ + 'action' => 'alb:UpdateAclAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => 'b1f642ac-5558-4a36-b7d9-cf53******', + [ + 'apiName' => 'EnableDeletionProtection', + 'description' => '开启删除保护', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:EnableDeletionProtection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会更新可编程脚本。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + ], + [ + 'apiName' => 'CreateLoadBalancer', + 'description' => '创建应用型负载均衡实例', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'alb:AddressType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/*'], ], ], - [ - 'name' => 'AScripts', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '脚本', - 'description' => '可编程脚本信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '可编程脚本信息。', - 'type' => 'object', - 'properties' => [ - 'AScriptName' => [ - 'title' => '脚本名称', - 'description' => '可编程脚本名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字,半角句号(.),下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => false, - 'example' => 'Group1', - ], - 'Enabled' => [ - 'title' => '是否启用', - 'description' => '是否启用可编程脚本。取值:'."\n" - ."\n" - .'- **true**:启用。'."\n" - ."\n" - .'- **false**(默认值):不启用。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'ScriptContent' => [ - 'title' => '脚本内容', - 'description' => '可编程脚本内容。', - 'type' => 'string', - 'required' => false, - 'example' => 'if and(match_re($uri, \'^/1.txt$\'), $arg_type) { rewrite(concat(\'/1.\', $arg_type), \'break\') }', - ], - 'ExtAttributes' => [ - 'title' => '扩展属性', - 'description' => '扩展属性', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'AttributeKey' => [ - 'title' => '属性名称', - 'description' => 'Ascript脚本的属性名称。'."\n" - ."\n" - .'仅取值**EsDebug**:当请求携带_es_dbg参数,且值为此处配置的密钥时,开启相应的调试响应头,以输出规则执行记录。', - 'type' => 'string', - 'required' => true, - 'example' => 'EsDebug', - ], - 'AttributeValue' => [ - 'title' => '属性值', - 'description' => '属性值,大小写英文字母或数字,长度为1~128个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'test123', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'AScriptId' => [ - 'title' => '脚本Id', - 'description' => '可编程脚本ID。'."\n" - ."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'as-mhqxcanmivn4g5****', - ], - 'ExtAttributeEnabled' => [ - 'title' => '是否启用扩展属性', - 'description' => '是否启用可编程脚本扩展属性。取值:'."\n" - ."\n" - .'- true:启用。'."\n" - ."\n" - .'- false(默认值):不启用。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - 'required' => false, - ], - 'required' => false, + ], + [ + 'apiName' => 'UpdateHealthCheckTemplateAttribute', + 'description' => '更新健康检查模板的属性', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateHealthCheckTemplateAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthchecktemplateId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '更新可编程脚本。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '2e82b5f4-1ba9-4d20-89c8-1082ebaa****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'ACA19FE1-C09E-53C7-8FDA-560******', - ], - ], + [ + 'apiName' => 'UpdateLoadBalancerZones', + 'description' => '更新负载均衡可用区', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', + [ + 'apiName' => 'ListHealthCheckTemplates', + 'description' => '查询健康检查模板', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'alb:ListHealthCheckTemplates', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/*'], ], - [ - 'errorCode' => 'ResourceQuotaExceeded.AScriptsNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', + ], + ], + [ + 'apiName' => 'RemoveServersFromServerGroup', + 'description' => '移除后端服务器', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:RemoveServersFromServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'], ], - [ - 'errorCode' => 'ResourceQuotaExceeded.AScriptsTotalLinesNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', + ], + ], + [ + 'apiName' => 'RemoveEntriesFromAcl', + 'description' => '移除访问控制条目', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:RemoveEntriesFromAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], ], - [ - 'errorCode' => 'ResourceQuotaExceeded.AScriptLinesNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', + ], + ], + [ + 'apiName' => 'CreateRules', + 'description' => '批量创建转发规则', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], ], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Ascript', - 'errorMessage' => 'The specified resource of %s is not found.', + ], + [ + 'apiName' => 'UpdateLoadBalancerAddressTypeConfig', + 'description' => '变更负载均衡实例的网络类型配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateLoadBalancerAddressTypeConfig', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'alb:AddressType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"2e82b5f4-1ba9-4d20-89c8-1082ebaa****\\",\\n \\"RequestId\\": \\"ACA19FE1-C09E-53C7-8FDA-560******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2e82b5f4-1ba9-4d20-89c8-1082ebaa****\\n ACA19FE1-C09E-53C7-8FDA-560F49D71891\\n","errorExample":""}]', - 'title' => '更新可编程脚本', - 'description' => '**UpdateAScripts**接口属于异步接口,即系统返回一个请求ID,但该可编程脚本尚未更新成功,系统后台的更新任务仍在进行。您可以调用[ListAScripts](~~472574~~)查询可编程脚本的更新状态:'."\n" - ."\n" - .' - 当可编程脚本处于**Configuring**状态时,表示可编程脚本正在更新中。'."\n" - ."\n" - .' - 当可编程脚本处于**Available**状态时,表示可编程脚本更新成功。', - ], - 'CreateAScripts' => [ - 'summary' => '创建可编程脚本。', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'DetachCommonBandwidthPackageFromLoadBalancer', + 'description' => '实例解绑共享带宽包', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:DetachCommonBandwidthPackageFromLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteListener', + 'description' => '删除监听', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'StartShiftLoadBalancerZones', + 'description' => '把可用区的EIP/VIP从域名解析中摘除', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:StartShiftLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'ListSecurityPolicies', + 'description' => '查询自定义安全策略', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'alb:ListSecurityPolicies', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/*'], + ], + ], + ], + [ + 'apiName' => 'ListRules', + 'description' => '查询转发规则', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], + [ + 'apiName' => 'DisableLoadBalancerAccessLog', + 'description' => '关闭访问日志', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:DisableLoadBalancerAccessLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], + [ + 'apiName' => 'UpdateServerGroupAttribute', + 'description' => '更新服务器组配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateServerGroupAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ], + ], + ], + [ + 'apiName' => 'MoveResourceGroup', + 'description' => '修改资源组', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:MoveResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ], + ], + ], + [ + 'apiName' => 'ListServerGroupServers', + 'description' => '查询服务器', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListServerGroupServers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ], + ], + ], + [ + 'apiName' => 'AssociateAclsWithListener', + 'description' => '关联访问控制和监听', 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '34526', - 'abilityTreeNodes' => [ - 'FEATUREslb2Q6O49', + 'ramAction' => [ + 'action' => 'alb:AssociateAclsWithListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。', - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B******', + [ + 'apiName' => 'LoadBalancerLeaveSecurityGroup', + 'description' => '负载均衡实例移出安全组', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'alb:LoadBalancerLeaveSecurityGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => ' 是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会创建可编程脚本。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + ], + [ + 'apiName' => 'StartListener', + 'description' => '启动监听', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:StartListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], - [ - 'name' => 'ListenerId', - 'in' => 'query', - 'schema' => [ - 'title' => '监听id', - 'description' => '监听ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-6hfq3zs0x04ibn****', + ], + [ + 'apiName' => 'ListTagResources', + 'description' => '查询资源标签', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securityPolicyId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], ], ], - [ - 'name' => 'AScripts', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'title' => '脚本', - 'description' => '可编程脚本信息列表。'."\n" - ."\n", - 'type' => 'array', - 'items' => [ - 'description' => '可编程脚本信息。', - 'type' => 'object', - 'properties' => [ - 'AScriptName' => [ - 'title' => '脚本名称', - 'description' => '可编程脚本名称。'."\n" - ."\n" - .'长度为2~128个英文或中文字符,必须以大小写英文字母或中文开头,可包含数字,半角句号(.),下划线(_)和短划线(-)。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], - 'Position' => [ - 'title' => '执行位置', - 'description' => '可编程脚本执行位置。'."\n" - ."\n" - .'- RequestHead(默认值):请求方向规则执行前。'."\n" - ."\n" - .'- RequestFoot:请求方向规则执行后。'."\n" - ."\n" - .'- ResponseHead:响应方向规则执行前。', - 'type' => 'string', - 'required' => false, - 'example' => 'RequestFoot', - 'default' => 'RequestHead', - ], - 'Enabled' => [ - 'title' => '是否启用', - 'description' => '是否启用可编程脚本。取值:'."\n" - ."\n" - .'- **true**:启用。'."\n" - ."\n" - .'- **false**(默认值):不启用。'."\n" - ."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'ScriptContent' => [ - 'title' => '脚本内容', - 'description' => '可编程脚本内容。', - 'type' => 'string', - 'required' => true, - 'example' => 'if and(match_re($uri, \'^/1.txt$\'), $arg_type) { rewrite(concat(\'/1.\', $arg_type), \'break\') }', - ], - 'ExtAttributes' => [ - 'title' => '扩展属性', - 'description' => '扩展属性。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'AttributeKey' => [ - 'title' => '属性名称', - 'description' => 'Ascript脚本的属性名称。'."\n" - ."\n" - .'仅取值 **EsDebug**:当请求携带_es_dbg参数,且值为此处配置的密钥时,开启相应的调试响应头,以输出规则执行记录。', - 'type' => 'string', - 'required' => false, - 'example' => 'EsDebug', - ], - 'AttributeValue' => [ - 'title' => '属性值', - 'description' => '属性值,大小写英文字母或数字,长度为1~128个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test123', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'ExtAttributeEnabled' => [ - 'title' => '是否启用扩展属性', - 'description' => '是否启用可编程脚本扩展属性。取值:'."\n" - ."\n" - .'- true:启用。'."\n" - ."\n" - .'- false(默认值):不启用。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - 'required' => false, - ], - 'required' => false, + ], + [ + 'apiName' => 'DisableLoadBalancerIpv6Internet', + 'description' => '关闭负载均衡IPv6公网', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:DisableLoadBalancerIpv6Internet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '创建可编程脚本。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '5c607642-535e-4e06-9d77-df53049b****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BF0FE763-9603-558F-A55B-0F4******', - ], - 'AScriptIds' => [ - 'title' => '可编程脚本列表', - 'description' => '可编程脚本ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '可编程脚本ID。', - 'type' => 'object', - 'properties' => [ - 'AScriptId' => [ - 'title' => '脚本id', - 'description' => '可编程脚本ID。', - 'type' => 'string', - 'example' => 'as-xvq5igaa7uv6vr****', - ], - ], - ], - ], - ], + [ + 'apiName' => 'ListListeners', + 'description' => '查询监听', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListListeners', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', + [ + 'apiName' => 'ListAclRelations', + 'description' => '查询访问控制关联关系', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListAclRelations', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#AclId}'], ], - [ - 'errorCode' => 'ResourceQuotaExceeded.AScriptsNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', + ], + ], + [ + 'apiName' => 'EnableLoadBalancerIpv6Internet', + 'description' => '开启负载均衡IPv6公网', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:EnableLoadBalancerIpv6Internet', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'alb:AddressType', 'validationType' => 'always'], ], - [ - 'errorCode' => 'ResourceQuotaExceeded.AScriptsTotalLinesNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], - [ - 'errorCode' => 'ResourceQuotaExceeded.AScriptLinesNum', - 'errorMessage' => 'The quota of %s is exceeded for resource %s, usage %s/%s.', + ], + ], + [ + 'apiName' => 'UpdateRuleAttribute', + 'description' => '更新转发规则属性', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:UpdateRuleAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"5c607642-535e-4e06-9d77-df53049b****\\",\\n \\"RequestId\\": \\"BF0FE763-9603-558F-A55B-0F4******\\",\\n \\"AScriptIds\\": [\\n {\\n \\"AScriptId\\": \\"as-xvq5igaa7uv6vr****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 5c607642-535e-4e06-9d77-df53049b****\\n BF0FE763-9603-558F-A55B-0F4B9A3E3C02\\n \\n as-xvq5igaa7uv6vr****\\n \\n","errorExample":""}]', - 'title' => '创建可编程脚本', - 'description' => '### 前提条件'."\n" - ."\n" - .'- 已创建标准版或WAF增强版ALB实例。具体操作,请参见[CreateLoadBalancer](~~214358~~)。'."\n" - ."\n\n" - .'### 使用说明'."\n" - ."\n" - .'**CreateAScripts**接口属于异步接口,即系统返回一个请求ID,但该可编程脚本尚未创建成功,系统后台的创建任务仍在进行。您可以调用[ListAScripts](~~472574~~)查询可编程脚本的创建状态:'."\n" - ."\n" - .' - 当可编程脚本处于**Creating**状态时,表示可编程脚本正在创建中。'."\n" - ."\n" - .' - 当可编程脚本处于**Available**状态时,表示可编程脚本创建成功。', - ], - 'DeleteAScripts' => [ - 'summary' => '删除可编程脚本。', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'DeleteAScripts', + 'description' => '删除可编程脚本', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteAScripts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateServerGroup', + 'description' => '创建服务器组', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'alb:ServerGroupProtocol', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'UnTagResources', + 'description' => '删除资源的标签', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:UnTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#AclId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'CreateHealthCheckTemplate', + 'description' => '创建健康检查模板', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateHealthCheckTemplate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/*'], + ], + ], + ], + [ + 'apiName' => 'StopListener', + 'description' => '停止监听', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:StopListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], + [ + 'apiName' => 'DeleteLoadBalancer', + 'description' => '删除负载均衡实例', 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等标识', - 'description' => '客户端Token,用于保证请求的幂等性。'."\n" - ."\n" - .'从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。'."\n" - ."\n" - .'> 若您未指定,则系统自动使用API请求的**RequestId**作为**ClientToken**标识。每次API请求的**RequestId**不一样。', - 'type' => 'string', - 'required' => false, - 'example' => 'f516e84e-fc0c-4c2d-a461-6cd77******', + [ + 'apiName' => 'DeleteAcl', + 'description' => '删除访问控制', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], ], ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => ' 是否只预检此次请求', - 'description' => '是否只预检此次请求。取值:'."\n" - .'- **true**:发送检查请求,不会删除可编程脚本。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。'."\n" - .'- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + ], + [ + 'apiName' => 'CreateListener', + 'description' => '创建监听', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateListener', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'alb:ListenerProtocol', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], ], ], - [ - 'name' => 'AScriptIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '脚本id列表', - 'description' => '可编程脚本ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '可编程脚本ID。'."\n" - ."\n" - .'一次最多支持删除4个可编程脚本。', - 'type' => 'string', - 'required' => true, - 'example' => 'as-59hl7uu******', - ], - 'required' => true, - 'maxItems' => 10, - 'minItems' => 1, + ], + [ + 'apiName' => 'DeleteServerGroup', + 'description' => '删除服务器组', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '删除可编程脚本。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'title' => '异步任务Id', - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => '03cf3fe1-ab37-479b-92a6-b481d762****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '1B7B7695-3596-50C8-B739-030C******', - ], - ], + [ + 'apiName' => 'TagResources', + 'description' => '给资源添加标签', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:TagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#AclId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ResourceNotFound.AScript', - 'errorMessage' => 'The specified resource %s is not found.', + [ + 'apiName' => 'ListAsynJobs', + 'description' => '查询异步任务', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListAsynJobs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'IncorrectStatus.Listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', + ], + ], + [ + 'apiName' => 'ListAcls', + 'description' => '查询访问控制列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'alb:ListAcls', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/*'], ], - [ - 'errorCode' => 'OperationDenied.CrossListenerAScripts', - 'errorMessage' => 'The operation is not allowed because of %s', + ], + ], + [ + 'apiName' => 'GetLoadBalancerAttribute', + 'description' => '查询负载均衡实例的详细信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:GetLoadBalancerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"03cf3fe1-ab37-479b-92a6-b481d762****\\",\\n \\"RequestId\\": \\"1B7B7695-3596-50C8-B739-030C******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 03cf3fe1-ab37-479b-92a6-b481d762****\\n 1B7B7695-3596-50C8-B739-030C6C685E61\\n","errorExample":""}]', - 'title' => '删除可编程脚本', - 'description' => '**DeleteAScripts**接口属于异步接口,即系统返回一个请求ID,但可编程脚本尚未删除成功,系统后台的删除任务仍在进行。您可以调用[ListAScripts](~~472574~~)查询可编程脚本的删除状态:'."\n" - ."\n" - .'- 当可编程脚本处于**Deleting**状态时,表示可编程脚本正在删除中。'."\n" - ."\n" - .'- 当查询不到该可编程脚本时,表示该可编程脚本删除成功。', - ], - 'ListAScripts' => [ - 'summary' => '查询可编程脚本列表。', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'ReplaceServersInServerGroup', + 'description' => '替换后端服务器组中的后端服务器', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:ReplaceServersInServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ListAScripts', + 'description' => '查询可编程脚本列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'alb:ListAScripts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetListenerHealthStatus', + 'description' => '查询健康检查', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:GetListenerHealthStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', + [ + 'apiName' => 'ListLoadBalancers', + 'description' => '查询负载均衡', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListLoadBalancers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/*'], + ['validationType' => 'conditional', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'NextToken', - 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'title' => '标记当前开始读取的位置,置空表示从头开始', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', + [ + 'apiName' => 'DeleteRules', + 'description' => '批量删除转发规则', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DeleteRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'title' => '本次读取的最大数据记录数量', - 'description' => '本次读取的最大数据记录数。'."\n" - ."\n" - .'取值:**1**~**100**。'."\n" - ."\n" - .'默认值:**20**,表示用户没有传入数据。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '50', + ], + [ + 'apiName' => 'CreateAScripts', + 'description' => '创建可编程脚本', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'alb:CreateAScripts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], - [ - 'name' => 'ListenerIds', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '监听ID列表。一次最多支持查询20个监听。', - 'type' => 'array', - 'items' => [ - 'description' => '监听ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lsn-9v9b8576m2laih****', - ], - 'required' => false, + ], + [ + 'apiName' => 'ListServerGroups', + 'description' => '查询服务器组', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListServerGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/*'], ], ], - [ - 'name' => 'AScriptIds', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '可编程脚本ID列表。一次最多支持查询20个ID。', - 'type' => 'array', - 'items' => [ - 'description' => '可编程脚本ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'as-aznwocxofkakf7****', - ], - 'required' => false, + ], + [ + 'apiName' => 'ListTagKeys', + 'description' => '查询标签键', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListTagKeys', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AScriptNames', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '可编程脚本名称列表。一次最多支持查询10个名称。', - 'type' => 'array', - 'items' => [ - 'description' => '可编程脚本名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'required' => false, + ], + [ + 'apiName' => 'CancelShiftLoadBalancerZones', + 'description' => '把可用区的EIP/VIP加到DNS中', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:CancelShiftLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'TotalCount' => [ - 'title' => 'TotalCount本次请求条件下的数据总量,此参数为可选参数,默认可不返回', - 'description' => '本次请求条件下返回的总数据记录数。'."\n" - ."\n" - .'> 此参数为可选,默认可不返回。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '2CA81429-F160-593A-8AB5-A2A9617845B9', - ], - 'NextToken' => [ - 'title' => '表示当前调用返回读取到的位置,空代表数据已经读取完毕', - 'description' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'- 如果**NextToken**为空表示没有下一次查询。'."\n" - .'- 如果**NextToken**有返回值,该取值表示下一次查询开始的令牌。', - 'type' => 'string', - 'required' => true, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'title' => 'MaxResults本次请求所返回的最大记录条数', - 'description' => '本次请求所返回的最大记录条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'AScripts' => [ - 'title' => '可编程脚本列表', - 'description' => '可编程脚本信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '可编程脚本信息。', - 'type' => 'object', - 'properties' => [ - 'AScriptId' => [ - 'title' => '脚本id', - 'description' => '可编程脚本ID。', - 'type' => 'string', - 'example' => 'as-aznwocxofkakf7****', - ], - 'AScriptName' => [ - 'title' => '脚本名称', - 'description' => '可编程脚本名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'Enabled' => [ - 'title' => '是否启用', - 'description' => '可编程脚本是否启用。取值:'."\n" - ."\n" - .'- **true**:启用。'."\n" - ."\n" - .'- **false**:不启用。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ScriptContent' => [ - 'title' => '脚本内容', - 'description' => '可编程脚本内容。', - 'type' => 'string', - 'example' => '{test}', - ], - 'AScriptStatus' => [ - 'title' => '脚本状态', - 'description' => '可编程脚本状态。取值:'."\n" - ."\n" - .'- **Creating**:表示创建中。'."\n" - ."\n" - .'- **Available**:表示创建或变配成功。'."\n" - ."\n" - .'- **Configuring**:表示变配中。'."\n" - ."\n" - .'- **Deleting**:表示删除中。', - 'type' => 'string', - 'example' => 'Available', - ], - 'ListenerId' => [ - 'title' => '监听id', - 'description' => '监听ID。', - 'type' => 'string', - 'example' => 'lsn-t0w1m9r6suiwmc****', - ], - 'LoadBalancerId' => [ - 'title' => '实例id', - 'description' => '应用型负载均衡实例的ID。', - 'type' => 'string', - 'example' => 'alb-vv9rg2ub31tyec****', - ], - ], - ], - ], - ], + [ + 'apiName' => 'DissociateAdditionalCertificatesFromListener', + 'description' => '解除监听和扩展证书关联', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'alb:DissociateAdditionalCertificatesFromListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Forbidden.LoadBalancer', - 'errorMessage' => 'Authentication has failed for LoadBalancer.', + [ + 'apiName' => 'ListSecurityPolicyRelations', + 'description' => '查询安全策略关联关系', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'alb:ListSecurityPolicyRelations', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicy}'], + ], + ], + ], + [ + 'apiName' => 'ApplyHealthCheckTemplateToServerGroup', + 'description' => '应用健康检查模板到服务组', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'alb:ApplyHealthCheckTemplateToServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthCheckTemplateId}'], + ['validationType' => 'always', 'product' => 'ALB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#serverGroupId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1000,\\n \\"RequestId\\": \\"2CA81429-F160-593A-8AB5-A2A9617845B9\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 50,\\n \\"AScripts\\": [\\n {\\n \\"AScriptId\\": \\"as-aznwocxofkakf7****\\",\\n \\"AScriptName\\": \\"test\\",\\n \\"Enabled\\": true,\\n \\"ScriptContent\\": \\"{test}\\",\\n \\"AScriptStatus\\": \\"Available\\",\\n \\"ListenerId\\": \\"lsn-t0w1m9r6suiwmc****\\",\\n \\"LoadBalancerId\\": \\"alb-vv9rg2ub31tyec****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 1000\\n 2CA81429-F160-593A-8AB5-A2A9617845B9\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 50\\n \\n as-aznwocxofkakf7****\\n test\\n true\\n {test}\\n Available\\n lsn-t0w1m9r6suiwmc****\\n alb-vv9rg2ub31tyec****\\n \\n","errorExample":""}]', - 'title' => '查询可编程脚本列表', - ], - ], - 'endpoints' => [ - [ - 'regionId' => 'cn-qingdao', - 'endpoint' => 'alb.cn-qingdao.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'alb.cn-beijing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhangjiakou', - 'endpoint' => 'alb.cn-zhangjiakou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhengzhou-jva', - 'endpoint' => 'alb.cn-zhengzhou-jva.aliyuncs.com', - ], - [ - 'regionId' => 'cn-wulanchabu', - 'endpoint' => 'alb.cn-wulanchabu.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou', - 'endpoint' => 'alb.cn-hangzhou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'alb.cn-shanghai.aliyuncs.com', - ], - [ - 'regionId' => 'cn-nanjing', - 'endpoint' => 'alb.cn-nanjing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-fuzhou', - 'endpoint' => 'alb.cn-fuzhou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'alb.cn-shenzhen.aliyuncs.com', - ], - [ - 'regionId' => 'cn-heyuan', - 'endpoint' => 'alb.cn-heyuan.aliyuncs.com', - ], - [ - 'regionId' => 'cn-guangzhou', - 'endpoint' => 'alb.cn-guangzhou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-chengdu', - 'endpoint' => 'alb.cn-chengdu.aliyuncs.com', - ], - [ - 'regionId' => 'cn-wuhan-lr', - 'endpoint' => 'alb.cn-wuhan-lr.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hongkong', - 'endpoint' => 'alb.cn-hongkong.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'alb.ap-northeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-2', - 'endpoint' => 'alb.ap-northeast-2.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'alb.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-2', - 'endpoint' => 'alb.ap-southeast-2.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-3', - 'endpoint' => 'alb.ap-southeast-3.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-5', - 'endpoint' => 'alb.ap-southeast-5.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-6', - 'endpoint' => 'alb.ap-southeast-6.aliyuncs.com', - ], - [ - 'regionId' => 'us-east-1', - 'endpoint' => 'alb.us-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-west-1', - 'endpoint' => 'alb.us-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-west-1', - 'endpoint' => 'alb.eu-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'alb.eu-central-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-south-1', - 'endpoint' => 'alb.ap-south-1.aliyuncs.com', - ], - [ - 'regionId' => 'me-east-1', - 'endpoint' => 'alb.me-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-finance', - 'endpoint' => 'alb.cn-hangzhou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai-finance-1', - 'endpoint' => 'alb.cn-shanghai-finance-1.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen-finance-1', - 'endpoint' => 'alb.cn-shenzhen-finance-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-7', - 'endpoint' => 'alb.ap-southeast-7.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing-finance-1', - 'endpoint' => 'alb.cn-beijing-finance-1.aliyuncs.com', - ], - [ - 'regionId' => 'me-central-1', - 'endpoint' => 'alb.me-central-1.aliyuncs.com', - ], - [ - 'regionId' => 'cn-heyuan-acdr-1', - 'endpoint' => 'alb.cn-heyuan-acdr-1.aliyuncs.com', - ], - [ - 'regionId' => 'na-south-1', - 'endpoint' => 'alb.na-south-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-southeast-1', - 'endpoint' => 'alb.us-southeast-1.aliyuncs.com', ], - [ - 'regionId' => 'cn-wulanchabu-gic-1', - 'endpoint' => 'alb.cn-wulanchabu-gic-1.aliyuncs.com', + 'resourceTypes' => [ + ['validationType' => 'always', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}'], + ['validationType' => 'conditional', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/*'], + ['validationType' => 'conditional', 'resourceType' => 'ServerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:servergroup/*'], + ['validationType' => 'conditional', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:alb:{#regionId}:{#accountId}:loadbalancer/*'], + ['validationType' => 'conditional', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/*'], + ['validationType' => 'always', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#HealthCheckTemplatesId}'], + ['validationType' => 'always', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/{#healthchecktemplateId}'], + ['validationType' => 'always', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:ecs/{#ecsId}'], + ['validationType' => 'always', 'resourceType' => 'Acl', 'arn' => 'acs:alb:{#regionId}:{#accountId}:acl/{#aclId}'], + ['validationType' => 'always', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ['validationType' => 'conditional', 'resourceType' => 'Instance', 'arn' => 'acs:alb:{#regionId}:{#accountId}:ecs/{#InstanceId}'], + ['validationType' => 'conditional', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eni/{#NetworkInterfaceId}'], + ['validationType' => 'conditional', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:alb:{#regionId}:{#accountId}:eci/{#ContainerGroupId}'], + ['validationType' => 'always', 'resourceType' => 'HealthCheckTemplate', 'arn' => 'acs:alb:{#regionId}:{#accountId}:healthchecktemplate/*'], + ['validationType' => 'always', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicy}'], ], ], ]; -- cgit v1.2.3