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/en_us/nlb/2022-04-30/api-docs.php | 17734 ++++++++++++++----------------- 1 file changed, 8048 insertions(+), 9686 deletions(-) (limited to 'data/en_us/nlb/2022-04-30') diff --git a/data/en_us/nlb/2022-04-30/api-docs.php b/data/en_us/nlb/2022-04-30/api-docs.php index 5fac110..4f0f87b 100644 --- a/data/en_us/nlb/2022-04-30/api-docs.php +++ b/data/en_us/nlb/2022-04-30/api-docs.php @@ -1,596 +1,599 @@ '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'Nlb', - 'version' => '2022-04-30', - ], + 'info' => ['style' => 'RPC', 'product' => 'Nlb', 'version' => '2022-04-30'], 'directories' => [ [ - 'id' => 192387, - 'title' => 'Monitoring', - 'type' => 'directory', - 'children' => [ - 'DescribeHdMonitorRegionConfig', - 'SetHdMonitorRegionConfig', - ], - ], - [ - 'id' => 175130, - 'title' => 'Region and zone management', + 'children' => ['UpdateLoadBalancerAddressTypeConfig', 'UpdateLoadBalancerZones'], 'type' => 'directory', - 'children' => [ - 'DescribeRegions', - 'DescribeZones', - ], + 'title' => 'Instances', ], [ - 'id' => 175092, - 'title' => 'Network Load Balancer instances', + 'children' => ['CreateListener', 'UpdateListenerAttribute', 'ListListeners', 'GetListenerAttribute'], 'type' => 'directory', - 'children' => [ - 'CreateLoadBalancer', - 'DeleteLoadBalancer', - 'UpdateLoadBalancerAddressTypeConfig', - 'UpdateLoadBalancerAttribute', - 'UpdateLoadBalancerZones', - 'EnableLoadBalancerIpv6Internet', - 'DisableLoadBalancerIpv6Internet', - 'LoadBalancerLeaveSecurityGroup', - 'LoadBalancerJoinSecurityGroup', - 'UpdateLoadBalancerProtection', - 'ListLoadBalancers', - 'GetLoadBalancerAttribute', - 'StartShiftLoadBalancerZones', - 'CancelShiftLoadBalancerZones', - ], - ], - [ - 'id' => 175084, 'title' => 'Listeners', - 'type' => 'directory', - 'children' => [ - 'CreateListener', - 'DeleteListener', - 'StartListener', - 'StopListener', - 'UpdateListenerAttribute', - 'ListListeners', - 'GetListenerAttribute', - 'GetListenerHealthStatus', - ], ], [ - 'id' => 175131, - 'title' => 'Listener certificates', + 'children' => ['CreateServerGroup', 'UpdateServerGroupAttribute', 'ListServerGroups'], 'type' => 'directory', - 'children' => [ - 'ListListenerCertificates', - 'AssociateAdditionalCertificatesWithListener', - 'DisassociateAdditionalCertificatesWithListener', - ], - ], - [ - 'id' => 175112, 'title' => 'Server groups', - 'type' => 'directory', - 'children' => [ - 'CreateServerGroup', - 'AddServersToServerGroup', - 'DeleteServerGroup', - 'RemoveServersFromServerGroup', - 'UpdateServerGroupAttribute', - 'UpdateServerGroupServersAttribute', - 'ListServerGroups', - 'ListServerGroupServers', - ], - ], - [ - 'id' => 175103, - 'title' => 'Common bandwidth package', - 'type' => 'directory', - 'children' => [ - 'DetachCommonBandwidthPackageFromLoadBalancer', - 'AttachCommonBandwidthPackageToLoadBalancer', - ], ], [ - 'id' => 175106, - 'title' => 'Security policy management', + 'children' => ['CreateSecurityPolicy', 'UpdateSecurityPolicyAttribute', 'ListSecurityPolicy'], 'type' => 'directory', - 'children' => [ - 'CreateSecurityPolicy', - 'DeleteSecurityPolicy', - 'UpdateSecurityPolicyAttribute', - 'ListSecurityPolicy', - 'ListSystemSecurityPolicy', - ], + 'title' => 'Security policies', ], [ - 'id' => 183551, - 'title' => 'Resource groups', + 'children' => ['ListAsynJobs'], 'type' => 'directory', - 'children' => [ - 'MoveResourceGroup', - ], - ], - [ - 'id' => 175122, 'title' => 'Asynchronous tasks', - 'type' => 'directory', - 'children' => [ - 'GetJobStatus', - 'ListAsynJobs', - ], ], [ - 'id' => 175132, - 'title' => 'Tags', - 'type' => 'directory', 'children' => [ - 'TagResources', - 'UntagResources', - 'ListTagResources', + 'AddServersToServerGroup', 'AssociateAdditionalCertificatesWithListener', 'AttachCommonBandwidthPackageToLoadBalancer', 'CancelShiftLoadBalancerZones', 'CreateLoadBalancer', 'DeleteListener', 'DeleteLoadBalancer', 'DeleteSecurityPolicy', 'DeleteServerGroup', 'DescribeHdMonitorRegionConfig', 'DescribeRegions', 'DescribeZones', 'DetachCommonBandwidthPackageFromLoadBalancer', 'DisableLoadBalancerIpv6Internet', 'DisassociateAdditionalCertificatesWithListener', 'EnableLoadBalancerIpv6Internet', 'GetJobStatus', 'GetListenerHealthStatus', 'GetLoadBalancerAttribute', 'ListListenerCertificates', + 'ListLoadBalancers', 'ListServerGroupServers', 'ListSystemSecurityPolicy', 'ListTagResources', 'LoadBalancerJoinSecurityGroup', 'LoadBalancerLeaveSecurityGroup', 'MoveResourceGroup', 'RemoveServersFromServerGroup', 'SetHdMonitorRegionConfig', 'StartListener', 'StartShiftLoadBalancerZones', 'StopListener', 'TagResources', 'UntagResources', 'UpdateLoadBalancerAttribute', 'UpdateLoadBalancerProtection', 'UpdateServerGroupServersAttribute', ], + 'title' => 'Others', + 'type' => 'directory', ], ], 'components' => [ 'schemas' => [], ], 'apis' => [ - 'DescribeHdMonitorRegionConfig' => [ - 'summary' => 'Queries the storage configurations of fine-grained monitoring.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddServersToServerGroup' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', + 'abilityTreeNodes' => ['FEATUREslbWFW5HS'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', + 'name' => 'ServerGroupId', + 'in' => 'formData', + 'schema' => ['description' => 'The server group ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****', 'title' => ''], + ], + [ + 'name' => 'Servers', + 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'title' => 'add 必选', - 'description' => 'The ID of the region where the resources are deployed.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + 'description' => 'The backend servers that you want to add.'."\n" + ."\n" + .'> You can add up to 200 backend servers in each call.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The backend server that you want to add.'."\n" + ."\n" + .'> You can add up to 200 backend servers in each call.'."\n", + 'type' => 'object', + 'properties' => [ + 'ServerId' => ['title' => '', 'description' => 'The backend server ID.'."\n" + ."\n" + .'* If the server group is of the **Instance** type, set this parameter to the IDs of **Elastic Compute Service (ECS) instances**, **elastic network interfaces (ENIs)**, or **elastic container instances**.'."\n" + .'* If the server group is of the **Ip** type, set ServerId to IP addresses.'."\n", 'type' => 'string', 'required' => true, 'example' => 'i-bp67acfmxazb4p****'], + 'ServerType' => [ + 'title' => '', + 'description' => 'The type of the backend server. Valid values:'."\n" + ."\n" + .'* **Ecs**: the ECS instance'."\n" + .'* **Eni**: the ENI'."\n" + .'* **Eci**: the elastic container instance'."\n" + .'* **Ip**: the IP address'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Ecs', + 'enum' => [], + ], + 'ServerIp' => ['title' => '', 'description' => 'The IP address of the backend server. If the server group type is **Ip**, set the ServerId parameter to IP addresses.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.6.6'], + 'Port' => ['title' => '', 'description' => 'The port that is used by the backend server to provide services. Valid values: **0 to 65535**. If you do not set this parameter, the default value **0** is used.'."\n" + ."\n" + .'If multi-port forwarding is enabled, you do not need to set this parameter. The default value 0 is used. NLB forwards requests to the requested ports. To determine whether multi-port forwarding is enabled, call the [ListServerGroups](~~445895~~) operation and check the value of the **AnyPortEnabled** parameter.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '443'], + 'Weight' => ['title' => '', 'description' => 'The weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If this parameter is set to **0**, no requests are forwarded to the server.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'default' => '100'], + 'Description' => ['title' => '', 'description' => 'The description of the backend server.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at sings (@), underscores (\\_), and hyphens (-).'."\n", 'type' => 'string', 'required' => false, 'example' => 'ECS'], + ], + 'required' => false, + 'title' => '', + ], + 'required' => true, + 'maxItems' => 200, + 'title' => '', ], ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse', + 'title' => 'RpcResponse', + 'description' => 'RpcResponse', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'RegionId' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'LogProject' => [ - 'description' => 'The name of the Log Service project.'."\n", - 'type' => 'string', - 'example' => 'hdmonitor-cn-hangzhou-223794579283657556'."\n", - ], - 'MetricStore' => [ - 'description' => 'The name of the Metricstore in Simple Log Service.', - 'type' => 'string', - 'example' => 'hdmonitor-cn-hangzhou-metricStore-1', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'ServerGroupId' => ['description' => 'The ID of the server group.'."\n", 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => 'The specific resource is conflict.'], + ['errorCode' => 'IllegalParam.IP', 'errorMessage' => 'The param of IP is illegal.', 'description' => 'The parameter IP is invalid. Please check the input value of the parameter IP.'], + ['errorCode' => 'QuotaExceeded.QuotaInsufficient', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota is insufficient, currently used %s/%s. Please modify the quota size in the quota center.'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'DuplicatedParam.Server', 'errorMessage' => 'The param of Server is duplicated.', 'description' => 'The param of Server is duplicated.'], + ['errorCode' => 'IncorrectStatus.serverGroup', 'errorMessage' => 'The status of servergroup [%s] is incorrect.', 'description' => 'The current operation cannot be performed on the server group as its status is unavailable. Please check if the server group is currently undergoing any other operations.'."\n"], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The VpcId is mismatched for %s and %s.', 'description' => 'The VpcId is mismatched for %s and %s.'], + ['errorCode' => 'Mismatch.ServerType', 'errorMessage' => 'The ServerType is mismatched for %s and %s.', 'description' => ''], + ['errorCode' => 'IllegalParam.RSPortConflictWithServerGroup', 'errorMessage' => 'The param of RSPortConflictWithServerGroup is illegal.', 'description' => 'The parameter RSPort conflicts with the ServerGroup.'], + ['errorCode' => 'TagInvokeError', 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', 'description' => ''], + ['errorCode' => 'ResourceInUse.IP', 'errorMessage' => 'The specified resource of IP is in use.', 'description' => ''], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => ''], + ['errorCode' => 'IllegalParam.description', 'errorMessage' => 'The parameter description of server is illegal.', 'description' => 'The server description does not meet the input requirements, please modify according to the details in the error.'], + ['errorCode' => 'MissingParam.IP', 'errorMessage' => 'The param of IP is missing.', 'description' => 'The entered IP parameter is missing. Check your input parameter.'], + ['errorCode' => 'OperationDenied.ServerGroupNotSupportIpv6', 'errorMessage' => 'The operation is not allowed because of ServerGroupNotSupportIpv6.', 'description' => 'The operation failed because the server group does not support IPV6.'], + ['errorCode' => 'IncorrectStatus.Eni', 'errorMessage' => 'Eni status is invalid.', 'description' => 'The ENI status is invalid.'], + ['errorCode' => 'IdempotenceSignatureMismatch', 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', 'description' => 'The requested idempotent token is the same as the previous one, but the signature is different.'], + ['errorCode' => 'Throttling.User', 'errorMessage' => 'Request was denied due to api flow control.', 'description' => 'Request was denied due to api flow control.'], + ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'DescribeHDMonitor.Fail', - 'errorMessage' => 'DescribeHDMonitor Fail.', - ], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => 'The specified resource of serverGroup is not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.Eci', 'errorMessage' => 'The specified resource of Eci is not found.', 'description' => 'The specified ECI (Elastic Container Instance) resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.Ecs', 'errorMessage' => 'The specified resource of Ecs is not found.', 'description' => 'The specified ECS (Elastic Compute Service) resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.Eni', 'errorMessage' => 'The specified resource Eni is not found.', 'description' => 'The specified ENI instance is not found. Check the input parameters.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n sgp-atstuj3rtoptyui****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'AddServersToServerGroup', + 'summary' => 'Adds backend servers to a specified server group.', + 'changeSet' => [ + ['createdAt' => '2024-04-02T06:33:42.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-29T06:32:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-24T07:05:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-22T09:55:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-30T04:13:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-07T05:50:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-13T03:48:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:46.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T05:42:12.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-22T04:15:31.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-09-20T16:36:31.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-07-02T08:43:10.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:17.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddServersToServerGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:AddServersToServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:eni/{#ServerId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:eci:{#regionId}:{#accountId}:containergroup/{#ServerId}'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LogProject\\": \\"hdmonitor-cn-hangzhou-223794579283657556\\\\n\\",\\n \\"MetricStore\\": \\"hdmonitor-cn-hangzhou-metricStore-1\\"\\n}","type":"json"}]', - 'title' => 'DescribeHdMonitorRegionConfig', ], - 'SetHdMonitorRegionConfig' => [ - 'summary' => 'Configures storage for fine-grained monitoring.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AssociateAdditionalCertificatesWithListener' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '207971', - 'abilityTreeNodes' => [ - 'FEATUREslbNC4CZR', - ], - 'tenantRelevance' => 'publicInformation', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '177212', + 'abilityTreeNodes' => ['FEATUREslbEI2GF0'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', + 'name' => 'AdditionalCertificateIds', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'title' => 'add 必选', - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~2399192~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + 'title' => '', + 'description' => 'The additional certificates. You can associate up to 15 additional certificates with a listener in each call.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The additional certificate. You can associate up to 15 additional certificates with a listener in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => '12315790343_166f8204689_1714763408_70998****', 'title' => ''], + 'required' => true, + 'maxItems' => 15, + 'minItems' => 1, ], ], [ - 'name' => 'LogProject', - 'in' => 'query', - 'schema' => [ - 'title' => 'add 必选', - 'description' => 'The name of the Log Service project.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'hdmonitor-cn-hangzhou-223794579283657556', - ], + 'name' => 'ListenerId', + 'in' => 'formData', + 'schema' => ['title' => '', 'description' => 'The listener ID. Only TCPSSL listener IDs are supported.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-bpn0kn908w4nbw****@80'], ], [ - 'name' => 'MetricStore', - 'in' => 'query', - 'schema' => [ - 'title' => 'add 必选', - 'description' => 'The name of the MetricStore in Simple Log Service.', - 'type' => 'string', - 'required' => true, - 'example' => 'hdmonitor-cn-hangzhou-metricStore-1', - ], + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse'."\n", + 'title' => 'RpcResponse', + 'description' => 'The operation to add additional certificates to a listener that uses SSL over TCP.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'RegionId' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~2399192~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'LogProject' => [ - 'description' => 'The name of the Log Service project.'."\n", - 'type' => 'string', - 'example' => 'hdmonitor-cn-hangzhou-223794579283657556', - ], - 'MetricStore' => [ - 'description' => 'The name of the MetricStore in Simple Log Service.', - 'type' => 'string', - 'example' => 'hdmonitor-cn-hangzhou-metricStore-1', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-93F8-7FF34B540710', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'OperationDenied.%s', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''], + ['errorCode' => 'OperationFailed.%s', 'errorMessage' => 'The operation failed because of %s.', 'description' => 'Failed to call the API operation due to %.'], + ['errorCode' => 'IncorrectStatus.%s', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceAlreadyAssociated.%s', 'errorMessage' => 'The specified resource of %s is already associated.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.listener', 'errorMessage' => 'The status of listener [%s] is incorrect.', 'description' => 'The current operation cannot be performed on the listener as its status is unavailable. Please check if the listener is currently undergoing any other operations.'], + ['errorCode' => 'ResourceAlreadyAssociated.Certificate', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => ''], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => 'The specific resource is conflict.'], + ['errorCode' => 'OperationDenied.Protocol', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.Certificate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], + ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'EnableHDMonitor.Fail', - 'errorMessage' => 'EnableHDMonitor Fail.', - ], + ['errorCode' => 'ResourceNotFound.%s', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Nlb::2022-04-30::GetJobStatus', 'callbackInterval' => 5000, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-93F8-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' => 'AssociateAdditionalCertificatesWithListener', + 'summary' => 'Associates additional certificates with a listener that uses SSL over TCP.', + 'description' => '**AssociateAdditionalCertificatesWithListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListListenerCertificates](~~615175~~) operation to query the status of the task:'."\n" + ."\n" + .'* If the listener is in the **Associating** state, the additional certificates are being associated.'."\n" + .'* If the listener is in the **Associated** state, the additional certificates are associated.'."\n", + 'changeSet' => [ + ['createdAt' => '2024-02-29T07:14:37.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-22T08:02:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-29T06:32:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:26.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateAdditionalCertificatesWithListener'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:AssociateAdditionalCertificatesWithListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LogProject\\": \\"hdmonitor-cn-hangzhou-223794579283657556\\",\\n \\"MetricStore\\": \\"hdmonitor-cn-hangzhou-metricStore-1\\"\\n}","type":"json"}]', - 'title' => 'SetHdMonitorRegionConfig', - 'description' => 'This operation is used to configure a data warehouse for the fine-grained monitoring feature. If a listener in the current region has fine-grained monitoring enabled, you must disable fine-grained monitoring before you can configure a warehouse.', ], - 'DescribeRegions' => [ - 'summary' => 'Queries regions that support Network Load Balancer (NLB) instances.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AttachCommonBandwidthPackageToLoadBalancer' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', + 'abilityTreeCode' => '141865', + 'abilityTreeNodes' => ['FEATUREslb12YEWG'], ], 'parameters' => [ [ - 'name' => 'ServiceCode', - 'in' => 'query', - 'schema' => [ - 'description' => 'The service code. Set the value to **nlb**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nlb', - 'default' => 'nlb', - ], + 'name' => 'LoadBalancerId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the NLB instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], ], [ - 'name' => 'AcceptLanguage', - 'in' => 'query', - 'schema' => [ - 'description' => 'The supported natural language. Valid values:'."\n" - ."\n" - .'* **zh-CN**: Chinese'."\n" - .'* **en-US** (default): English'."\n" - .'* **ja**: Japanese'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'en-US', - ], + 'name' => 'BandwidthPackageId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cbwp-bp1pzf0ym72pu3y76****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse', + 'title' => 'response', + 'description' => 'response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'Regions' => [ - 'description' => 'A list of regions.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The list of regions.'."\n", - 'type' => 'object', - 'properties' => [ - 'LocalName' => [ - 'description' => 'The name of the region.'."\n", - 'type' => 'string', - 'example' => 'us-east-1', - ], - 'RegionEndpoint' => [ - 'description' => 'The endpoint of the region service.'."\n", - 'type' => 'string', - 'example' => 'nlb.cn-hangzhou.aliyuncs.com', - ], - 'RegionId' => [ - 'description' => 'The ID of the region.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', + ['errorCode' => 'OperationDenied.IntranetLoadBalancer', 'errorMessage' => 'The operation is not allowed because of IntranetLoadBalancer.', 'description' => 'The operation is not allowed because of IntranetLoadBalancer.'], + ['errorCode' => 'ResourceAlreadyAssociated.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is already associated.', 'description' => 'the specified load balancer has been bound to the shared bandwidth package.'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => 'The specified resource of loadbalancer is being configured, please try again later.'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.BandwidthPackageId', 'errorMessage' => 'The specified resource of BandwidthPackageId is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.CommonBandwidthPackage', 'errorMessage' => 'The specified resource of CommonBandwidthPackage is not found.', 'description' => 'The shared bandwidth package resource does not exist. Check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'AttachCommonBandwidthPackageToLoadBalancer', + 'summary' => 'Associates an Internet Shared Bandwidth instance with a Network Load Balancer (NLB) instance.', + 'changeSet' => [ + ['createdAt' => '2024-02-22T08:02:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-29T06:32:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-30T04:13:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:46.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-02T06:52:11.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-06-27T08:29:21.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:31.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AttachCommonBandwidthPackageToLoadBalancer'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:AttachCommonBandwidthPackageToLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'CommonBandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:CommonBandwidthPackage/{#CommonBandwidthPackageId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"China (Hangzhou)\\",\\n \\"RegionEndpoint\\": \\"nlb.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n \\n 华东1(杭州)\\n nlb.cn-hangzhou.aliyuncs.com\\n cn-hangzhou\\n \\n","errorExample":""}]', - 'title' => 'DescribeRegions', ], - 'DescribeZones' => [ - 'summary' => 'Queries the zones of a region in which a Network Load Balancer (NLB) instance is deployed.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CancelShiftLoadBalancerZones' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'ServiceCode', - 'in' => 'query', + 'name' => 'ZoneMappings', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The service code. Set the value to **nlb**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nlb', + 'description' => 'The mapping between the zone and the vSwitch.'."\n" + ."\n" + .'> You can specify only one zone ID in each call.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The mapping between the zone and the vSwitch.'."\n" + ."\n" + .'> You can specify only one zone ID in each call.'."\n", + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => 'The ID of the vSwitch in the zone. By default, each zone uses one vSwitch and one subnet.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vsw-sersdf****', 'title' => ''], + 'ZoneId' => ['description' => 'The zone ID of the NLB instance.'."\n" + ."\n" + .'> You can specify only one zone ID in each call.'."\n" + ."\n" + .'You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a', 'title' => ''], + ], + 'required' => false, + 'title' => '', + ], + 'required' => true, + 'maxItems' => 1, + 'minItems' => 1, + 'title' => '', ], ], [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the zone belongs. You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'name' => 'LoadBalancerId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the NLB instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], ], [ - 'name' => 'AcceptLanguage', - 'in' => 'query', - 'schema' => [ - 'description' => 'The supported natural language. Valid values:'."\n" - ."\n" - .'* **zh-CN**: Chinese'."\n" - .'* **en-US** (default): English'."\n" - .'* **ja**: Japanese'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'zh-CN', - ], + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'in' => 'formData', + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'The response parameters.'."\n", + 'title' => 'RpcResponse', + 'description' => 'RpcResponse'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'Zones' => [ - 'description' => 'A list of zones.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The zone.'."\n", - 'type' => 'object', - 'properties' => [ - 'LocalName' => [ - 'description' => 'The zone name.'."\n", - 'type' => 'string', - 'example' => 'ap_southeast_2', - ], - 'ZoneId' => [ - 'description' => 'The zone ID.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-g', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.AcceptLanguage', - 'errorMessage' => 'The param of AcceptLanguage[%s] is illegal from bundle %s', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', + ['errorCode' => 'IncorrectStatus.ZoneId', 'errorMessage' => 'The zoneId status of eni [%s] is incorrect.', 'description' => 'The zone status of the ENI cannot be operated. Wait for the preceding operation to complete.'], + ], + 403 => [ + ['errorCode' => 'Forbidden.%s', 'errorMessage' => 'Authentication is failed for %s.', 'description' => ''], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], + [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + 'title' => 'CancelShiftLoadBalancerZones', + 'summary' => 'Adds the elastic IP address (EIP) and virtual IP address (VIP) of a zone to the DNS record.', + 'description' => 'Before you call this operation, the zone of the Network Load Balancer (NLB) instance is removed from the DNS record by using the console or calling the [StartShiftLoadBalancerZones](~~2411999~~) API operation.'."\n", + 'changeSet' => [ + ['createdAt' => '2024-02-29T07:14:37.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-12T07:29:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:26.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelShiftLoadBalancerZones'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:CancelShiftLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Zones\\": [\\n {\\n \\"LocalName\\": \\"杭州 可用区G\\",\\n \\"ZoneId\\": \\"cn-hangzhou-g\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n \\n 华东 1 可用区G\\n cn-hangzhou-g\\n \\n","errorExample":""}]', - 'title' => 'DescribeZones', ], - 'CreateLoadBalancer' => [ - 'summary' => 'Creates a Network Load Balancer (NLB) instance in a specified region.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateListener' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -601,295 +604,221 @@ 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '141875', - 'abilityTreeNodes' => [ - 'FEATUREslbS3YPBZ', - ], + 'chargeType' => 'free', + 'abilityTreeCode' => '141889', + 'abilityTreeNodes' => ['FEATUREslbC68LB1', 'FEATUREslb4PUXNB', 'FEATUREslbGDCN1S', 'FEATUREslbUZZGGD'], ], 'parameters' => [ [ - 'name' => 'LoadBalancerType', + 'name' => 'ListenerProtocol', 'in' => 'formData', 'schema' => [ - 'description' => 'The type of the Server Load Balancer (SLB) instance. Set the value to **network**, which indicates an NLB instance.'."\n", + 'description' => 'The listener protocol. Valid values: **TCP**, **UDP**, and **TCPSSL**.', 'type' => 'string', - 'required' => false, - 'example' => 'network', - 'default' => 'network', + 'required' => true, 'enum' => [], + 'title' => '', + 'example' => 'TCP', ], ], [ - 'name' => 'LoadBalancerName', + 'name' => 'ListenerPort', 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the NLB instance.'."\n" - ."\n" - .'It must be 2 to 128 characters in length, can contain letters, digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'NLB1', - ], + 'schema' => ['description' => 'The listener port. Valid values: **0** to **65535**.'."\n" + ."\n" + .'A value of **0** specifies that all ports are used. If you set the value to **0**, you must also specify **StartPort** and **EndPort**.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '65535', 'minimum' => '0', 'title' => '', 'example' => '80'], ], [ - 'name' => 'AddressType', + 'name' => 'ListenerDescription', 'in' => 'formData', - 'schema' => [ - 'description' => 'The type of IPv4 addresses used for the NLB instance. Valid values are:'."\n" - ."\n" - .'* **Internet**: The nodes of an Internet-facing NLB instance have public IP addresses. The DNS name of an Internet-facing NLB instance is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing NLB instances can route requests from clients over the Internet.'."\n" - .'* **Intranet**: The nodes of an internal-facing NLB instance have only private IP addresses. The DNS name of an internal-facing NLB instance is publicly resolvable to the private IP addresses of the nodes. Therefore, internal-facing NLB instances can route requests only from clients with access to the virtual private cloud (VPC) for the NLB instance.'."\n" - ."\n" - .'> To enable a public IPv6 address for a dual-stack NLB instance, call the [EnableLoadBalancerIpv6Internet](~~445878~~) operation.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Internet', - 'enum' => [], - ], + 'schema' => ['description' => 'The name of the listener.'."\n" + ."\n" + .'The name must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'tcp_80'], ], [ - 'name' => 'AddressIpVersion', + 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The version of IP addresses used for the NLB instance. Valid values:'."\n" - ."\n" - .'* **ipv4** (default)'."\n" - .'* **DualStack**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv4', - 'default' => 'ipv4', - 'enum' => [], - ], + 'schema' => ['description' => 'The ID of the NLB instance.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'nlb-83ckzc8d4xlp8o****'], ], [ - 'name' => 'VpcId', + 'name' => 'ServerGroupId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the VPC where you want to create the NLB instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-bp1b49rqrybk45nio****', - ], + 'schema' => ['title' => 'servergroupId', 'description' => 'The ID of the server group.'."\n" + ."\n" + .'> - If **TCP** is selected for **ListenerProtocol**, you can select a server group whose backend protocol is **TCP** or **TCP\\_UDP**. You cannot select a server group whose backend protocol is **UDP**.'."\n" + .'>'."\n" + .'> - If **UDP** is selected for **ListenerProtocol**, you can select a server group whose backend protocol is **UDP** or **TCP\\_UDP**. You cannot select a server group whose backend protocol is **TCP**.'."\n" + .'>'."\n" + .'> - If **TCPSSL** is selected for **ListenerProtocol**, you can select a server group whose backend protocol is **TCP** and for which the client IP address retention feature is **disabled**. You cannot select a server group whose backend protocol is **TCP** and for which the client IP address retention feature is **enabled**, or a server group whose backend protocol is **UDP** or **TCP\\_UDP**.', 'type' => 'string', 'required' => false, 'example' => 'sgp-ppdpc14gdm3x4o****'], ], [ - 'name' => 'ZoneMappings', + 'name' => 'IdleTimeout', 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'description' => 'The mappings between zones and vSwitches. An NLB instance can be deployed in up to 10 zones. If the region supports two or more zones, you must specify at least two zones.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The mapping between the zone and the vSwitch. An NLB instance can be deployed in up to 10 zones. If the region supports two or more zones, you must specify at least two zones.'."\n", - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The ID of the vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone of an NLB instance. An NLB instance can be deployed in up to 10 zones. If the region supports two or more zones, you must specify at least two zones.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-sersdf****', - ], - 'ZoneId' => [ - 'description' => 'The ID of the zone where the NLB instance is deployed. An NLB instance can be deployed in up to 10 zones. If the region supports two or more zones, specify at least two zones.'."\n" - ."\n" - .'You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou-a', - ], - 'PrivateIPv4Address' => [ - 'title' => '私网ip', - 'description' => 'The private virtual IP address (VIP) of the IPv4 version. The private IPv4 address that the NLB instance uses to provide external services.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.10.1', - ], - 'AllocationId' => [ - 'title' => '公网ipId', - 'description' => 'The ID of the elastic IP address (EIP) that is associated with the Internet-facing NLB instance. Each zone is assigned one EIP. An NLB instance can be deployed in up to 10 zones. If the region supports two or more zones, specify at least two zones.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eip-bp1aedxso6u80u0qf****', - ], - 'Ipv6Address' => [ - 'description' => 'The VIP of the IPv6 version. The IPv6 address that the NLB instance uses to provide external services.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:400a:d5:3080:b409:840a:ca:e8e5', - ], - 'Ipv4LocalAddresses' => [ - 'description' => 'The local IPv4 addresses. The IP addresses that the NLB instance uses to communicate with the backend servers. The number of IP addresses must be an even number, which must be at least 2 and at most 8.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The local IPv4 address.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.10.2', - ], - 'required' => false, - 'maxItems' => 8, - 'minItems' => 2, - ], - 'Ipv6LocalAddresses' => [ - 'description' => 'The local IPv6 addresses. The IP addresses that the NLB instance uses to communicate with the backend servers. The number of IP addresses must be an even number, which must be at least 2 and at most 8.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The local IPv6 address.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:400a:d5:3080:b409:840a:ca:e8e6', - ], - 'required' => false, - 'maxItems' => 8, - 'minItems' => 2, - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 10, - 'minItems' => 1, - ], + 'schema' => ['description' => 'The timeout period of an idle connection. Unit: seconds.'."\n" + ."\n" + .'- If **ListenerProtocol** is set to **TCP** or **TCPSSL**, the value must be in the range of **10** to **900**. Default value: **900**.'."\n" + ."\n" + .'- If **ListenerProtocol** is set to **UDP**, the value must be in the range of **10** to **90**. Default value: **90**.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '10', 'title' => '', 'required' => false, 'maximum' => '3600', 'example' => '900'], ], [ - 'name' => 'BandwidthPackageId', + 'name' => 'SecurityPolicyId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the Internet Shared Bandwidth instance that is associated with the Internet-facing NLB instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cbwp-bp1vevu8h3ieh****', - ], + 'schema' => ['description' => 'The ID of the security policy. System security policies and custom security policies are supported.'."\n" + ."\n" + .'- Valid values for system policies: **tls\\_cipher\\_policy\\_1\\_0** (default), **tls\\_cipher\\_policy\\_1\\_1**, **tls\\_cipher\\_policy\\_1\\_2**, **tls\\_cipher\\_policy\\_1\\_2\\_strict**, and **tls\\_cipher\\_policy\\_1\\_2\\_strict\\_with\\_1\\_3**.'."\n" + ."\n" + .'- Custom security policies: the ID of the custom security policy.'."\n" + ."\n" + .' - For more information about how to create a custom policy, see [CreateSecurityPolicy](~~445901~~).'."\n" + ."\n" + .' - For more information about how to query security policies, see [ListSecurityPolicy](~~445900~~).'."\n" + ."\n" + .'> This parameter takes effect only for TCP/SSL listeners.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'tls_cipher_policy_1_0'], ], [ - 'name' => 'LoadBalancerBillingConfig', + 'name' => 'CertificateIds', 'in' => 'formData', - 'style' => 'flat', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The billing settings of the NLB instance.'."\n", - 'type' => 'object', - 'properties' => [ - 'PayType' => [ - 'title' => 'PrePay, PostPay', - 'description' => 'The billing method of the NLB instance.'."\n" - ."\n" - .'Set the value to **PostPay**, which specifies the pay-as-you-go billing method.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PostPay', - ], - ], + 'title' => '', + 'description' => 'The server certificates. This parameter takes effect only for TCP/SSL listeners.'."\n" + ."\n" + .'> You can specify only one server certificate.', + 'type' => 'array', + 'items' => ['description' => 'The server certificates. This parameter takes effect only for TCP/SSL listeners.'."\n" + ."\n" + .'> You can specify only one server certificate.', 'type' => 'string', 'required' => false, 'example' => '123157******', 'title' => ''], 'required' => false, + 'maxItems' => 10, + 'example' => '', ], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'CaCertificateIds', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the resource group to which the instance belongs.'."\n", - 'type' => 'string', + 'title' => '', + 'description' => 'The CA certificates. This parameter takes effect only for TCP/SSL listeners.'."\n" + ."\n" + .'> You can specify only one CA certificate.', + 'type' => 'array', + 'items' => ['description' => 'The CA certificates. This parameter takes effect only for TCP/SSL listeners.'."\n" + ."\n" + .'> You can specify only one CA certificate.', 'type' => 'string', 'required' => false, 'example' => '139a00******', 'title' => ''], 'required' => false, - 'example' => 'rg-atstuj3rtop****', + 'maxItems' => 10, + 'example' => '', ], ], + [ + 'name' => 'CaEnabled', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to enable mutual authentication. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false** (default)', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Perform a dry run without actually making the request. Valid values are:'."\n" - ."\n" - .'* **true**: Perform only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the check, an error message specifying the issue is returned. If the request passes, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): Check the request and perform the operation. If the request passes the check, a 2xx HTTP status code is returned, and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run. The system checks the required parameters, request format, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'- **false** (default): performs a regular request. If the request passes the check, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can create a client token to make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the request as the **ClientToken**. The **RequestId** may be different for each request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'ProxyProtocolEnabled', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to use the Proxy protocol to pass client IP addresses to backend servers. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false** (default)', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'SecSensorEnabled', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to enable fine-grained monitoring. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false** (default)', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'AlpnEnabled', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to enable Application-Layer Protocol Negotiation (ALPN). Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false** (default)', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'AlpnPolicy', + 'in' => 'formData', 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" + 'description' => 'The ALPN policy. Valid values:'."\n" + ."\n" + .'- **HTTP1Only**: uses only HTTP 1.x. The priority is HTTP 1.1 > HTTP 1.0.'."\n" + ."\n" + .'- **HTTP2Only**: uses only HTTP 2.0.'."\n" + ."\n" + .'- **HTTP2Optional**: prefers HTTP 1.x, but also supports HTTP 2.0. The priority is HTTP 1.1 > HTTP 1.0 > HTTP 2.0.'."\n" ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", + .'- **HTTP2Preferred**: prefers HTTP 2.0, but also supports HTTP 1.x. The priority is HTTP 2.0 > HTTP 1.1 > HTTP 1.0.'."\n" + ."\n" + .'> This parameter is required if AlpnEnabled is set to **true**.', 'type' => 'string', + 'enum' => ['HTTP1Only', 'HTTP2Only', 'HTTP2Preferred', 'HTTP2Optional'], 'required' => false, - 'example' => 'cn-hangzhou', + 'example' => 'HTTP1Only', + 'title' => '', ], ], [ - 'name' => 'DeletionProtectionConfig', + 'name' => 'StartPort', 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'description' => 'The configuration of the deletion protection feature.'."\n", - 'type' => 'object', - 'properties' => [ - 'Enabled' => [ - 'description' => 'Specifies whether to enable the deletion protection feature. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'Reason' => [ - 'description' => 'The reason why the deletion protection feature is enabled or disabled. The reason must be 2 to 128 characters in length, can contain letters, digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'The instance is running'."\n", - ], - ], - 'required' => false, - ], + 'schema' => ['description' => 'The start port for the listener port range. Valid values: **1** to **65535**.'."\n" + ."\n" + .'> This parameter is required if **ListenerPort** is set to **0**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '244', 'title' => ''], ], [ - 'name' => 'ModificationProtectionConfig', + 'name' => 'EndPort', 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'description' => 'The configuration of the configuration read-only mode.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'Specifies whether to enable the configuration read-only mode. Valid values:'."\n" - ."\n" - .'* **NonProtection**: does not enable the configuration read-only mode. You cannot set the **Reason** parameter. If the **Reason** parameter is set, the value is cleared.'."\n" - .'* **ConsoleProtection**: enables the configuration read-only mode. You can set the **Reason** parameter.'."\n" - ."\n" - .'> If the parameter is set to **ConsoleProtection**, the configuration read-only mode is enabled. You cannot modify the configurations of the NLB instance in the NLB console. However, you can call API operations to modify the configurations of the NLB instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ConsoleProtection', - ], - 'Reason' => [ - 'description' => 'The reason for enabling the configuration read-only mode. The reason must be 2 to 128 characters in length, can contain letters, digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.'."\n" - ."\n" - .'> This parameter takes effect only when **Status** is set to **ConsoleProtection**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Service guarantee period'."\n", - ], - ], - 'required' => false, - ], + 'schema' => ['description' => 'The end port for the listener port range. Valid values: **1** to **65535**. The value of the end port must be greater than the value of the start port.'."\n" + ."\n" + .'> This parameter is required if **ListenerPort** is set to **0**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '566', 'title' => ''], + ], + [ + 'name' => 'Cps', + 'in' => 'formData', + 'schema' => ['description' => 'The maximum number of new connections that can be created per second on the listener in each zone (VIP). Valid values: **0** to **1000000**. **0** indicates that the number of new connections is unlimited.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'title' => ''], + ], + [ + 'name' => 'Mss', + 'in' => 'formData', + 'schema' => ['description' => 'The maximum segment size (MSS) of TCP packets. Unit: bytes. Valid values: **0** to **1500**. **0** indicates that the MSS value of TCP packets is not modified.'."\n" + ."\n" + .'> This parameter is available only for listeners that use TCP or TCP/SSL.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '43', 'title' => ''], ], [ 'name' => 'Tag', @@ -897,213 +826,178 @@ 'allowEmptyValue' => true, 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags.'."\n", + 'description' => 'The tags.', 'type' => 'array', 'items' => [ - 'description' => 'The tag.'."\n", + 'description' => 'The tag.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. The tag key can be up to 64 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`. The tag key can contain letters, digits, and the following special characters: \\_ . : / = + - @'."\n" - ."\n" - .'You can specify up to 20 tags in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => 'The value of the tag. The tag value can be up to 128 characters in length, cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`. The tag value can contain letters, digits, and the following special characters: \\_ . : / = + - @'."\n" - ."\n" - .'You can specify up to 20 tags in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], + 'Key' => ['description' => 'The tag key. The tag key can be up to 64 characters in length, and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`. It can contain letters, digits, underscores (\\_), periods (.), colons (:), forward slashes (/), equal signs (=), plus signs (+), hyphens (-), and at signs (@).'."\n" + ."\n" + .'You can specify up to 20 tags in each call.', 'type' => 'string', 'required' => false, 'example' => 'KeyTest', 'title' => ''], + 'Value' => ['description' => 'The tag value. The tag value can be up to 128 characters in length, and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`. It can contain letters, digits, underscores (\\_), periods (.), colons (:), forward slashes (/), equal signs (=), plus signs (+), hyphens (-), and at signs (@).'."\n" + ."\n" + .'You can specify up to 20 tags in each call.', 'type' => 'string', 'required' => false, 'example' => 'Test', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, 'maxItems' => 20, + 'title' => '', + 'example' => '', + ], + ], + [ + 'name' => 'ProxyProtocolV2Config', + 'in' => 'formData', + 'style' => 'json', + 'schema' => [ + 'description' => 'The configuration of the Proxy protocol to carry the VpcId, PrivateLinkEpId, and PrivateLinkEpsId information to backend servers.', + 'type' => 'object', + 'properties' => [ + 'Ppv2VpcIdEnabled' => ['description' => 'Specifies whether to use the Proxy protocol to carry the VpcId to backend servers. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false** (default)', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + 'Ppv2PrivateLinkEpIdEnabled' => ['description' => 'Specifies whether to use the Proxy protocol to carry the Ppv2PrivateLinkEpId to backend servers. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false** (default)', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + 'Ppv2PrivateLinkEpsIdEnabled' => ['description' => 'Specifies whether to use the Proxy protocol to carry the PrivateLinkEpsId to backend servers. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false** (default)', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => 'response'."\n", + 'title' => 'RpcResponse', + 'description' => 'RpcResponse', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'LoadbalancerId' => [ - 'description' => 'The ID of the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'OrderId' => [ - 'description' => 'The ID of the order for the NLB instance.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20230000', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'ListenerId' => ['description' => 'The listener ID.', 'type' => 'string', 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.OnlyPayByTrafficSupported', - 'errorMessage' => 'The operation is not allowed because of OnlyPayByTrafficSupported.', - ], - [ - 'errorCode' => 'OperationFailed.%s', - 'errorMessage' => 'The operation failed because of %s.', - ], - [ - 'errorCode' => 'Mismatch.ZoneIdAndVswitchId', - 'errorMessage' => 'The ZoneIdAndVswitchId is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'QuotaExceeded.%s', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'OperationDenied.OnlyPostPaidSupported', - 'errorMessage' => 'The operation is not allowed because of OnlyPostPaidSupported.', - ], - [ - 'errorCode' => 'OperationFailed.DuplicateZones.', - 'errorMessage' => 'The operation failed because of Can not Specify duplicate zones.', - ], - [ - 'errorCode' => 'ResourceNotEnough.VSwitchIp', - 'errorMessage' => 'The specified resource of VSwitchIp is not enough.', - ], - [ - 'errorCode' => 'DuplicatedParam.AllocationId', - 'errorMessage' => 'The param of AllocationId is duplicated.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.VswitchId', - 'errorMessage' => 'The specified resource of VswitchId is being configured, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.UnpaidBill', - 'errorMessage' => 'The operation failed because of UnpaidBill.', - ], - [ - 'errorCode' => 'OperationDenied.ServiceLinkedRoleNotExist', - 'errorMessage' => 'The operation is not allowed because of ServiceLinkedRoleNotExist.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.AllocationId', - 'errorMessage' => 'The specified resource of %s is already associated.', - ], - [ - 'errorCode' => 'OperationFailed.vSwitchNotSupportIpv6', - 'errorMessage' => 'The operation failed because of vSwitchNotSupportIpv6.', - ], - [ - 'errorCode' => 'InvalidZones', - 'errorMessage' => 'The current zone list is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded.QuotaInsufficient', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceInUse.IP', - 'errorMessage' => 'The specified resource of IP is in use.', - ], - [ - 'errorCode' => 'OperationFailed.CreateOrderError', - 'errorMessage' => 'Operation failed because CreateOrderError.', - ], - [ - 'errorCode' => 'OperationFailed.NotExist.ResourceGroup', - 'errorMessage' => 'Operation failed because ResourceGroup not exist.', - ], - [ - 'errorCode' => 'IllegalParam.loadBalancerName', - 'errorMessage' => 'Param loadBalancerName is illegal.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', - ], - [ - 'errorCode' => 'IllegalParam.DeletionProtectionConfig', - 'errorMessage' => 'DeletionProtectionConfig reason is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.ModificationProtectionConfig', - 'errorMessage' => 'ModificationProtectionConfig reason is illegal.', - ], - [ - 'errorCode' => 'Throttling.User', - 'errorMessage' => 'Request was denied due to api flow control.', - ], + ['errorCode' => 'Conflict.Port', 'errorMessage' => 'The Port [%s] is conflict.', 'description' => 'The specified port conflicts with an existing port'], + ['errorCode' => 'IllegalParam.MssConflictWithUdpAndGeneve', 'errorMessage' => 'The param of MssConflictWithUdpAndGeneve is illegal.', 'description' => 'When the Mss value is not null, the listenerProtocol cannot be udp or GENEVE.'], + ['errorCode' => 'QuotaExceeded.%s', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The VpcId is mismatched for %s and %s.', 'description' => 'The VpcId is mismatched for %s and %s.'], + ['errorCode' => 'ResourceNotEnough.%s', 'errorMessage' => 'The specified resource of %s is not enough.', 'description' => ''], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => 'The specific resource is conflict.'], + ['errorCode' => 'IllegalParam.AnyPortListenerConflictWithNonAnyPortServerGroup', 'errorMessage' => 'The param of AnyPortListenerConflictWithNonAnyPortServerGroup is illegal.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.loadbalancer', 'errorMessage' => 'The status of loadbalancer [%s] is incorrect.', 'description' => 'The current operation cannot be performed on the load balancer as its status is unavailable. Please check if the load balancer is currently undergoing any other operations.'], + ['errorCode' => 'ResourceNotFound.Certificate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], + ['errorCode' => 'IllegalParam.ServerGroupId', 'errorMessage' => 'The param of ServerGroupId is illegal.', 'description' => 'The parameter ServerGroupId is invalid. Check the input parameters.'], + ['errorCode' => 'IllegalParam.NonAnyPortListenerConflictWithAnyPortServerGroup', 'errorMessage' => 'The param of NonAnyPortListenerConflictWithAnyPortServerGroup is illegal.', 'description' => 'The listening port configuration conflicts with the full port forwarding switch.'], + ['errorCode' => 'MissingParam.Certificate', 'errorMessage' => 'The param of certificate is missing.', 'description' => 'The parameter Certificate is missing.'], + ['errorCode' => 'IllegalParam.Port', 'errorMessage' => 'The param of Port is illegal.', 'description' => 'The port range in the request is invalid. Check the input parameters.'], + ['errorCode' => 'QuotaExceeded.QuotaInsufficient', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota is insufficient, currently used %s/%s. Please modify the quota size in the quota center.'], + ['errorCode' => 'Mismatch.Protocol', 'errorMessage' => 'The Protocol is mismatched for %s and %s.', 'description' => 'The protocols of the listener and server group do not match.'], + ['errorCode' => 'ResourceNotEnough.CaCertificateApiCount', 'errorMessage' => 'The specified resource of CaCertificateApiCount is not enough.', 'description' => ''], + ['errorCode' => 'MissingParam.ServerGroupId', 'errorMessage' => 'The param of ServerGroupId is missing.', 'description' => 'The parameter ServerGroupId is missing, please check the input parameters.'], + ['errorCode' => 'IllegalParam.ListenerDescription', 'errorMessage' => 'The parameter ListenerDescription of listener is illegal.', 'description' => 'The listener description does not meet the input requirements. Modify the listener description based on the details in the error.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], + ['errorCode' => 'IllegalParam.IdleTimeout', 'errorMessage' => 'The param of IdleTimeout is illegal.', 'description' => 'The parameter connection idle timeout configuration is invalid.'], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => ''], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParamSize.certificateIds', 'errorMessage' => 'The param size of certificateIds or caCertificateIds is illegal.', 'description' => 'you can only have one certificate id. check whether the id is entered repeatedly.'], + ['errorCode' => 'DuplicatedParam.listener', 'errorMessage' => 'The param of any port listener is duplicated.', 'description' => 'Only one listener of the anyport type can be created. Check the input parameters.'], + ['errorCode' => 'IllegalParam.PreserveClientIpSwitch', 'errorMessage' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.', 'description' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.'], + ['errorCode' => 'OperationDenied.RegionNotSupportHDMonitor', 'errorMessage' => 'The operation is not allowed because of RegionNotSupportHDMonitor.', 'description' => 'The current region does not support second-level monitoring.'], ], 403 => [ - [ - 'errorCode' => 'UnauthorizedZone', - 'errorMessage' => 'The specified zone of %s is not authorized.', - ], - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - [ - 'errorCode' => 'UnauthorizedRegion', - 'errorMessage' => 'The specified region of %s is not authorized.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource of vSwitch is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Vpc', - 'errorMessage' => 'The specified resource of Vpc is not found.', + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource of vSwitch is not found.', 'description' => 'The specified vSwitch resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => 'The specified resource of serverGroup is not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.CaCertificate', 'errorMessage' => 'The specified resource of CaCertificate is not found.', 'description' => 'Ca certificate does not exist, please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.HdMonitorConfigNotExist', 'errorMessage' => 'The specified resource of HdMonitorConfigNotExist is not found.', 'description' => 'HdMonitorConfig does not exist, check the input parameters.'], + ], + ], + 'title' => 'CreateListener', + 'summary' => 'Creates a TCP, UDP, or TCP/SSL listener for a Network Load Balancer (NLB) instance.', + 'changeSet' => [ + ['createdAt' => '2024-08-27T11:23:19.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-03-21T04:00:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-03-14T12:28:48.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-22T08:02:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-04T05:53:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-30T03:05:03.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-01-29T06:32:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-24T07:05:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-22T09:55:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-20T10:18:20.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-11-27T08:27:55.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-10-10T08:16:48.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-09T11:30:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-12T02:58:38.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:46.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-30T07:50:13.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-29T02:29:28.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-03-30T07:06:50.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-11-03T13:06:27.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-08-02T06:52:11.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-06T07:08:22.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-29T09:24:49.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-27T08:29:13.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-18T09:43:00.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T07:55:41.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:00.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateListener'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateListener', + 'authLevel' => 'operate', + 'actionConditions' => [ + ['conditionKey' => 'nlb:ListenerProtocol', 'validationType' => 'always'], + ['conditionKey' => 'nlb:SecurityPolicyId', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"LoadbalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"OrderId\\": 20230000\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n nlb-83ckzc8d4xlp8o****\\n 20230000\\n","errorExample":""}]', - 'title' => 'CreateLoadBalancer', - 'description' => '* When you create an NLB instance, the service-linked role AliyunServiceRoleForNlb is automatically created and assigned to you.'."\n" - ."\n" - .'* **CreateLoadBalancer** is an asynchronous operation. After you send a request, the system returns an instance ID and runs the task in the background. You can call [GetLoadBalancerAttribute](~~445873~~) to query the status of an NLB instance.'."\n" - ."\n" - .' * If an NLB instance is in the **Provisioning** state, the NLB instance is being created.'."\n" - .' * If an NLB instance is in the **Active** state, the NLB instance is created.', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@80\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","type":"json"}]', ], - 'DeleteLoadBalancer' => [ - 'summary' => 'Deletes a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateLoadBalancer' => [ + 'summary' => 'Creates a Network Load Balancer (NLB) instance in a specified region.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1112,371 +1006,367 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '141875', + 'abilityTreeNodes' => ['FEATUREslbS3YPBZ'], ], 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'LoadBalancerType', 'in' => 'formData', 'schema' => [ - 'description' => 'The ID of the NLB instance.'."\n", + 'description' => 'The type of the Server Load Balancer (SLB) instance. Set the value to **network**, which indicates an NLB instance.', 'type' => 'string', - 'required' => true, - 'example' => 'nlb-wb7r6dlwetvt5j****', + 'required' => false, + 'default' => 'network', + 'enum' => [], + 'example' => 'network', + 'title' => '', ], ], [ - 'name' => 'DryRun', + 'name' => 'LoadBalancerName', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The name of the NLB instance.'."\n" + ."\n" + .'It must be 2 to 128 characters in length, can contain letters, digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.', 'type' => 'string', 'required' => false, 'example' => 'NLB1', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'AddressType', 'in' => 'formData', 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" + 'description' => 'The type of IPv4 addresses used for the NLB instance. Valid values are:'."\n" + ."\n" + .'- **Internet**: The nodes of an Internet-facing NLB instance have public IP addresses. The DNS name of an Internet-facing NLB instance is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing NLB instances can route requests from clients over the Internet.'."\n" ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + .'- **Intranet**: The nodes of an internal-facing NLB instance have only private IP addresses. The DNS name of an internal-facing NLB instance is publicly resolvable to the private IP addresses of the nodes. Therefore, internal-facing NLB instances can route requests only from clients with access to the virtual private cloud (VPC) for the NLB instance.'."\n" ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", + .'> To enable a public IPv6 address for a dual-stack NLB instance, call the [EnableLoadBalancerIpv6Internet](~~445878~~) operation.', 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'required' => true, + 'enum' => [], + 'example' => 'Internet', + 'title' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'AddressIpVersion', 'in' => 'formData', 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" + 'description' => 'The version of IP addresses used for the NLB instance. Valid values:'."\n" + ."\n" + .'- **ipv4** (default)'."\n" ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", + .'- **DualStack**', 'type' => 'string', 'required' => false, - 'example' => 'cn-hangzhou', + 'default' => 'ipv4', + 'enum' => [], + 'example' => 'ipv4', + 'title' => '', ], ], - ], - 'responses' => [ - 200 => [ + [ + 'name' => 'VpcId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the VPC where you want to create the NLB instance.', 'type' => 'string', 'required' => true, 'example' => 'vpc-bp1b49rqrybk45nio****', 'title' => ''], + ], + [ + 'name' => 'ZoneMappings', + 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'title' => 'response', - 'description' => 'response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'description' => 'The mappings between zones and vSwitches. An NLB instance can be deployed in up to 10 zones. If the region supports two or more zones, you must specify at least two zones.', + 'type' => 'array', + 'items' => [ + 'description' => 'The mapping between the zone and the vSwitch. An NLB instance can be deployed in up to 10 zones. If the region supports two or more zones, you must specify at least two zones.', + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => 'The ID of the vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone of an NLB instance. An NLB instance can be deployed in up to 10 zones. If the region supports two or more zones, you must specify at least two zones.', 'type' => 'string', 'required' => true, 'example' => 'vsw-sersdf****', 'title' => ''], + 'ZoneId' => ['description' => 'The ID of the zone where the NLB instance is deployed. An NLB instance can be deployed in up to 10 zones. If the region supports two or more zones, specify at least two zones.'."\n" + ."\n" + .'You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a', 'title' => ''], + 'PrivateIPv4Address' => ['description' => 'The private virtual IP address (VIP) of the IPv4 version. The private IPv4 address that the NLB instance uses to provide external services.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '192.168.10.1'], + 'AllocationId' => ['description' => 'The ID of the elastic IP address (EIP) that is associated with the Internet-facing NLB instance. Each zone is assigned one EIP. An NLB instance can be deployed in up to 10 zones. If the region supports two or more zones, specify at least two zones.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'eip-bp1aedxso6u80u0qf****'], + 'Ipv6Address' => ['description' => 'The VIP of the IPv6 version. The IPv6 address that the NLB instance uses to provide external services.', 'type' => 'string', 'required' => false, 'example' => '2408:400a:d5:3080:b409:840a:ca:e8e5', 'title' => ''], + 'Ipv4LocalAddresses' => [ + 'description' => 'The local IPv4 addresses. The IP addresses that the NLB instance uses to communicate with the backend servers. The number of IP addresses must be an even number, which must be at least 2 and at most 8.', + 'type' => 'array', + 'items' => ['description' => 'The local IPv4 address.', 'type' => 'string', 'required' => false, 'example' => '192.168.10.2', 'title' => ''], + 'required' => false, + 'maxItems' => 15, + 'minItems' => 1, + 'title' => '', + 'example' => '', + ], + 'Ipv6LocalAddresses' => [ + 'description' => 'The local IPv6 addresses. The IP addresses that the NLB instance uses to communicate with the backend servers. The number of IP addresses must be an even number, which must be at least 2 and at most 8.', + 'type' => 'array', + 'items' => ['description' => 'The local IPv6 address.', 'type' => 'string', 'required' => false, 'example' => '2408:400a:d5:3080:b409:840a:ca:e8e6', 'title' => ''], + 'required' => false, + 'maxItems' => 15, + 'minItems' => 1, + 'title' => '', + 'example' => '', + ], ], + 'required' => false, + 'title' => '', + 'example' => '', ], + 'required' => true, + 'maxItems' => 10, + 'minItems' => 1, + 'title' => '', + 'example' => '', ], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationDenied.%s', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], - [ - 'errorCode' => 'ResourceInCreating.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'OperationDenied.DeletionProtectionEnabled', - 'errorMessage' => 'The operation is not allowed because of DeletionProtectionEnabled.', - ], - [ - 'errorCode' => 'IncorrectStatus.loadbalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], + [ + 'name' => 'BandwidthPackageId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the Internet Shared Bandwidth instance that is associated with the Internet-facing NLB instance.', 'type' => 'string', 'required' => false, 'example' => 'cbwp-bp1vevu8h3ieh****', 'title' => ''], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + [ + 'name' => 'LoadBalancerBillingConfig', + 'in' => 'formData', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The billing settings of the NLB instance.', + 'type' => 'object', + 'properties' => [ + 'PayType' => ['title' => 'PrePay, PostPay', 'description' => 'The billing method of the NLB instance.'."\n" + ."\n" + .'Set the value to **PostPay**, which specifies the pay-as-you-go billing method.', 'type' => 'string', 'required' => false, 'example' => 'PostPay'], + ], + 'required' => false, + 'title' => '', + 'example' => '', ], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], + 'name' => 'ResourceGroupId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the resource group to which the instance belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****', '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":""}]', - 'title' => 'DeleteLoadBalancer', - ], - 'UpdateLoadBalancerAddressTypeConfig' => [ - 'summary' => 'Changes the network type of the IPv4 address for a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '141880', - 'abilityTreeNodes' => [ - 'FEATUREslb12YEWG', - 'FEATUREslb4N3NIV', - ], - ], - 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the NLB instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['description' => 'Perform a dry run without actually making the request. Valid values are:'."\n" + ."\n" + .'- **true**: Perform only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the check, an error message specifying the issue is returned. If the request passes, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'- **false** (default): Check the request and perform the operation. If the request passes the check, a 2xx HTTP status code is returned, and the operation is performed.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'AddressType', + 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The new network type. Valid values:'."\n" - ."\n" - .'* **Internet**: The nodes of an Internet-facing NLB instance have public IP addresses. The DNS name of an Internet-facing NLB instance is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing NLB instances can route requests from clients over the Internet.'."\n" - .'* **Intranet**: The nodes of an internal-facing NLB instance have only private IP addresses. The DNS name of an internal-facing NLB instance is publicly resolvable to the private IP addresses of the nodes. Therefore, internal-facing NLB instances can route requests only from clients with access to the virtual private cloud (VPC) for the NLB instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Internet', - 'enum' => [], - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not specify this parameter, the value of **RequestId** is used.\\*\\*\\*\\* The value of **RequestId** is different for each request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'ZoneMappings', + 'name' => 'RegionId', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The mappings between zones and vSwitches. You can specify up to 10 zones.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The mapping between the zone and a vSwitch in the zone.'."\n", - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The ID of the vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone of an NLB instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-bp10ttov87felojcn****', - ], - 'ZoneId' => [ - 'description' => 'The zone ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou-a', - ], - 'AllocationId' => [ - 'title' => '公网ipId', - 'description' => 'The ID of the elastic IP address (EIP).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eip-bp1aedxso6u80u0qf****', - ], - 'EipType' => [ - 'description' => 'The type of the EIP. Valid values:'."\n" - ."\n" - .'* **Common**: an EIP'."\n" - .'* **Anycast**: an Anycast EIP'."\n" - ."\n" - .'> This parameter is required only if **AddressType** is set to **Internet**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Common', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'DeletionProtectionConfig', 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'description' => 'Perform a dry run without actually making the request. Valid values are:'."\n" - ."\n" - .'* **true**: Perform only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the check, an error message specifying the issue is returned. If the request passes, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): Check the request and perform the operation. If the request passes the check, a 2xx HTTP status code is returned, and the operation is performed.'."\n", - 'type' => 'boolean', + 'description' => 'The configuration of the deletion protection feature.', + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['description' => 'Specifies whether to enable the deletion protection feature. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false** (default)', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + 'Reason' => ['description' => 'The reason why the deletion protection feature is enabled or disabled. The reason must be 2 to 128 characters in length, can contain letters, digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.', 'type' => 'string', 'required' => false, 'example' => 'Instance is running', 'title' => ''], + ], 'required' => false, - 'example' => 'false', - 'default' => 'false', + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'ModificationProtectionConfig', 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", - 'type' => 'string', + 'description' => 'The configuration of the configuration read-only mode.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'Specifies whether to enable the configuration read-only mode. Valid values:'."\n" + ."\n" + .'- **NonProtection**: does not enable the configuration read-only mode. You cannot set the **Reason** parameter. If the **Reason** parameter is set, the value is cleared.'."\n" + ."\n" + .'- **ConsoleProtection**: enables the configuration read-only mode. You can set the **Reason** parameter.'."\n" + ."\n" + .'> If the parameter is set to **ConsoleProtection**, the configuration read-only mode is enabled. You cannot modify the configurations of the NLB instance in the NLB console. However, you can call API operations to modify the configurations of the NLB instance.', 'type' => 'string', 'required' => false, 'example' => 'ConsoleProtection', 'title' => ''], + 'Reason' => ['description' => 'The reason for enabling the configuration read-only mode. The reason must be 2 to 128 characters in length, can contain letters, digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.'."\n" + ."\n" + .'> This parameter takes effect only when **Status** is set to **ConsoleProtection**.', 'type' => 'string', 'required' => false, 'example' => 'Business protection period', 'title' => ''], + ], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'Tag', 'in' => 'formData', + 'allowEmptyValue' => true, + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', + 'description' => 'The tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the tag. The tag key can be up to 64 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`. The tag key can contain letters, digits, and the following special characters: \\_ . : / = + - @'."\n" + ."\n" + .'You can specify up to 20 tags in each call.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''], + 'Value' => ['description' => 'The value of the tag. The tag value can be up to 128 characters in length, cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`. The tag value can contain letters, digits, and the following special characters: \\_ . : / = + - @'."\n" + ."\n" + .'You can specify up to 20 tags in each call.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'cn-hangzhou', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'title' => 'response', - 'description' => 'Changes the network type of the IPv4 address of an NLB instance.'."\n", + 'description' => 'response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'LoadbalancerId' => ['description' => 'The ID of the NLB instance.', 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], + 'OrderId' => ['description' => 'The ID of the order for the NLB instance.', 'type' => 'integer', 'format' => 'int64', 'example' => '20230000', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DuplicatedParam.AllocationId', - 'errorMessage' => 'The param of AllocationId is duplicated.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], - [ - 'errorCode' => 'OperationDenied.EipAlreadyInBandwidthPackage', - 'errorMessage' => 'The operation is not allowed because of EipAlreadyInBandwidthPackage.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.%s', - 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', - ], - [ - 'errorCode' => 'OperationDenied.AddressTypeNotChanged', - 'errorMessage' => 'The operation is not allowed because of AddressTypeNotChanged.', - ], - [ - 'errorCode' => 'Mismatch.ZoneIdAndVswitchId', - 'errorMessage' => 'The ZoneIdAndVswitchId is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'TagInvokeError', - 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'Throttling.User', - 'errorMessage' => 'Request was denied due to api flow control.', - ], + ['errorCode' => 'OperationDenied.OnlyPayByTrafficSupported', 'errorMessage' => 'The operation is not allowed because of OnlyPayByTrafficSupported.', 'description' => ''], + ['errorCode' => 'OperationFailed.%s', 'errorMessage' => 'The operation failed because of %s.', 'description' => 'Failed to call the API operation due to %.'], + ['errorCode' => 'Mismatch.ZoneIdAndVswitchId', 'errorMessage' => 'The ZoneIdAndVswitchId is mismatched for %s and %s.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.%s', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], + ['errorCode' => 'OperationDenied.OnlyPostPaidSupported', 'errorMessage' => 'The operation is not allowed because of OnlyPostPaidSupported.', 'description' => ''], + ['errorCode' => 'OperationFailed.DuplicateZones.', 'errorMessage' => 'The operation failed because of Can not Specify duplicate zones.', 'description' => ''], + ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource of VSwitchIp is not enough.', 'description' => 'The specified virtual switch (vSwitch) IP resources are insufficient.'], + ['errorCode' => 'DuplicatedParam.AllocationId', 'errorMessage' => 'The param of AllocationId is duplicated.', 'description' => ''], + ['errorCode' => 'ResourceInConfiguring.VswitchId', 'errorMessage' => 'The specified resource of VswitchId is being configured, please try again later.', 'description' => 'The specified resource of VswitchId is being configured, please try again later.'], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], + ['errorCode' => 'OperationFailed.UnpaidBill', 'errorMessage' => 'The operation failed because of UnpaidBill.', 'description' => ''], + ['errorCode' => 'OperationDenied.ServiceLinkedRoleNotExist', 'errorMessage' => 'The operation is not allowed because of ServiceLinkedRoleNotExist.', 'description' => 'The operation is not allowed because of ServiceLinkedRoleNotExist.Please check if the necessary permissions are granted in RAM for the NLB.'], + ['errorCode' => 'ResourceAlreadyAssociated.AllocationId', 'errorMessage' => 'The specified resource of %s is already associated.', 'description' => ''], + ['errorCode' => 'OperationFailed.vSwitchNotSupportIpv6', 'errorMessage' => 'The operation failed because of vSwitchNotSupportIpv6.', 'description' => ''], + ['errorCode' => 'InvalidZones', 'errorMessage' => 'The current zone list is illegal.', 'description' => 'The Availability Zone used in Zone maping is illegal.'], + ['errorCode' => 'QuotaExceeded.QuotaInsufficient', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota is insufficient, currently used %s/%s. Please modify the quota size in the quota center.'], + ['errorCode' => 'ResourceInUse.IP', 'errorMessage' => 'The specified resource of IP is in use.', 'description' => ''], + ['errorCode' => 'OperationFailed.CreateOrderError', 'errorMessage' => 'Operation failed because CreateOrderError.', 'description' => 'The operation failed because the order creation failed.'], + ['errorCode' => 'OperationFailed.NotExist.ResourceGroup', 'errorMessage' => 'Operation failed because ResourceGroup not exist.', 'description' => 'The specified resource group does not exist.'], + ['errorCode' => 'IllegalParam.loadBalancerName', 'errorMessage' => 'Param loadBalancerName is illegal.', 'description' => 'The instance name is invalid. Check the parameters.'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => ''], + ['errorCode' => 'IllegalParam.DeletionProtectionConfig', 'errorMessage' => 'DeletionProtectionConfig reason is illegal.', 'description' => 'The reason parameter for changing the delete protection status is invalid.'], + ['errorCode' => 'IllegalParam.ModificationProtectionConfig', 'errorMessage' => 'ModificationProtectionConfig reason is illegal.', 'description' => 'ModificationProtectionConfig reason is illegal.'], + ['errorCode' => 'Throttling.User', 'errorMessage' => 'Request was denied due to api flow control.', 'description' => 'Request was denied due to api flow control.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'UnauthorizedZone', 'errorMessage' => 'The specified zone of %s is not authorized.', 'description' => ''], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ['errorCode' => 'UnauthorizedRegion', 'errorMessage' => 'The specified region of %s is not authorized.', 'description' => ''], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.AnycastInstance', - 'errorMessage' => 'The specified resource of AnycastInstance is not found.', - ], + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource of vSwitch is not found.', 'description' => 'The specified vSwitch resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.Vpc', 'errorMessage' => 'The specified resource of Vpc is not found.', 'description' => 'The specified VPC resource was not found. Please check the input parameters.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'UpdateLoadBalancerAddressTypeConfig', - 'description' => '* Make sure that an NLB instance is created. For more information, see [CreateLoadBalancer](~~445868~~).'."\n" + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"LoadbalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"OrderId\\": 20230000\\n}","type":"json"}]', + 'title' => 'CreateLoadBalancer', + 'description' => '- When you create an NLB instance, the service-linked role AliyunServiceRoleForNlb is automatically created and assigned to you.'."\n" ."\n" - .'* You can call the [GetLoadBalancerAttribute](~~445873~~) operation to query the **AddressType** value of an NLB instance after you change the network type.'."\n" + .'- **CreateLoadBalancer** is an asynchronous operation. After you send a request, the system returns an instance ID and runs the task in the background. You can call [GetLoadBalancerAttribute](~~445873~~) to query the status of an NLB instance.'."\n" ."\n" - .'* **UpdateLoadBalancerAddressTypeConfig** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetJobStatus](~~445904~~) operation to query the task status:'."\n" + .' - If an NLB instance is in the **Provisioning** state, the NLB instance is being created.'."\n" ."\n" - .' * If the task is in the **Succeeded** state, the network type of the IPv4 address of the NLB instance is changed.'."\n" - .' * If the task is in the **Processing** state, the network type of the IPv4 address of the NLB instance is being changed. In this case, you can perform only query operations.'."\n", - ], - 'UpdateLoadBalancerAttribute' => [ - 'summary' => 'Updates the attributes, including the name, of a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + .' - If an NLB instance is in the **Active** state, the NLB instance is created.', + 'changeSet' => [ + ['createdAt' => '2024-09-06T06:41:07.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-04T08:31:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-04T05:53:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-04T03:49:56.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-02-04T03:19:51.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-01-22T09:55:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-20T10:18:20.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-11-27T08:27:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-09T11:55:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-12T02:58:38.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-08T06:25:26.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:46.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-30T07:50:12.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-29T02:29:28.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-11-30T09:13:21.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-09-21T13:23:21.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-08-04T04:08:24.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-07-06T07:08:22.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-07-02T08:43:10.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-29T09:24:43.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-27T08:29:21.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T07:55:41.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:26.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateLoadBalancer'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nlb:AddressType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/*'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'EipAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], + ], + ], ], + ], + 'CreateSecurityPolicy' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1485,385 +1375,241 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '141877', - 'abilityTreeNodes' => [ - 'FEATUREslb12YEWG', - 'FEATUREslb4N3NIV', - ], + 'operationType' => 'create', + 'abilityTreeCode' => '141883', + 'abilityTreeNodes' => ['FEATUREslbAZREFH'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'TlsVersions', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The NLB instance ID.'."\n", - 'type' => 'string', + 'description' => 'The Transport Layer Security (TLS) versions supported by the security policy. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.'."\n", + 'type' => 'array', + 'items' => ['description' => 'A TLS version supported by the security policy. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**. All four versions can be specified for a security policy.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TLSv1.0', 'title' => ''], 'required' => true, - 'example' => 'nlb-wb7r6dlwetvt5j****', + 'maxItems' => 4, + 'minItems' => 1, + 'title' => '', ], ], [ - 'name' => 'LoadBalancerName', + 'name' => 'SecurityPolicyName', 'in' => 'formData', - 'schema' => [ - 'description' => 'The NLB instance name.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'NLB1', - ], + 'schema' => ['description' => 'The name of the security policy.'."\n" + ."\n" + .'It must be 1 to 200 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n", 'type' => 'string', 'required' => false, 'example' => 'TLSCipherPolicy', 'title' => ''], ], [ - 'name' => 'CrossZoneEnabled', + 'name' => 'ResourceGroupId', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to enable cross-zone load balancing for the NLB instance. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the resource group to which the security policy belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'Ciphers', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + 'description' => 'The cipher suites supported by the security policy. Valid values of this parameter vary based on the value of TlsVersions. You can specify up to 32 cipher suites.'."\n" ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + .'TLSv1.0 and TLSv1.1 support the following cipher suites:'."\n" ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\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" - .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" + .'TLSv1.2 supports the following cipher suites:'."\n" ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-beijing', - ], - ], - [ - 'name' => 'Cps', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The maximum number of new connections per second in each zone supported by the NLB instance (virtual IP address). Valid values: **1** to **1000000**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'response', - 'description' => 'Updates the attributes, including the name, of an NLB instance.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '7294679F-08DE-16D4-8E5D-1625685DC10B', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => 'aab74cfa-3bc4-48fc-80fc-0101da5a****', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IllegalParam.loadBalancerName', - 'errorMessage' => 'Param loadBalancerName is illegal.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7294679F-08DE-16D4-8E5D-1625685DC10B\\",\\n \\"JobId\\": \\"aab74cfa-3bc4-48fc-80fc-0101da5a****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7294679F-08DE-16D4-8E5D-1625685DC10B\\n aab74cfa-3bc4-48fc-80fc-0101da5a****\\n","errorExample":""}]', - 'title' => 'UpdateLoadBalancerAttribute', - ], - 'UpdateLoadBalancerZones' => [ - 'summary' => 'Modifies the zones and zone attributes of a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'LoadBalancerId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the NLB instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - ], - [ - 'name' => 'ZoneMappings', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The mappings between the zones and the vSwitches. You can specify up to 10 zones.'."\n", + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-SHA384**'."\n" + .'* **AES128-GCM-SHA256**'."\n" + .'* **AES256-GCM-SHA384**'."\n" + .'* **AES128-SHA256**'."\n" + .'* **AES256-SHA256**'."\n" + ."\n" + .'TLSv1.3 supports the following cipher suites:'."\n" + ."\n" + .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" + .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" + .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", 'type' => 'array', - 'items' => [ - 'description' => 'The mapping between the zone and the vSwitch. You can specify up to 10 zones.'."\n", - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The ID of the vSwitch in the zone. By default, each zone uses one vSwitch and one subnet.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-bp1rmcrwg3erh1fh8****', - ], - 'ZoneId' => [ - 'description' => 'The zone ID. You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou-a', - ], - 'PrivateIPv4Address' => [ - 'title' => '私网ip', - 'description' => 'The private IP address.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.36.16', - ], - 'AllocationId' => [ - 'title' => '公网ipId', - 'description' => 'The ID of the elastic IP address (EIP) or Anycast EIP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eip-bp1aedxso6u80u0qf****', - ], - 'EipType' => [ - 'description' => 'The type of the EIP. Valid values:'."\n" - ."\n" - .'* **Common**: an EIP'."\n" - .'* **Anycast**: an Anycast EIP'."\n" - ."\n" - .'> For regions that support Anycast EIPs, see [Limits](~~470000~~).This parameter is required if **AddressType** is set to **Internet**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Common', - ], - ], - 'required' => false, - ], + 'items' => ['description' => 'The cipher suites supported by the security policy. Valid values of this parameter vary based on the value of TlsVersions. You can specify up to 32 cipher suites.'."\n" + ."\n" + .'TLSv1.0 and TLSv1.1 support the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + ."\n" + .'TLSv1.2 supports the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-SHA384**'."\n" + .'* **AES128-GCM-SHA256**'."\n" + .'* **AES256-GCM-SHA384**'."\n" + .'* **AES128-SHA256**'."\n" + .'* **AES256-SHA256**'."\n" + ."\n" + .'TLSv1.3 supports the following cipher suites:'."\n" + ."\n" + .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" + .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" + .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", 'type' => 'string', 'required' => false, 'example' => 'ECDHE-ECDSA-AES128-SHA', 'title' => ''], 'required' => true, - 'maxItems' => 10, - 'minItems' => 1, + 'maxItems' => 32, + 'title' => '', ], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the request. If the request passes the validation, an HTTP 2xx status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'Tag', + 'in' => 'formData', + 'allowEmptyValue' => true, + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the tag. It must be 1 to 64 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`. It can contain letters, digits, underscores (\\_), periods (.), colons (:), forward slashes (/), equal signs (=), plus signs (+), minus signs (-), and at signs (@).'."\n" + ."\n" + .'You can add up to 20 tags for the security policy in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'KeyTest', 'title' => ''], + 'Value' => ['description' => 'The value of the tag. It must be 1 to 128 characters in length, cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`. It can contain letters, digits, underscores (\\_), periods (.), colons (:), forward slashes (/), equal signs (=), plus signs (+), minus signs (-), and at signs (@).'."\n" + ."\n" + .'You can add up to 20 tags for the security policy in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ValueTest', 'title' => ''], + ], + 'required' => false, + 'title' => '', + ], 'required' => false, - 'example' => 'cn-hangzhou', + 'maxItems' => 20, + 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => 'response'."\n", + 'title' => 'RpcResponse', + 'description' => 'RpcResponse', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', 'title' => ''], + 'SecurityPolicyId' => ['description' => 'The ID of the TLS security policy.'."\n", 'type' => 'string', 'example' => 'tls-bp14bb1e7dll4f****', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceInCreating.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', - ], - [ - 'errorCode' => 'OperationDenied.ProtectedPrivateIPv4AddressChanged', - 'errorMessage' => 'The operation is not allowed because of ProtectedPrivateIPv4AddressChanged.', - ], - [ - 'errorCode' => 'OperationFailed.vSwitchNotSupportIpv6', - 'errorMessage' => 'The operation failed because of vSwitchNotSupportIpv6.', - ], - [ - 'errorCode' => 'OperationDenied.%s', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.ZoneVSwitchChanged', - 'errorMessage' => 'The operation is not allowed because of ZoneVSwitchChanged.', - ], - [ - 'errorCode' => 'InvalidZones', - 'errorMessage' => 'The current zone list is illegal.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'ResourceNotEnough.VSwitchIp', - 'errorMessage' => 'The specified resource of VSwitchIp is not enough.', - ], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'UnauthorizedZone', - 'errorMessage' => 'The specified zone of %s is not authorized.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource of vSwitch is not found.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicyId\\": \\"tls-bp14bb1e7dll4f****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n D7A8875F-373A-5F48-8484-25B07A61F2AF\\n tls-bp14bb1e7dll4f****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'CreateSecurityPolicy', + 'summary' => 'Creates a custom security policy for a TCP/SSL listener.', + 'changeSet' => [ + ['createdAt' => '2024-01-22T09:55:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:46.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-30T07:50:13.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-29T02:29:27.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-08-02T06:52:05.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:17.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateSecurityPolicy'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'UpdateLoadBalancerZones', - 'description' => 'When you call this operation, make sure that you specify all the zones of the NLB instance, including the existing zones and new zones. If you do not specify the existing zones, the existing zones are removed.'."\n" - ."\n" - .'Prerequisites'."\n" - ."\n" - .'* An NLB instance is created. For more information, see [CreateLoadBalancer](~~445868~~).'."\n" - ."\n" - .'* You can call the [GetLoadBalancerAttribute](~~445873~~) operation to query the zones and zone attributes of an NLB instance.'."\n" - ."\n" - .'* **UpdateLoadBalancerZones** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetJobStatus](~~445904~~) operation query to query the status of a task:'."\n" - ."\n" - .' * If the task is in the **Succeeded** state, the zones and zone attributes are modified.'."\n" - .' * If the task is in the **Processing** state, the zones and zone attributes are being modified. In this case, you can perform only query operations.'."\n", ], - 'EnableLoadBalancerIpv6Internet' => [ - 'summary' => 'Changes the network type of the IPv6 address of a dual-stack Network Load Balancer (NLB) instance from internal-facing to Internet-facing.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateServerGroup' => [ + 'summary' => 'Creates a server group in a specified region.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1872,373 +1618,517 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '141881', + 'abilityTreeNodes' => ['FEATUREslbVDXH6N'], ], 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'ServerGroupType', 'in' => 'formData', 'schema' => [ - 'description' => 'The NLB instance ID.'."\n", + 'description' => 'The type of server group. Valid values:'."\n" + ."\n" + .'- **Instance** (default): a server group of the instance type. You can add Elastic Compute Service (ECS) instances, elastic network interfaces (ENIs), and elastic container instances (ECIs) to this type of server group.'."\n" + ."\n" + .'- **Ip**: a server group of the IP address type. You can add backend servers to this type of server group by specifying their IP addresses.', 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', + 'required' => false, + 'default' => 'Instance', + 'enum' => [], + 'title' => '', + 'example' => 'Instance', ], ], [ - 'name' => 'DryRun', + 'name' => 'ServerGroupName', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the server group.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length, start with a letter or a Chinese character, and can contain digits, periods (.), underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'NLB_ServerGroup'], + ], + [ + 'name' => 'AddressIPVersion', 'in' => 'formData', 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + 'description' => 'The protocol version. Valid values:'."\n" + ."\n" + .'- **ipv4** (default): IPv4.'."\n" ."\n" - .'* **true**: prechecks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', + .'- **DualStack**: dual-stack.', + 'type' => 'string', 'required' => false, - 'example' => 'false', + 'default' => 'Ipv4', + 'enum' => [], + 'example' => 'ipv4', + 'title' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'IpVersionAffinityMode', 'in' => 'formData', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'Traffic scheduling policy for dual-stack NLB instances:'."\n" + ."\n" + .'- NonAffinity (default): Forwards requests to healthy backend servers based on the configured scheduling algorithm, regardless of the source IP protocol version (IPv4 or IPv6).'."\n" ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" + .'- Affinity: Forwards requests based on source IP protocol affinity. IPv4 requests are forwarded exclusively to IPv4 backend servers, and IPv6 requests are forwarded exclusively to IPv6 backend servers.'."\n" ."\n" - .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", + .'> This parameter applies only when the **AddressIPVersion** is set to **DualStack**.', 'type' => 'string', + 'title' => '', + 'enum' => ['NonAffinity', 'Affinity'], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'example' => 'Affinity', ], ], [ - 'name' => 'RegionId', + 'name' => 'Protocol', 'in' => 'formData', 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" + 'description' => 'The protocol used to forward requests to the backend servers. Valid values:'."\n" + ."\n" + .'- **TCP** (default)'."\n" + ."\n" + .'- **UDP**'."\n" + ."\n" + .'- **TCP\\_UDP**'."\n" ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", + .'> * If you set the value to **UDP**, the server group can be associated only with UDP listeners.'."\n" + .'>'."\n" + .'> * If you set the value to **TCP** and set **PreserveClientIpEnabled** to **true**, the server group can be associated only with TCP listeners.'."\n" + .'>'."\n" + .'> * If you set the value to **TCP** and set **PreserveClientIpEnabled** to **false**, the server group can be associated with TCP and TCP over Secure Sockets Layer (SSL) listeners.'."\n" + .'>'."\n" + .'> * If you set the value to **TCP\\_UDP**, the server group can be associated with TCP and UDP listeners.', 'type' => 'string', 'required' => false, - 'example' => 'cn-hangzhou', + 'default' => 'Tcp', + 'enum' => [], + 'title' => '', + 'example' => 'TCP', ], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'response', - 'description' => 'response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - ], - ], + [ + 'name' => 'VpcId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the virtual private cloud (VPC) to which the server group belongs.'."\n" + ."\n" + .'> If **ServerGroupType** is set to **Instance**, only servers in this VPC can be added to the server group.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'vpc-bp15zckdt37pq72zv****'], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationDenied.NonDualStackInstance', - 'errorMessage' => 'The operation is not allowed because of NonDualStackInstance.', - ], - [ - 'errorCode' => 'ResourceInCreating.%s', - 'errorMessage' => 'The specified resource of %s is creating, please try again later.', - ], - [ - 'errorCode' => 'ResourceInCreating.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', - ], + [ + 'name' => 'AnyPortEnabled', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to enable port forwarding for all ports. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false** (default)', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + [ + 'name' => 'ConnectionDrainEnabled', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to enable connection draining. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false** (default)', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => 'false'], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ipv6Gateway', - 'errorMessage' => 'The specified resource of Ipv6Gateway is not found.', - ], + 'name' => 'ConnectionDrainTimeout', + 'in' => 'formData', + 'schema' => ['description' => 'The timeout period of connection draining. Unit: seconds.'."\n" + .'Valid values: **0** to **900**.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '3600', 'minimum' => '0', 'example' => '10', 'default' => '10', 'title' => '', 'required' => false], ], - ], - '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' => 'EnableLoadBalancerIpv6Internet', - ], - 'DisableLoadBalancerIpv6Internet' => [ - 'summary' => 'Changes the public IPv6 address of a dual-stack Network Load Balancer (NLB) instance to a private IPv6 address.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'Scheduler', + 'in' => 'formData', + 'schema' => ['description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'- **Wrr** (default): weighted round-robin. Backend servers with higher weights receive more requests than backend servers with lower weights.'."\n" + ."\n" + .'- **Wlc**: weighted least connections. Requests are distributed based on the weight and the number of connections of each backend server. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n" + ."\n" + .'- **rr**: round-robin. Requests are distributed to backend servers in sequence.'."\n" + ."\n" + .'- **sch**: source IP hash. Requests from the same source IP address are distributed to the same backend server.'."\n" + ."\n" + .'- **tch**: four-tuple hash. Requests are distributed to backend servers based on a hash of the four-tuple: source IP address, destination IP address, source port, and destination port. This ensures that requests from the same flow are forwarded to the same backend server.'."\n" + ."\n" + .'- **qch**: QUIC ID hash. Requests that have the same QUIC ID are hashed to the same backend server.'."\n" + ."\n" + .'> You can set the value to qch only when the backend protocol is UDP.', 'type' => 'string', 'required' => false, 'default' => 'wrr', 'title' => '', 'example' => 'Wrr'], ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'PreserveClientIpEnabled', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the NLB instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['description' => 'Specifies whether to preserve client IP addresses. Valid values:'."\n" + ."\n" + .'- **true** (default)'."\n" + ."\n" + .'- **false**'."\n" + ."\n" + .'> If **Protocol** is set to **TCP** and this parameter is set to **true**, the server group cannot be associated with TCP over SSL listeners.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'HealthCheckConfig', 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', + 'title' => '', + 'description' => 'The health check settings.', + 'type' => 'object', + 'properties' => [ + 'HealthCheckEnabled' => ['description' => 'Specifies whether to enable health checks. Valid values:'."\n" + ."\n" + .'- **true** (default)'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'], + 'HealthCheckType' => ['description' => 'The health check protocol. Valid values:'."\n" + ."\n" + .'- **TCP**'."\n" + ."\n" + .'- **HTTP**'."\n" + ."\n" + .'- **UDP**', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'TCP'], + 'HealthCheckConnectPort' => ['description' => 'The port that is used for health checks on backend servers.'."\n" + ."\n" + .'Valid values: **0** to **65535**.'."\n" + ."\n" + .'Default value: **0**. This value indicates that the port of a backend server is used for health checks.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '0'], + 'HealthyThreshold' => ['description' => 'The number of consecutive successful health checks required to change the health status of a backend server from **failed** to **successful**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'Default value: **2**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '2'], + 'UnhealthyThreshold' => ['description' => 'The number of consecutive failed health checks required to change the health status of a backend server from **successful** to **failed**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'Default value: **2**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '2'], + 'HealthCheckConnectTimeout' => ['description' => 'The maximum timeout period of a health check response. Unit: seconds.'."\n" + .'Valid values: **1** to **300**.'."\n" + .'Default value: **5**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '5'], + 'HealthCheckInterval' => ['description' => 'The interval between two consecutive health checks. Unit: seconds. Default value: **5**.'."\n" + ."\n" + .'- If **HealthCheckType** is set to **TCP** or **HTTP**, the value must be in the range of **1** to **50**.'."\n" + ."\n" + .'- If **HealthCheckType** is set to **UDP**, the value must be in the range of **1** to **300**. The interval must be greater than or equal to the response timeout period. This ensures that UDP probes are not marked as timed out.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '5'], + 'HealthCheckDomain' => ['description' => 'The domain name that is used for health checks. Valid values:'."\n" + ."\n" + .'- **$SERVER\\_IP**: the private IP address of a backend server.'."\n" + ."\n" + .'- **domain**: a specific domain name. The domain name must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), and periods (.).'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '$SERVER_IP'], + 'HealthCheckUrl' => ['description' => 'The path that is used for health checks.'."\n" + ."\n" + .'The path must be 1 to 80 characters in length. It can contain letters, digits, and the following special characters: `-/.%?#&`. It must start with a forward slash (/).'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '/test/index.html'], + 'HealthCheckHttpCode' => [ + 'title' => '', + 'description' => 'The HTTP status codes that indicate a healthy backend server. You can specify multiple HTTP status codes and separate them with commas (,).'."\n" + .'Valid values: **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', + 'type' => 'array', + 'items' => ['description' => 'The HTTP status codes that indicate a healthy backend server. You can specify multiple HTTP status codes and separate them with commas (,).'."\n" + .'Valid values: **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', 'type' => 'string', 'required' => false, 'example' => 'http_2xx', 'title' => ''], + 'required' => false, + 'example' => '', + ], + 'HttpCheckMethod' => [ + 'description' => 'The HTTP method that is used for health checks. Valid values: **GET** (default) and **HEAD**.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', + 'type' => 'string', + 'enum' => [], + 'required' => false, + 'example' => 'GET', + 'title' => '', + ], + 'HealthCheckReq' => ['description' => 'The request string for UDP health checks. The string can contain only letters and digits. The string must be at most 512 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'hello', 'title' => ''], + 'HealthCheckExp' => ['description' => 'The response string for UDP health checks. The string can contain only letters and digits. The string must be at most 512 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'ok', 'title' => ''], + 'HealthCheckHttpVersion' => [ + 'description' => 'The version of the HTTP protocol. Valid values: **HTTP1.0** (default) and **HTTP1.1**.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', + 'type' => 'string', + 'example' => 'HTTP1.0', + 'enum' => ['HTTP1.0', 'HTTP1.1'], + 'required' => false, + 'title' => '', + ], + ], 'required' => false, - 'example' => 'false', + 'example' => '', ], ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the resource group to which the server group belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run. The system checks the required parameters, request format, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'- **false** (default): sends the request. If the request passes the check, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'default' => 'false', 'example' => 'true', 'title' => ''], + ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'A client-generated token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'Make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', + 'schema' => ['description' => 'The ID of the region where the Network Load Balancer (NLB) instance is deployed.'."\n" + ."\n" + .'You can call the [](t2269514.xdita#)operation to obtain region IDs.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'Tag', + 'in' => 'formData', + 'allowEmptyValue' => true, + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', + 'description' => 'The tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the tag. The key can be up to 64 characters in length. It cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`. It can contain letters, digits, underscores (\\_), periods (.), colons (:), forward slashes (/), equal signs (=), plus signs (+), hyphens (-), and at signs (@).'."\n" + ."\n" + .'You can add up to 20 tags in a single call.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''], + 'Value' => ['description' => 'The value of the tag. The value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`. It can contain letters, digits, underscores (\\_), periods (.), colons (:), forward slashes (/), equal signs (=), plus signs (+), hyphens (-), and at signs (@).'."\n" + ."\n" + .'You can add up to 20 tags in a single call.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'cn-hangzhou', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => 'response'."\n", + 'title' => 'RpcResponse', + 'description' => 'A server group is created.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'ServerGroupId' => ['description' => 'The ID of the server group.', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.Ipv6IntranetInstance', - 'errorMessage' => 'The operation is not allowed because of Ipv6IntranetInstance.', - ], - [ - 'errorCode' => 'OperationDenied.NonDualStackInstance', - 'errorMessage' => 'The operation is not allowed because of NonDualStackInstance.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], + ['errorCode' => 'IllegalParam.AnyPortServerGroupConflictWithHealthCheckConfig', 'errorMessage' => 'The param of AnyPortServerGroupConflictWithHealthCheckConfig is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParamFormat.ParseCreateRsPoolRequestFailed', 'errorMessage' => 'The param format of CreateRsPoolRequest is illegal.', 'description' => 'The param format of CreateRsPoolRequest is illegal.'], + ['errorCode' => 'IllegalParam.PreserveClientIpSwitch', 'errorMessage' => 'The param of PreserveClientIpSwitch is illegal.', 'description' => ''], + ['errorCode' => 'OperationDenied.VpcNotSupportIpv6', 'errorMessage' => 'The operation is not allowed because of VpcNotSupportIpv6.', 'description' => 'The VPC you are using does not support Ipv6.'], + ['errorCode' => 'IllegalParam.healthCheckDomain', 'errorMessage' => 'The parameter of healthCheckConfig.healthCheckDomain is illegal.', 'description' => 'The healthCheckDomain in the health check configuration is invalid. Check the input parameters.'], + ['errorCode' => 'OperationDenied.UidNotAllowQuic29', 'errorMessage' => 'The operation is not allowed because of uid not allow quic29 version.', 'description' => ''], + ['errorCode' => 'IlleagalParam.healthCheckUrl', 'errorMessage' => 'The parameter of healthCheckUrl in healthCheckConfig is illegal.', 'description' => 'The URL of the health check used in the health check setting is invalid.'], + ['errorCode' => 'IllegalParam.ServerGroupName', 'errorMessage' => 'The param of ServerGroupName is illegal.', 'description' => ''], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => ''], + ['errorCode' => 'IllegalParam.ConnectionDrainTimeout', 'errorMessage' => 'The param of ConnectionDrainTimeout is illegal.', 'description' => 'The parameter ConnectionDrainTimeout is invalid. Check the input parameters.'], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.QuotaInsufficient', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota is insufficient, currently used %s/%s. Please modify the quota size in the quota center.'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], + [ + ['errorCode' => 'ResourceNotFound.Vpc', 'errorMessage' => 'The specified resource of Vpc is not found.', 'description' => 'The specified VPC resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.ResourceGroup', 'errorMessage' => 'The param of resourceGroup not existed.', 'description' => 'The resource group does not exist.'], + ], + ], + 'title' => 'CreateServerGroup', + 'description' => '**CreateServerGroup** is an asynchronous operation. After a request is sent, the system returns a request ID. However, the server group is still being created in the background. You can call the [](t2269512.xdita#)operation to query the creation status of a server group.'."\n" + ."\n" + .'- If a server group is in the **Succeeded** state, it is created.'."\n" + ."\n" + .'- If a server group is in the **Processing** state, it is being created. In this state, you can only perform query operations.', + 'changeSet' => [ + ['createdAt' => '2025-04-09T11:20:39.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-06-25T08:31:02.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-02-29T07:14:37.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-22T08:02:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-04T05:53:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-24T07:05:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-30T04:13:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-07T05:50:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-27T09:30:42.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-09-26T07:58:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-18T01:54:37.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-09-05T02:00:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-30T07:50:13.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-29T02:29:28.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-12-09T03:33:32.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-09-20T16:17:11.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-29T09:24:43.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-27T08:29:21.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T07:55:41.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:17.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateServerGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/*'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'DisableLoadBalancerIpv6Internet', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","type":"json"}]', ], - 'LoadBalancerLeaveSecurityGroup' => [ - 'summary' => 'Disassociates a Network Load Balancer (NLB) instance from a security group.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteListener' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'SecurityGroupIds', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The ID of the security group to be disassociated.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the security group to be disassociated.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sg-bp1fg655nh68xyz9****', - ], - 'required' => true, - 'maxItems' => 10, - ], - ], - [ - 'name' => 'LoadBalancerId', + 'name' => 'ListenerId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The NLB instance ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['title' => '', 'description' => 'The listener ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn908w4nbw****@80'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: checks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => 'response'."\n", + 'title' => 'RpcResponse', + 'description' => 'RpcResponse', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], + ['errorCode' => 'IncorrectStatus.listener', 'errorMessage' => 'The status of listener [%s] is incorrect.', 'description' => 'The current operation cannot be performed on the listener as its status is unavailable. Please check if the listener is currently undergoing any other operations.'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.loadbalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => 'The specific resource is conflict.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.SecurityGroup', - 'errorMessage' => 'Authentication is failed for SecurityGroup.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.%s', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'DeleteListener', + 'summary' => 'Deletes a Network Load Balancer (NLB) listener.', + 'changeSet' => [ + ['createdAt' => '2024-04-02T06:33:42.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-22T08:02:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-30T04:13:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-12T02:58:38.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-26T03:48:31.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:00.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteListener'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'LoadBalancerLeaveSecurityGroup', - 'description' => 'LoadBalancerLeaveSecurityGroup is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetJobStatus](~~445904~~) operation to query the status of a task.'."\n" - ."\n" - .'* If the task is in the **Succeeded** state, the security group is disassociated.'."\n" - .'* If the task is in the **Processing** state, the security group is being disassociated. In this case, you can perform only query operations.'."\n", ], - 'LoadBalancerJoinSecurityGroup' => [ - 'summary' => 'Associates a security group with a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteLoadBalancer' => [ + 'summary' => 'Deletes a Network Load Balancer (NLB) instance.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2247,187 +2137,106 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslbC68LB1'], ], 'parameters' => [ - [ - 'name' => 'SecurityGroupIds', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The security group ID of the instance.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The security group ID of the instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sg-bp1fg655nh68xyz9****', - ], - 'required' => true, - 'maxItems' => 10, - ], - ], [ 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the NLB instance which you want to add to a security group.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['description' => 'The ID of the NLB instance.', 'type' => 'string', 'required' => true, 'example' => 'nlb-wb7r6dlwetvt5j****', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'- **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not set this parameter, the value of **RequestId** is used.\\*\\*\\*\\* The value of **RequestId** is different for each request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'response', - 'description' => 'Associates the NLB instance with a security group.'."\n", + 'description' => 'response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'QuotaExceeded.QuotaInsufficient', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'Conflict.SecurityGroup', - 'errorMessage' => 'The SecurityGroup [%s] is conflict.', - ], - [ - 'errorCode' => 'Mismatch.%s', - 'errorMessage' => 'The %s is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'OperationDenied.%s', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'TagInvokeError', - 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'Mismatch.vpc', - 'errorMessage' => 'The Vpc is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'ResourceInCreating.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], + ['errorCode' => 'OperationDenied.%s', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => 'The specified resource of loadbalancer is being configured, please try again later.'], + ['errorCode' => 'ResourceInCreating.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', 'description' => 'The specified resource of loadbalancer is creating, please try again later.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], + ['errorCode' => 'OperationDenied.DeletionProtectionEnabled', 'errorMessage' => 'The operation is not allowed because of DeletionProtectionEnabled.', 'description' => 'The operation is not allowed because of DeletionProtectionEnabled.'], + ['errorCode' => 'IncorrectStatus.loadbalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => 'The specific resource is conflict.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - [ - 'errorCode' => 'Forbidden.SecurityGroup', - 'errorMessage' => 'Authentication is failed for SecurityGroup.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.SecurityGroup', - 'errorMessage' => 'The specified resource of SecurityGroup is not found.', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ], + ], + 'title' => 'DeleteLoadBalancer', + 'changeSet' => [ + ['createdAt' => '2023-10-30T04:13:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:27.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-26T03:48:31.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:00.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteLoadBalancer'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'LoadBalancerJoinSecurityGroup', - 'description' => '* Make sure that you have created a security group. For more information about how to create a security group, see [CreateSecurityGroup](~~25553~~).'."\n" - ."\n" - .'* An NLB instance can be associated with up to four security groups.'."\n" - ."\n" - .'* You can query the security groups that are associated with an NLB instance by calling the [GetLoadBalancerAttribute](~~214362~~) operation.'."\n" - ."\n" - .'* LoadBalancerJoinSecurityGroup is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetJobStatus](~~445904~~) operation to query the status of a task.'."\n" - ."\n" - .' * If the task is in the **Succeeded** state, the security group is associated.'."\n" - .' * If the task is in the **Processing** state, the security group is being associated. In this case, you can perform only query operations.'."\n", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","type":"json"}]', ], - 'UpdateLoadBalancerProtection' => [ - 'summary' => 'Enables or disables the deletion protection feature.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteSecurityPolicy' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2435,194 +2244,197 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'DeletionProtectionEnabled', + 'name' => 'SecurityPolicyId', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to enable deletion protection. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the TLS security policy.'."\n", 'type' => 'string', 'required' => true, 'example' => 'tls-bp14bb1e7dll4f****', 'title' => ''], ], [ - 'name' => 'DeletionProtectionReason', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'The reason why deletion protection is enabled. The reason must be 2 to 128 characters in length, can contain letters, digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.'."\n" - ."\n" - .'> This parameter takes effect only when **DeletionProtectionEnabled** is set to **true**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Instance_Is_Bound_By_Acceleration_Instance', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'ModificationProtectionStatus', + 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to enable the configuration read-only mode. Valid values:'."\n" - ."\n" - .'* **NonProtection**: disables the configuration read-only mode. In this case, you cannot set the **ModificationProtectionReason** parameter. If you specify **ModificationProtectionReason**, the value is cleared.'."\n" - .'* **ConsoleProtection**: enables the configuration read-only mode. In this case, you can specify **ModificationProtectionReason**.'."\n" - ."\n" - .'> If you set this parameter to **ConsoleProtection**, you cannot use the NLB console to modify configurations of the NLB instance. However, you can call API operations to modify the instance configurations.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ConsoleProtection', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'ModificationProtectionReason', + 'name' => 'RegionId', 'in' => 'formData', + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The reason why the configuration read-only mode is enabled. The reason must be 2 to 128 characters in length, can contain letters, digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.'."\n" - ."\n" - .'> This parameter takes effect only when **Status** is set to **ConsoleProtection**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ConsoleProtection', + 'title' => 'RpcResponse', + 'description' => 'RpcResponse', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', 'title' => ''], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ResourceInUse.SecurityPolicy', 'errorMessage' => 'The specified resource of SecurityPolicy is in use.', 'description' => 'The SecurityPolicy is changing, please try again later.'], + ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], [ - 'name' => 'LoadBalancerId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the NLB instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', + ['errorCode' => 'ResourceNotFound.securitypolicy', 'errorMessage' => 'The specified resource of securitypolicy is not found.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n D7A8875F-373A-5F48-8484-25B07A61F2AF\\n","errorExample":""}]', + 'title' => 'DeleteSecurityPolicy', + 'summary' => 'Deletes a custom TLS security policy from a Network Load Balancer (NLB) instance.', + 'changeSet' => [ + ['createdAt' => '2024-02-29T07:14:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-22T09:55:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-02T06:52:05.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:26.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteSecurityPolicy'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], ], ], + ], + ], + 'DeleteServerGroup' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'ServerGroupId', + 'in' => 'formData', + 'schema' => ['title' => '', 'description' => 'The server group ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****'], + ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends a request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => 'Modifies deletion protection settings.'."\n", + 'title' => 'RpcResponse', + 'description' => 'RpcResponse', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceInConfiguring.%s', - 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IdempotenceSignatureMismatch', - 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IllegalParam.deletionProtectionReason', - 'errorMessage' => 'The param of deletionProtectionReason is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.modificationProtectionReason', - 'errorMessage' => 'The param of modificationProtectionReason is illegal.', - ], - [ - 'errorCode' => 'ResourceInCreating.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', - ], + ['errorCode' => 'ResourceInUse.ServerGroup', 'errorMessage' => 'The specified resource of ServerGroup is in use.', 'description' => 'The specified server group resource is being used. Please try again later.'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.serverGroup', 'errorMessage' => 'The status of servergroup [%s] is incorrect.', 'description' => 'The current operation cannot be performed on the server group as its status is unavailable. Please check if the server group is currently undergoing any other operations.'."\n"], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => 'The specific resource is conflict.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => 'The specified resource of serverGroup is not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'DeleteServerGroup', + 'summary' => 'Deletes a Network Load Balancer (NLB) server group.', + 'description' => 'You can delete server groups that are not associated with listeners.', + 'changeSet' => [ + ['createdAt' => '2024-01-24T07:05:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-02T06:52:05.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:17.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteServerGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', - 'title' => 'UpdateLoadBalancerProtection', - 'description' => '> You can call the [GetLoadBalancerAttribute](~~445873~~) operation to query the details about deletion protection and the configuration read-only mode.'."\n", ], - 'ListLoadBalancers' => [ - 'summary' => 'Queries the basic information about Network Load Balancer (NLB) instances.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeHdMonitorRegionConfig' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2630,614 +2442,212 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '141871', - 'abilityTreeNodes' => [ - 'FEATUREslb12YEWG', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'LoadBalancerType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '负载均衡类型', - 'description' => 'The type of the Server Load Balancer (SLB) instances. Set the value to **network**, which specifies NLB.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'network', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the region where the resources are deployed.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], - [ - 'name' => 'ZoneId', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '负载均衡拥有的可用区', - 'description' => 'The ID of the zone. You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou-a', + 'title' => 'RpcResponse', + 'description' => 'RpcResponse', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to obtain the region ID.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'LogProject' => ['description' => 'The name of the Log Service project.'."\n", 'type' => 'string', 'example' => 'hdmonitor-cn-hangzhou-223794579283657556'."\n", 'title' => ''], + 'MetricStore' => ['description' => 'The name of the Metricstore in Simple Log Service.', 'type' => 'string', 'example' => 'hdmonitor-cn-hangzhou-metricStore-1', 'title' => ''], + ], ], ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], [ - 'name' => 'VpcIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '专有网络唯一标识', - 'description' => 'The IDs of the virtual private clouds (VPCs) where the NLB instances are deployed. You can specify up to 10 VPC IDs in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of a VPC where the NLB instance is deployed. You can specify up to 10 VPC IDs in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp1b49rqrybk45nio****', + ['errorCode' => 'DescribeHDMonitor.Fail', 'errorMessage' => 'DescribeHDMonitor Fail.', 'description' => 'Failed to query second-level monitoring configuration.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LogProject\\": \\"hdmonitor-cn-hangzhou-223794579283657556\\\\n\\",\\n \\"MetricStore\\": \\"hdmonitor-cn-hangzhou-metricStore-1\\"\\n}","type":"json"}]', + 'title' => 'DescribeHdMonitorRegionConfig', + 'summary' => 'Queries the storage configurations of fine-grained monitoring.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeHdMonitorRegionConfig'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:DescribeHdMonitorRegionConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'All Resource', 'arn' => '*'], ], - 'required' => false, - 'maxItems' => 10, ], ], + ], + ], + 'DescribeRegions' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'AddressType', - 'in' => 'query', - 'schema' => [ - 'title' => '地址类型:取值 internet,intranet', - 'description' => 'The type of IPv4 address used by the NLB instance. Valid values:'."\n" - ."\n" - .'* **Internet**: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. The NLB instance can be accessed over the Internet.'."\n" - .'* **Intranet**: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. The NLB instance can be accessed over the VPC where the NLB instance is deployed.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Internet', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'AddressIpVersion', + 'name' => 'ServiceCode', 'in' => 'query', - 'schema' => [ - 'title' => '协议类型', - 'description' => 'The IP version of the NLB instance. Valid values:'."\n" - ."\n" - .'* **ipv4**: IPv4'."\n" - .'* **DualStack**: dual-stack'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv4', - ], + 'schema' => ['description' => 'The service code. Set the value to **nlb**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nlb', 'default' => 'nlb', 'title' => ''], ], [ - 'name' => 'Ipv6AddressType', + 'name' => 'AcceptLanguage', 'in' => 'query', - 'schema' => [ - 'title' => '协议类型', - 'description' => 'The type of IPv6 address used by the NLB instance. Valid values:'."\n" - ."\n" - .'* **Internet**: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. The NLB instance can be accessed over the Internet.'."\n" - .'* **Intranet**: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. The NLB instance can be accessed over the VPC where the NLB instance is deployed.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Internet', - ], + 'schema' => ['description' => 'The supported natural language. Valid values:'."\n" + ."\n" + .'* **zh-CN**: Chinese'."\n" + .'* **en-US** (default): English'."\n" + .'* **ja**: Japanese'."\n", 'type' => 'string', 'required' => false, 'example' => 'en-US', 'title' => ''], ], [ - 'name' => 'DNSName', - 'in' => 'query', - 'schema' => [ - 'title' => 'dns 地址', - 'description' => 'The domain name of the NLB instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com', - ], + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], - [ - 'name' => 'LoadBalancerStatus', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '实例状态', - 'description' => 'The status of the NLB instance. Valid values:'."\n" - ."\n" - .'* **Inactive**: The NLB instance is disabled. Listeners of an NLB instance in the Inactive state do not forward traffic.'."\n" - .'* **Active**: The NLB instance is running.'."\n" - .'* **Provisioning**: The NLB instance is being created.'."\n" - .'* **Configuring**: The NLB instance is being modified.'."\n" - .'* **Deleting**: The NLB instance is being deleted.'."\n" - .'* **Deleted**: The NLB instance is deleted.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Active', + 'title' => 'RpcResponse', + 'description' => 'RpcResponse', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'Regions' => [ + 'description' => 'A list of regions.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The list of regions.'."\n", + 'type' => 'object', + 'properties' => [ + 'LocalName' => ['description' => 'The name of the region.'."\n", 'type' => 'string', 'example' => 'us-east-1', 'title' => ''], + 'RegionEndpoint' => ['description' => 'The endpoint of the region service.'."\n", 'type' => 'string', 'example' => 'nlb.cn-hangzhou.aliyuncs.com', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', + ], + ], ], ], - [ - 'name' => 'LoadBalancerBusinessStatus', - 'in' => 'query', - 'schema' => [ - 'title' => '实例业务状态', - 'description' => 'The business status of the NLB instance. Valid values:'."\n" - ."\n" - .'* **Abnormal**: The NLB instance is not working as expected.'."\n" - .'* **Normal**: The NLB instance is working as expected.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Normal', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], ], - [ - 'name' => 'LoadBalancerNames', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '负载均衡实例名称', - 'description' => 'The names of the NLB instances. You can specify up to 20 names in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The name of the NLB instance. You can specify up to 20 names in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'NLB1', - ], - 'required' => false, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'title' => '企业资源组标识', - 'description' => 'The ID of the resource group to which the instance belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"us-east-1\\",\\n \\"RegionEndpoint\\": \\"nlb.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', + 'title' => 'DescribeRegions', + 'summary' => 'Queries regions that support Network Load Balancer (NLB) instances.', + 'changeSet' => [ + ['createdAt' => '2024-01-22T09:55:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-26T03:48:31.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:17.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRegions'], ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [], + ], + 'DescribeZones' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'LoadBalancerIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '实例列表', - 'description' => 'The NLB instance IDs. You can specify up to 20 IDs in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The NLB instance ID. You can specify up to 20 IDs in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'required' => false, - 'maxItems' => 20, - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'Tag', + 'name' => 'ServiceCode', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => 'The tags of the NLB instance.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag of the NLB instance.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. You can specify up to 20 tags. The tag key cannot be an empty string.'."\n" - ."\n" - .'It must be 1 to 64 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'KeyTest', - ], - 'Value' => [ - 'description' => 'The value of the tag. You can specify up to 20 tags. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ValueTest', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - 'minItems' => 1, - ], + 'schema' => ['description' => 'The service code. Set the value to **nlb**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nlb', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token used to specify a particular page of results. Valid values:'."\n" - ."\n" - .'* Leave this parameter empty for the first query or the only query.'."\n" - .'* Set this parameter to the value of NextToken obtained from the previous query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The ID of the region to which the zone belongs. You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'AcceptLanguage', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return in each call. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => 'The supported natural language. Valid values:'."\n" + ."\n" + .'* **zh-CN**: Chinese'."\n" + .'* **en-US** (default): English'."\n" + .'* **ja**: Japanese'."\n", 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => 'response'."\n", + 'title' => 'RpcResponse', + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'LoadBalancers' => [ - 'description' => 'The NLB instances.'."\n", + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'Zones' => [ + 'description' => 'A list of zones.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The NLB instances.'."\n", + 'description' => 'The zone.'."\n", 'type' => 'object', 'properties' => [ - 'RegionId' => [ - 'title' => '业务location', - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'LoadBalancerId' => [ - 'description' => 'The ID of the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'LoadBalancerName' => [ - 'description' => 'The name of the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'NLB1', - ], - 'LoadBalancerType' => [ - 'description' => 'The type of the SLB instance. Only **Network** is returned, which indicates NLB.'."\n", - 'type' => 'string', - 'example' => 'Network', - ], - 'AddressType' => [ - 'description' => 'The type of IPv4 address used by the NLB instance. Valid values:'."\n" - ."\n" - .'* **Internet**: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.'."\n" - .'* **Intranet**: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. Therefore, the NLB instance can be accessed over the VPC where the NLB instance is deployed.'."\n", - 'type' => 'string', - 'example' => 'Internet', - ], - 'AddressIpVersion' => [ - 'description' => 'The IP version. Valid values:'."\n" - ."\n" - .'* **ipv4**: IPv4'."\n" - .'* **DualStack**: dual stack'."\n", - 'type' => 'string', - 'example' => 'ipv4', - ], - 'Ipv6AddressType' => [ - 'description' => 'The type of IPv6 address used by the NLB instance. Valid values:'."\n" - ."\n" - .'* **Internet**: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.'."\n" - .'* **Intranet**: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. Therefore, the NLB instance can be accessed over the VPC where the NLB instance is deployed.'."\n", - 'type' => 'string', - 'example' => 'Internet', - ], - 'LoadBalancerStatus' => [ - 'description' => 'The status of the NLB instance. Valid values:'."\n" - ."\n" - .'* **Inactive**: The NLB instance is disabled. Listeners of NLB instances in the Inactive state do not forward traffic.'."\n" - .'* **Active**: The NLB instance is running.'."\n" - .'* **Provisioning**: The NLB instance is being created.'."\n" - .'* **Configuring**: The NLB instance is being modified.'."\n" - .'* **Deleting**: The NLB instance is being deleted.'."\n" - .'* **Deleted**: The NLB instance is deleted.'."\n", - 'type' => 'string', - 'example' => 'Active', - ], - 'LoadBalancerBusinessStatus' => [ - 'description' => 'The business status of the NLB instance. Valid values:'."\n" - ."\n" - .'* **Abnormal**: The NLB instance is not working as expected.'."\n" - .'* **Normal**: The NLB instance is working as expected.'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'OperationLocks' => [ - 'title' => '实例处于锁定状态列表', - 'description' => 'The configuration of the operation lock. This parameter takes effect if the value of `LoadBalancerBussinessStatus` is **Abnormal**.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The configuration of the operation lock.'."\n", - 'type' => 'object', - 'properties' => [ - 'LockType' => [ - 'description' => 'The type of lock. Valid values:'."\n" - ."\n" - .'* **SecurityLocked**: The NLB instance is locked due to security reasons.'."\n" - .'* **RelatedResourceLocked**: The NLB instance is locked due to association issues.'."\n" - .'* **FinancialLocked**: The NLB instance is locked due to overdue payments.'."\n" - .'* **ResidualLocked**: The NLB instance is locked because the payments of the associated resources are overdue and the resources are released.'."\n", - 'type' => 'string', - 'example' => 'SecurityLocked', - ], - 'LockReason' => [ - 'description' => 'The reason why the NLB instance is locked.'."\n", - 'type' => 'string', - 'example' => 'Service exception'."\n", - ], - ], - ], - ], - 'VpcId' => [ - 'description' => 'The ID of the VPC where the NLB instance is deployed.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1b49rqrybk45nio****', - ], - 'CreateTime' => [ - 'description' => 'The time when the resource was created. The time is displayed in UTC in the `yyyy-MM-ddTHH:mm:ssZ` format.'."\n", - 'type' => 'string', - 'example' => '2022-07-18T17:22Z', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - 'DNSName' => [ - 'description' => 'The domain name of the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com', - ], - 'ZoneMappings' => [ - 'description' => 'The mappings between zones and vSwitches.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the array object.'."\n", - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The ID of the vSwitch in the zone. By default, each zone contains one vSwitch and one subnet.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp1rmcrwg3erh1fh8****', - ], - 'ZoneId' => [ - 'description' => 'The name of the zone. You can call the [DescribeZones](~~443890~~) operation to query the zones.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-a', - ], - 'LoadBalancerAddresses' => [ - 'description' => 'The IP addresses that are used by the NLB instance.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the array object.'."\n", - 'type' => 'object', - 'properties' => [ - 'EniId' => [ - 'description' => 'The ID of the elastic network interface (ENI) attached to the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'eni-bp12f1xhs5yal61a****', - ], - 'PrivateIPv4Address' => [ - 'title' => '私网ip', - 'description' => 'The private IPv4 address of the NLB instance.'."\n", - 'type' => 'string', - 'example' => '192.168.3.32', - ], - 'AllocationId' => [ - 'title' => '公网ipId', - 'description' => 'The ID of the elastic IP address (EIP).'."\n", - 'type' => 'string', - 'example' => 'eip-bp1aedxso6u80u0qf****', - ], - 'PublicIPv4Address' => [ - 'title' => '公网ip地址:仅Get的时候有值', - 'description' => 'The public IPv4 address of the NLB instance.'."\n", - 'type' => 'string', - 'example' => '120.XX.XX.69', - ], - 'Ipv6Address' => [ - 'description' => 'The IPv6 address used by the NLB instance.'."\n", - 'type' => 'string', - 'example' => '2001:db8:1:1:1:1:1:1', - ], - 'PrivateIPv4HcStatus' => [ - 'description' => 'The health status of the private IPv4 address of the NLB instance. Valid values:'."\n" - ."\n" - .'- **Healthy**'."\n" - .'- **Unhealthy**'."\n" - ."\n" - .'> This parameter is returned only when the Status of the zone is Active.', - 'type' => 'string', - 'example' => 'Healthy', - ], - 'PrivateIPv6HcStatus' => [ - 'description' => 'The health status of the IPv6 address of the NLB instance. Valid values:'."\n" - ."\n" - .'- **Healthy**'."\n" - .'- **Unhealthy**'."\n" - ."\n" - .'> This parameter is returned only when the Status of the zone is Active.', - 'type' => 'string', - 'example' => 'Healthy', - ], - ], - ], - ], - 'Status' => [ - 'description' => 'The zone status. Valid values:'."\n" - ."\n" - .'- **Active**: The zone is available.'."\n" - ."\n" - .'- **Stopped**: The zone is disabled. You can set the zone to this status only by using Cloud Architect Design Tools (CADT).'."\n" - ."\n" - .'- **Shifted**: The DNS record is removed.'."\n" - ."\n" - .'- **Starting**: The zone is being enabled. You can set the zone to this status only by using CADT.'."\n" - ."\n" - .'- **Stopping** You can set the zone to this status only by using CADT.', - 'type' => 'string', - 'example' => 'Active', - ], - ], - ], - ], - 'BandwidthPackageId' => [ - 'description' => 'The ID of the EIP bandwidth plan that is associated with the NLB instance if the NLB instance uses a public IP address.'."\n", - 'type' => 'string', - 'example' => 'cbwp-bp1vevu8h3ieh****', - ], - 'SecurityGroupIds' => [ - 'description' => 'The security group to which the NLB instance is added.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The security group to which the NLB instance is added.'."\n", - 'type' => 'string', - 'example' => 'sg-bp10uag3q0jkxu72****', - ], - ], - 'CrossZoneEnabled' => [ - 'description' => 'Indicates whether cross-zone load balancing is enabled for the NLB instance. Valid values:'."\n" - ."\n" - .'* **true**: enabled'."\n" - .'* **false**: disabled'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'LoadBalancerBillingConfig' => [ - 'title' => '计费相关属性', - 'description' => 'The billing settings of the NLB instance.'."\n", - 'type' => 'object', - 'properties' => [ - 'PayType' => [ - 'title' => '实例的计费类型', - 'description' => 'The billing method of the NLB instance. Only **PostPay** is supported, which indicates the pay-as-you-go billing method.'."\n", - 'type' => 'string', - 'example' => 'PostPay', - 'default' => 'PostPay', - ], - ], - ], - 'DeletionProtectionConfig' => [ - 'description' => 'The configuration of the deletion protection feature.'."\n", - 'type' => 'object', - 'properties' => [ - 'Enabled' => [ - 'description' => 'Indicates whether deletion protection is enabled. Valid values:'."\n" - ."\n" - .'* **true**: enabled'."\n" - .'* **false**: disabled'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Reason' => [ - 'description' => 'The reason why the deletion protection feature is enabled or disabled. The reason must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The reason must start with a letter.'."\n", - 'type' => 'string', - 'example' => 'The instance is running'."\n", - ], - 'EnabledTime' => [ - 'description' => 'The time when deletion protection was enabled. The time is displayed in UTC in `yyyy-MM-ddTHH:mm:ssZ` format.'."\n", - 'type' => 'string', - 'example' => '2022-12-01T17:22Z', - ], - ], - ], - 'ModificationProtectionConfig' => [ - 'description' => 'The configuration of the configuration read-only mode.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'Indicates whether the configuration read-only mode is enabled. Valid values:'."\n" - ."\n" - .'* **NonProtection**: disabled. In this case, **Reason** is not returned. If **Reason** is set, the value is cleared.'."\n" - .'* **ConsoleProtection**: enabled. In this case, **Reason** is returned.'."\n" - ."\n" - .'> If you set this parameter to **ConsoleProtection**, you cannot use the NLB console to modify instance configurations. However, you can call API operations to modify instance configurations.'."\n", - 'type' => 'string', - 'example' => 'ConsoleProtection', - ], - 'Reason' => [ - 'description' => 'The reason why the configuration read-only mode is enabled. The reason must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The reason must start with a letter.'."\n" - ."\n" - .'This parameter takes effect only if **Status** is set to **ConsoleProtection**.'."\n", - 'type' => 'string', - 'example' => 'Service guarantee period'."\n", - ], - 'EnabledTime' => [ - 'description' => 'The time when the configuration read-only mode was enabled. The time is displayed in UTC in `yyyy-MM-ddTHH:mm:ssZ` format.'."\n", - 'type' => 'string', - 'example' => '2022-12-01T17:22Z', - ], - ], - ], - 'Tags' => [ - 'description' => 'A list of tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'A list of tags.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'KeyTest', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'ValueTest', - ], - ], - ], - ], + 'LocalName' => ['description' => 'The zone name.'."\n", 'type' => 'string', 'example' => 'ap_southeast_2', 'title' => ''], + 'ZoneId' => ['description' => 'The zone ID.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-g', 'title' => ''], ], + 'title' => '', ], - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'NextToken' => [ - 'description' => 'The token that determines the start point of the next query. Valid values:'."\n" - ."\n" - .'* If this is your first query and no subsequent queries are to be sent, ignore this parameter.'."\n" - .'* If a subsequent query is to be sent, set the parameter to the value of NextToken that is returned from the last call.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', + 'title' => '', ], ], ], @@ -3245,495 +2655,133 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.LoadBalancerType', - 'errorMessage' => 'The LoadBalancerType value is invalid.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam.loadBalancerName', - 'errorMessage' => 'Param loadBalancerName is illegal.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'IllegalParam.AcceptLanguage', 'errorMessage' => 'The param of AcceptLanguage[%s] is illegal from bundle %s', 'description' => ''], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"LoadBalancers\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"LoadBalancerName\\": \\"NLB1\\",\\n \\"LoadBalancerType\\": \\"Network\\",\\n \\"AddressType\\": \\"Internet\\",\\n \\"AddressIpVersion\\": \\"ipv4\\",\\n \\"Ipv6AddressType\\": \\"Internet\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"LoadBalancerBusinessStatus\\": \\"Normal\\",\\n \\"OperationLocks\\": [\\n {\\n \\"LockType\\": \\"SecurityLocked\\",\\n \\"LockReason\\": \\"业务异常\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"CreateTime\\": \\"2022-07-18T17:22:45Z\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"DNSName\\": \\"nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"VSwitchId\\": \\"vsw-bp1rmcrwg3erh1fh8****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"EniId\\": \\"eni-bp12f1xhs5yal61a****\\",\\n \\"PrivateIPv4Address\\": \\"192.168.3.32\\",\\n \\"AllocationId\\": \\"eip-bp1aedxso6u80u0qf****\\",\\n \\"PublicIPv4Address\\": \\"120.XX.XX.69\\",\\n \\"Ipv6Address\\": \\"2001:db8:1:1:1:1:1:1\\",\\n \\"PrivateIPv4HcStatus\\": \\"Healthy\\",\\n \\"PrivateIPv6HcStatus\\": \\"Healthy\\"\\n }\\n ],\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-bp10uag3q0jkxu72****\\"\\n ],\\n \\"CrossZoneEnabled\\": true,\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"Reason\\": \\"实例运行中\\",\\n \\"EnabledTime\\": \\"2022-12-01T17:22:45Z\\"\\n },\\n \\"ModificationProtectionConfig\\": {\\n \\"Status\\": \\"ConsoleProtection\\",\\n \\"Reason\\": \\"业务保障期\\",\\n \\"EnabledTime\\": \\"2022-12-01T17:22:45Z\\"\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"ValueTest\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n \\n cn-hangzhou\\n nlb-83ckzc8d4xlp8o****\\n NLB1\\n Network\\n Internet\\n ipv4\\n Internet\\n Active\\n Normal\\n \\n SecurityLocked\\n 业务异常\\n \\n vpc-bp1b49rqrybk45nio****\\n 2022-07-18T17:22Z\\n rg-atstuj3rtop****\\n nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com\\n \\n vsw-bp1rmcrwg3erh1fh8****\\n cn-hangzhou-a\\n \\n eni-bp12f1xhs5yal61a****\\n 192.168.3.32\\n eip-bp1aedxso6u80u0qf****\\n 120.XX.XX.69\\n 2001:db8:1:1:1:1:1:1\\n Healthy\\n Healthy\\n \\n Active\\n \\n cbwp-bp1vevu8h3ieh****\\n sg-bp10uag3q0jkxu72****\\n true\\n \\n PostPay\\n \\n \\n true\\n 实例运行中\\n 2022-12-01T17:22Z\\n \\n \\n ConsoleProtection\\n 业务保障期\\n 2022-12-01T17:22Z\\n \\n \\n KeyTest\\n ValueTest\\n \\n \\n 10\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 20\\n","errorExample":""}]', - 'title' => 'ListLoadBalancers', - ], - 'GetLoadBalancerAttribute' => [ - 'summary' => 'Queries the details about a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Zones\\": [\\n {\\n \\"LocalName\\": \\"ap_southeast_2\\",\\n \\"ZoneId\\": \\"cn-hangzhou-g\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', + 'title' => 'DescribeZones', + 'summary' => 'Queries the zones of a region in which a Network Load Balancer (NLB) instance is deployed.', + 'changeSet' => [ + ['createdAt' => '2023-10-09T11:30:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-26T03:48:25.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:17.000Z', 'description' => 'OpenAPI offline'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeZones'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], ], + 'ramActions' => [], + ], + 'DetachCommonBandwidthPackageFromLoadBalancer' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeNodes' => [ - 'FEATUREslbZQW9H1', - ], - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'LoadBalancerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The NLB instance ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the NLB instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], ], [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'name' => 'BandwidthPackageId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cbwp-bp1pzf0ym72pu3y76****', 'title' => ''], ], [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'in' => 'formData', + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'response', - 'description' => 'response'."\n", + 'description' => 'response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'RegionId' => [ - 'description' => 'The region ID of the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'LoadBalancerId' => [ - 'description' => 'The NLB instance ID.'."\n", - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'LoadBalancerName' => [ - 'description' => 'The NLB instance name.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", - 'type' => 'string', - 'example' => 'NLB1', - ], - 'LoadBalancerType' => [ - 'description' => 'The type of the Server Load Balancer (SLB) instance. Set the value to **network**, which specifies NLB.'."\n", - 'type' => 'string', - 'example' => 'network', - ], - 'AddressType' => [ - 'description' => 'The IPv4 network type of the NLB instance. Valid values:'."\n" - ."\n" - .'* **Internet** The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.'."\n" - .'* **Intranet** The domain name of the NLB instance is resolved to the private IP address. Therefore, the NLB instance can be accessed over the VPC in which the NLB instance is deployed.'."\n", - 'type' => 'string', - 'example' => 'Internet', - ], - 'AddressIpVersion' => [ - 'description' => 'The protocol version. Valid values:'."\n" - ."\n" - .'* **ipv4**: IPv4'."\n" - .'* **DualStack**: dual stack'."\n", - 'type' => 'string', - 'example' => 'ipv4', - ], - 'Ipv6AddressType' => [ - 'description' => 'The IPv6 network type of the NLB instance. Valid values:'."\n" - ."\n" - .'* **Internet**: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.'."\n" - .'* **Intranet**: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. In this case, the NLB instance can be accessed over the VPC where the NLB instance is deployed.'."\n", - 'type' => 'string', - 'example' => 'Internet', - ], - 'LoadBalancerStatus' => [ - 'description' => 'The NLB instance status. Valid values:'."\n" - ."\n" - .'* **Inactive**: The NLB instance is disabled. The listeners of NLB instances in the Inactive state do not forward traffic.'."\n" - .'* **Active**: The NLB instance is running.'."\n" - .'* **Provisioning**: The NLB instance is being created.'."\n" - .'* **Configuring**: The NLB instance is being modified.'."\n" - .'* **CreateFailed**: The system failed to create the NLB instance. In this case, you are not charged for the NLB instance. You can only delete the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'Active', - ], - 'LoadBalancerBusinessStatus' => [ - 'description' => 'The status of workloads on the NLB instance. Valid values:'."\n" - ."\n" - .'* **Abnormal**'."\n" - .'* **Normal**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'OperationLocks' => [ - 'title' => '实例处于锁定状态列表', - 'description' => 'The information about the locked NLB instance. This parameter is returned only when `LoadBalancerBussinessStatus` is **Abnormal**.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'LockType' => [ - 'description' => 'The type of the lock. Valid values:'."\n" - ."\n" - .'* **SecurityLocked**: The NLB instance is locked due to security reasons.'."\n" - .'* **RelatedResourceLocked**: The NLB instance is locked due to other resources associated with the NLB instance.'."\n" - .'* **FinancialLocked**: The NLB instance is locked due to overdue payments.'."\n" - .'* **ResidualLocked**: The NLB instance is locked because the associated resources have overdue payments and the resources are released.'."\n", - 'type' => 'string', - 'example' => 'SecurityLocked', - ], - 'LockReason' => [ - 'description' => 'The reason why the NLB instance is locked.'."\n", - 'type' => 'string', - 'example' => 'security', - ], - ], - ], - ], - 'VpcId' => [ - 'description' => 'The VPC ID of the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1b49rqrybk45nio****', - ], - 'CreateTime' => [ - 'description' => 'The time when the NLB instance was created. This value is a UNIX timestamp.'."\n" - ."\n" - .'Unit: milliseconds.', - 'type' => 'string', - 'example' => '2022-07-02T02:49:05Z', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - 'DNSName' => [ - 'description' => 'The domain name of the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com', - ], - 'ZoneMappings' => [ - 'description' => 'The list of zones and vSwitches in the zones. You must specify 2 to 10 zones.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The mappings between zones and vSwitches. You must add at least two zones. You can add a maximum of 10 zones.'."\n", - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The ID of the vSwitch in the zone. By default, each zone contains one vSwitch and one subnet.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp1rmcrwg3erh1fh8****', - ], - 'ZoneId' => [ - 'description' => 'The ID of the zone. You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-a', - ], - 'LoadBalancerAddresses' => [ - 'description' => 'The information about the IP addresses used by the NLB instance.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'EniId' => [ - 'description' => 'The ID of the elastic network interface (ENI).'."\n", - 'type' => 'string', - 'example' => 'eni-bp12f1xhs5yal61a****', - ], - 'PrivateIPv4Address' => [ - 'title' => '私网ip', - 'description' => 'The private IPv4 address of the NLB instance.'."\n", - 'type' => 'string', - 'example' => '192.168.3.32', - ], - 'AllocationId' => [ - 'title' => '公网ipId', - 'description' => 'The ID of the elastic IP address (EIP).'."\n", - 'type' => 'string', - 'example' => 'eip-bp1aedxso6u80u0qf****', - ], - 'PublicIPv4Address' => [ - 'title' => '公网ip地址:仅Get的时候有值', - 'description' => 'The public IPv4 address of the NLB instance.'."\n", - 'type' => 'string', - 'example' => '120.XX.XX.69', - ], - 'Ipv6Address' => [ - 'description' => 'The IPv6 address of the NLB instance.'."\n", - 'type' => 'string', - 'example' => '2001:db8:1:1:1:1:1:1', - ], - 'PrivateIPv4HcStatus' => [ - 'description' => 'The health status of the private IPv4 address of the NLB instance. Valid values:'."\n" - ."\n" - .'* **Healthy**'."\n" - .'* **Unhealthy**'."\n" - ."\n" - .'> This parameter is returned only when the **Status** of the zone is **Active**.'."\n", - 'type' => 'string', - 'example' => 'Healthy', - ], - 'PrivateIPv6HcStatus' => [ - 'description' => 'The health status of the IPv6 address of the NLB instance. Valid values:'."\n" - ."\n" - .'* **Healthy**'."\n" - .'* **Unhealthy**'."\n" - ."\n" - .'> This parameter is returned only when the **Status** of the zone is **Active**.'."\n", - 'type' => 'string', - 'example' => 'Healthy', - ], - 'Ipv4LocalAddresses' => [ - 'description' => 'The IPv4 link-local addresses. The IP addresses that the NLB instance uses to communicate with the backend servers.', - 'type' => 'array', - 'items' => [ - 'description' => 'The IPv4 link-local address.', - 'type' => 'string', - 'example' => '192.168.36.16', - ], - ], - 'Ipv6LocalAddresses' => [ - 'description' => 'The IPv6 link-local addresses. The IP addresses that the NLB instance uses to communicate with the backend servers.', - 'type' => 'array', - 'items' => [ - 'description' => 'The IPv6 link-local address.', - 'type' => 'string', - 'example' => '2408:4005:357:ba00:64a2:221f:5685:8854', - ], - ], - ], - ], - ], - 'Status' => [ - 'description' => 'The zone status. Valid values:'."\n" - ."\n" - .'* **Active**: The zone is available.'."\n" - .'* **Stopped**: The zone is disabled. You can set the zone to this status only by using Cloud Architect Design Tools (CADT).'."\n" - .'* **Shifted**: The DNS record is removed.'."\n" - .'* **Starting**: The zone is being enabled. You can set the zone to this status only by using CADT.'."\n" - .'* **Stopping** You can set the zone to this status only by using CADT.'."\n", - 'type' => 'string', - 'example' => 'Active', - ], - ], - ], - ], - 'BandwidthPackageId' => [ - 'description' => 'The ID of the EIP bandwidth plan.'."\n", - 'type' => 'string', - 'example' => 'cbwp-bp1vevu8h3ieh****', - ], - 'SecurityGroupIds' => [ - 'description' => 'The ID of the security group associated with the NLB instance.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the security group associated with the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'sg-bp10uag3q0jkxu72****', - ], - ], - 'CrossZoneEnabled' => [ - 'description' => 'Indicates whether the NLB instance is accessible across zones. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'LoadBalancerBillingConfig' => [ - 'title' => '计费相关属性', - 'description' => 'The billing information of the NLB instance.'."\n", - 'type' => 'object', - 'properties' => [ - 'PayType' => [ - 'title' => '实例的计费类型', - 'description' => 'The billing method of the NLB instance. Set the value to **PostPay**, which specifies the pay-as-you-go billing method.'."\n", - 'type' => 'string', - 'example' => 'PostPay', - 'default' => 'PostPay', - ], - ], - ], - 'Cps' => [ - 'description' => 'The maximum number of new connections per second supported by the NLB instance in each zone (virtual IP address). Valid values: **0** to **1000000**.'."\n" - ."\n" - .'**0** indicates that the number of connections is unlimited.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'DeletionProtectionConfig' => [ - 'description' => 'The configuration of the deletion protection feature.'."\n", - 'type' => 'object', - 'properties' => [ - 'Enabled' => [ - 'description' => 'Specifies whether to enable deletion protection. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false** (default): no'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Reason' => [ - 'description' => 'The reason why the deletion protection feature is enabled or disabled. The value must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The value must start with a letter.'."\n", - 'type' => 'string', - 'example' => 'create-by-mse-can-not-delete', - ], - 'EnabledTime' => [ - 'description' => 'The time when the deletion protection feature was enabled. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2022-11-02T02:49:05Z', - ], - ], - ], - 'ModificationProtectionConfig' => [ - 'description' => 'The configuration of the configuration read-only mode.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'Specifies whether to enable the configuration read-only mode. Valid values:'."\n" - ."\n" - .'* **NonProtection**: does not enable the configuration read-only mode. You cannot set the **Reason** parameter. If the **Reason** parameter is set, the value is cleared.'."\n" - .'* **ConsoleProtection**: enables the configuration read-only mode. You can set the **Reason** parameter.'."\n" - ."\n" - .'> If you set this parameter to **ConsoleProtection**, you cannot use the NLB console to modify instance configurations. However, you can call API operations to modify instance configurations.'."\n", - 'type' => 'string', - 'example' => 'ConsoleProtection', - ], - 'Reason' => [ - 'description' => 'The reason why the configuration read-only mode is enabled. The value must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The value must start with a letter.'."\n" - ."\n" - .'> This parameter takes effect only if the **Status** parameter is set to **ConsoleProtection**.'."\n", - 'type' => 'string', - 'example' => 'create-by-mse-cannot-modify', - ], - 'EnabledTime' => [ - 'description' => 'The time when the modification protection feature was enabled. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', - 'type' => 'string', - 'example' => '2022-12-02T02:49:05Z', - ], - ], - ], - 'Tags' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'TagKey' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'KeyTest', - ], - 'TagValue' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'ValueTest', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DuplicatedParam.%s', - 'errorMessage' => 'The param of %s is duplicated.', - ], - [ - 'errorCode' => 'OperationFailed.GetXipFailed', - 'errorMessage' => 'Operation failed because GetXipFailed.', - ], + ['errorCode' => 'OperationDenied.%s', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''], + ['errorCode' => 'ResourceNotAssociated.loadbalancer', 'errorMessage' => 'Thre resource is not associated with loadbalancer.', 'description' => 'The current bandwidth package is not associated with the lb in the parameter. Check the input parameter.'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'DetachCommonBandwidthPackageFromLoadBalancer', + 'summary' => 'Disassociates a Network Load Balancer (NLB) instance from an Internet Shared Bandwidth instance.', + 'changeSet' => [ + ['createdAt' => '2024-01-29T06:32:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-02T06:52:11.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-07-04T03:05:33.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:26.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DetachCommonBandwidthPackageFromLoadBalancer'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:DetachCommonBandwidthPackageFromLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"LoadBalancerName\\": \\"NLB1\\",\\n \\"LoadBalancerType\\": \\"network\\",\\n \\"AddressType\\": \\"Internet\\",\\n \\"AddressIpVersion\\": \\"ipv4\\",\\n \\"Ipv6AddressType\\": \\"Internet\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"LoadBalancerBusinessStatus\\": \\"Normal\\",\\n \\"OperationLocks\\": [\\n {\\n \\"LockType\\": \\"SecurityLocked\\",\\n \\"LockReason\\": \\"业务异常。\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"DNSName\\": \\"nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"VSwitchId\\": \\"vsw-bp1rmcrwg3erh1fh8****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"EniId\\": \\"eni-bp12f1xhs5yal61a****\\",\\n \\"PrivateIPv4Address\\": \\"192.168.3.32\\",\\n \\"AllocationId\\": \\"eip-bp1aedxso6u80u0qf****\\",\\n \\"PublicIPv4Address\\": \\"120.XX.XX.69\\",\\n \\"Ipv6Address\\": \\"2001:db8:1:1:1:1:1:1\\",\\n \\"PrivateIPv4HcStatus\\": \\"Healthy\\",\\n \\"PrivateIPv6HcStatus\\": \\"Healthy\\",\\n \\"Ipv4LocalAddresses\\": [\\n \\"192.168.36.16\\"\\n ],\\n \\"Ipv6LocalAddresses\\": [\\n \\"2408:4005:357:ba00:64a2:221f:5685:8854\\"\\n ]\\n }\\n ],\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-bp10uag3q0jkxu72****\\"\\n ],\\n \\"CrossZoneEnabled\\": true,\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"Cps\\": 100,\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"Reason\\": \\"实例运行中\\",\\n \\"EnabledTime\\": \\"2022-11-02T02:49:05Z\\"\\n },\\n \\"ModificationProtectionConfig\\": {\\n \\"Status\\": \\"ConsoleProtection\\",\\n \\"Reason\\": \\"业务保障期\\",\\n \\"EnabledTime\\": \\"2022-12-02T02:49:05Z\\"\\n },\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"KeyTest\\",\\n \\"TagValue\\": \\"ValueTest\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n cn-hangzhou\\n nlb-83ckzc8d4xlp8o****\\n NLB1\\n network\\n Internet\\n ipv4\\n Internet\\n Active\\n Normal\\n \\n SecurityLocked\\n 业务异常。\\n \\n vpc-bp1b49rqrybk45nio****\\n 2022-07-02T02:49:05Z\\n rg-atstuj3rtop****\\n nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com\\n \\n vsw-bp1rmcrwg3erh1fh8****\\n cn-hangzhou-a\\n \\n eni-bp12f1xhs5yal61a****\\n 192.168.3.32\\n eip-bp1aedxso6u80u0qf****\\n 120.XX.XX.69\\n 2001:db8:1:1:1:1:1:1\\n Healthy\\n Healthy\\n \\n Active\\n \\n cbwp-bp1vevu8h3ieh****\\n sg-bp10uag3q0jkxu72****\\n true\\n \\n PostPay\\n \\n 100\\n \\n true\\n 实例运行中\\n 2022-11-02T02:49:05Z\\n \\n \\n ConsoleProtection\\n 业务保障期\\n 2022-12-02T02:49:05Z\\n \\n \\n KeyTest\\n ValueTest\\n \\n","errorExample":""}]', - 'title' => 'GetLoadBalancerAttribute', ], - 'StartShiftLoadBalancerZones' => [ - 'summary' => 'Removes the elastic IP address (EIP) or virtual IP address (VIP) used in a zone from the DNS record.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DisableLoadBalancerIpv6Internet' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3741,152 +2789,96 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ - [ - 'name' => 'ZoneMappings', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The mappings between zones and vSwitches.'."\n" - ."\n" - .'> You can remove only one IP address (or zone) in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The zones and the vSwitches in the zones.'."\n" - ."\n" - .'> You can remove only one IP address (or zone) in each call.'."\n", - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The ID of the vSwitch in the zone. By default, each zone uses one vSwitch and one subnet.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-bp1rmcrwg3erh1fh8****', - ], - 'ZoneId' => [ - 'description' => 'The zone ID of the NLB instance.'."\n" - ."\n" - .'> You can remove only one IP address (or zone) in each call.'."\n" - ."\n" - .'You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou-a', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 1, - 'minItems' => 1, - ], - ], [ 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The NLB instance ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['description' => 'The ID of the NLB instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse'."\n", + 'title' => 'response', + 'description' => 'response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], + ['errorCode' => 'OperationDenied.Ipv6IntranetInstance', 'errorMessage' => 'The operation is not allowed because of Ipv6IntranetInstance.', 'description' => 'the private ipv6 server load balancer instance does not support the current operation.'], + ['errorCode' => 'OperationDenied.NonDualStackInstance', 'errorMessage' => 'The operation is not allowed because of NonDualStackInstance.', 'description' => ''], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => 'The specified resource of loadbalancer is being configured, please try again later.'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.%s', - 'errorMessage' => 'Authentication is failed for %s.', - ], - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'DisableLoadBalancerIpv6Internet', + 'summary' => 'Changes the public IPv6 address of a dual-stack Network Load Balancer (NLB) instance to a private IPv6 address.', + 'changeSet' => [ + ['createdAt' => '2024-02-22T08:02:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-29T06:32:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:27.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-30T07:22:05.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-08-03T07:32:21.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-07-04T03:05:33.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-27T08:29:22.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableLoadBalancerIpv6Internet'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:DisableLoadBalancerIpv6Internet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'StartShiftLoadBalancerZones', - 'description' => '> If the NLB instance is deployed in only one zone, you cannot remove the EIP or VIP from the DNS record.'."\n", ], - 'CancelShiftLoadBalancerZones' => [ - 'summary' => 'Adds the elastic IP address (EIP) and virtual IP address (VIP) of a zone to the DNS record.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DisassociateAdditionalCertificatesWithListener' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3896,150 +2888,119 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '177213', + 'abilityTreeNodes' => ['FEATUREslbEI2GF0'], ], 'parameters' => [ [ - 'name' => 'ZoneMappings', + 'name' => 'AdditionalCertificateIds', 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The mapping between the zone and the vSwitch.'."\n" - ."\n" - .'> You can specify only one zone ID in each call.'."\n", + 'title' => '', + 'description' => 'The additional certificates. You can disassociate up to 15 additional certificates in each call.'."\n", 'type' => 'array', - 'items' => [ - 'description' => 'The mapping between the zone and the vSwitch.'."\n" - ."\n" - .'> You can specify only one zone ID in each call.'."\n", - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The ID of the vSwitch in the zone. By default, each zone uses one vSwitch and one subnet.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-sersdf****', - ], - 'ZoneId' => [ - 'description' => 'The zone ID of the NLB instance.'."\n" - ."\n" - .'> You can specify only one zone ID in each call.'."\n" - ."\n" - .'You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou-a', - ], - ], - 'required' => false, - ], + 'items' => ['description' => 'The additional certificate. Only server certificates are supported. You can disassociate up to 15 additional certificates in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => '12315790343_166f8204689_1714763408_70998****', 'title' => ''], 'required' => true, - 'maxItems' => 1, + 'maxItems' => 15, 'minItems' => 1, ], ], [ - 'name' => 'LoadBalancerId', + 'name' => 'ListenerId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the NLB instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'schema' => ['title' => '', 'description' => 'The listener ID. Only TCP/SSL listener IDs are supported.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-bpn0kn908w4nbw****@80'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: Validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', + 'title' => 'RpcResponse', 'description' => 'RpcResponse'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.ZoneId', - 'errorMessage' => 'The zoneId status of eni [%s] is incorrect.', - ], + ['errorCode' => 'IncorrectStatus.listener', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.certificate', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.loadbalancer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'OperationDenied.Protocol', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''], + ['errorCode' => 'OperationDenied.DefaultCertificateUsed', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''], + ['errorCode' => 'ResourceNotAssociated.Certificate', 'errorMessage' => 'The specified resource %s is not associated.', 'description' => ''], + ['errorCode' => 'OperationDenied.CaCertificateUsed', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => 'The specific resource is conflict.'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.%s', - 'errorMessage' => 'Authentication is failed for %s.', - ], - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Nlb::2022-04-30::GetJobStatus', 'callbackInterval' => 5, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'DisassociateAdditionalCertificatesWithListener', + 'summary' => 'Disassociates additional certificates from a listener that uses SSL over TCP.', + 'description' => '**DisassociateAdditionalCertificatesWithListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListListenerCertificates](~~615175~~) operation to query the status of the task:'."\n" + ."\n" + .'* If an additional certificate is in the **Dissociating** state, the additional certificate is being disassociated.'."\n" + .'* If an additional certificate is in the **Dissociated** state, the additional certificate is disassociated.'."\n", + 'changeSet' => [ + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisassociateAdditionalCertificatesWithListener'], ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:DisassociateAdditionalCertificatesWithListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'CancelShiftLoadBalancerZones', - 'description' => 'Before you call this operation, the zone of the Network Load Balancer (NLB) instance is removed from the DNS record by using the console or calling the [StartShiftLoadBalancerZones](~~2411999~~) API operation.'."\n", ], - 'CreateListener' => [ - 'summary' => 'Creates a TCP or UDP listener, or a listener that uses SSL over TCP for a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'EnableLoadBalancerIpv6Internet' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4047,1854 +3008,592 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '141889', - 'abilityTreeNodes' => [ - 'FEATUREslbC68LB1', - 'FEATUREslb4PUXNB', - 'FEATUREslbGDCN1S', - 'FEATUREslbUZZGGD', - ], - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'ListenerProtocol', + 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'title' => '监听协议', - 'description' => 'The listener protocol. Valid values: **TCP**, **UDP**, and **TCPSSL**.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'TCP', - 'enum' => [], - ], + 'schema' => ['description' => 'The NLB instance ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], ], [ - 'name' => 'ListenerPort', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'title' => '监听端口', - 'description' => 'The listener port. Valid values: **0** to **65535**.'."\n" - ."\n" - .'If you set this parameter to **0**, the listener listens by port range. If you set this parameter to **0**, you must also set the **StartPort** and **EndPort** parameters.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '65535', - 'minimum' => '0', - 'example' => '80', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: prechecks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'ListenerDescription', + 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'title' => '监听描述', - 'description' => 'The name of the listener.'."\n" - ."\n" - .'The name must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tcp_80', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'LoadBalancerId', + 'name' => 'RegionId', 'in' => 'formData', + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => 'add 必选', - 'description' => 'The ID of the NLB instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', + 'title' => 'response', + 'description' => 'response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.NonDualStackInstance', 'errorMessage' => 'The operation is not allowed because of NonDualStackInstance.', 'description' => ''], + ['errorCode' => 'ResourceInCreating.%s', 'errorMessage' => 'The specified resource of %s is creating, please try again later.', 'description' => ''], + ['errorCode' => 'ResourceInCreating.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', 'description' => 'The specified resource of loadbalancer is creating, please try again later.'], + ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], [ - 'name' => 'ServerGroupId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'servergroupId', - 'description' => 'The server group ID.'."\n" - ."\n" - .'> * If you set **ListenerProtocol** to **TCP**, you can associate the listener with server groups whose backend protocol is **TCP** or **TCP_UDP**. You cannot associate the listener with server groups whose backend protocol is **UDP**.'."\n" - .'> * If you set **ListenerProtocol** to **UDP**, you can associate the listener with server groups whose backend protocol is **UDP** or **TCP_UDP**. You cannot associate the listener with server groups whose backend protocol is **TCP**.'."\n" - .'> * If you set **ListenerProtocol** to **TCPSSL**, you can associate the listener with server groups whose backend protocol is **TCP** and have **client IP preservation disabled**. You cannot associate the listener with server groups whose backend protocol is **TCP** and have **client IP preservation enabled** or server groups whose backend protocol is **UDP** or **TCP_UDP**.', - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-ppdpc14gdm3x4o****', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.Ipv6Gateway', 'errorMessage' => 'The specified resource of Ipv6Gateway is not found.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'EnableLoadBalancerIpv6Internet', + 'summary' => 'Changes the network type of the IPv6 address of a dual-stack Network Load Balancer (NLB) instance from internal-facing to Internet-facing.', + 'changeSet' => [ + ['createdAt' => '2024-02-29T07:14:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:27.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-30T07:22:05.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-08-03T07:32:21.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-07-04T03:05:33.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-27T08:29:22.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableLoadBalancerIpv6Internet'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:EnableLoadBalancerIpv6Internet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], + ], + ], + 'GetJobStatus' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'IdleTimeout', - 'in' => 'formData', - 'schema' => [ - 'title' => '空闲超时时间', - 'description' => 'The timeout period for idle connections. Unit: seconds.'."\n" - ."\n" - .'* If you set **ListenerProtocol** to **TCP** or **TCPSSL**, this parameter can be set to a value ranging from **10** to **900**. Default value: **900**.'."\n" - .'* If **ListenerProtocol** is set to **UDP**, this parameter can be set to a value ranging from **10** to **20**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '3600', - 'minimum' => '10', - 'example' => '900', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'SecurityPolicyId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'Tclssl监听的安全策略', - 'description' => 'The ID of the security policy. System security policies and custom security policies are supported.'."\n" - ."\n" - .'* Valid values for system security policies: **tls_cipher_policy\\_1\\_0** (default), **tls_cipher_policy\\_1\\_1**, **tls_cipher_policy\\_1\\_2**, **tls_cipher_policy\\_1\\_2\\_strict**, and **tls_cipher_policy\\_1\\_2\\_strict_with\\_1\\_3**.'."\n" - ."\n" - .'* For a custom security policy, enter the policy ID.'."\n" - ."\n" - .' * For information about creating a custom security policy, see [CreateSecurityPolicy](~~445901~~).'."\n" - .' * For information about querying security policies, see [ListSecurityPolicy](~~445900~~).'."\n" - ."\n" - .'> This parameter takes effect only for TCPSSL listeners.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tls_cipher_policy_1_0', - ], + 'name' => 'JobId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The ID of the asynchronous job.'."\n", 'type' => 'string', 'required' => true, 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****'], ], [ - 'name' => 'CertificateIds', - 'in' => 'formData', - 'style' => 'repeatList', + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => 'server证书列表', - 'description' => 'The server certificate. This parameter is supported only by TCLSSL listeners.'."\n" - ."\n" - .'> You can specify only one server certificate.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The server certificate. This parameter is supported only by TCLSSL listeners.'."\n" + 'title' => 'RpcResponse', + 'description' => 'RpcResponse', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', 'title' => ''], + 'Status' => ['description' => 'The state of the task. Valid values:'."\n" ."\n" - .'> You can specify only one server certificate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '12315790212_166f8204689_1714763408_70998****', + .'* **Succeeded**: The task is successful.'."\n" + .'* **processing**: The ticket is being executed.'."\n", 'type' => 'string', 'example' => 'Succeeded', 'title' => ''], ], - 'required' => false, - 'maxItems' => 10, ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], [ - 'name' => 'CaCertificateIds', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'ca 证书列表', - 'description' => 'The certificate authority (CA) certificate. This parameter is supported only by TCLSSL listeners.'."\n" - ."\n" - .'> You can specify only one CA certificate.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The certificate authority (CA) certificate. This parameter is supported only by TCLSSL listeners.'."\n" - ."\n" - .'> You can specify only one CA certificate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '139a00604ad-cn-east-hangzh****', + ['errorCode' => 'ResourceNotFound.JobId', 'errorMessage' => 'The specified resource of JobId is not found.', 'description' => 'The specified JobId resource was not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"Status\\": \\"Succeeded\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n Succeeded\\n","errorExample":""}]', + 'title' => 'GetJobStatus', + 'summary' => 'Queries the result of an asynchronous operation performed on a Network Load Balancer (NLB) instance.', + 'changeSet' => [ + ['createdAt' => '2024-01-29T06:32:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-26T03:48:25.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:00.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJobStatus'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetJobStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'All Resource', 'arn' => '*'], ], - 'required' => false, - 'maxItems' => 10, ], ], + ], + ], + 'GetListenerAttribute' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'CaEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to enable mutual authentication. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREslbC68LB1', 'FEATUREslb4PUXNB', 'FEATUREslbGDCN1S', 'FEATUREslbUZZGGD'], + ], + 'parameters' => [ + [ + 'name' => 'ListenerId', + 'in' => 'query', + 'schema' => ['description' => 'The listener ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'lsn-bp1bpn0kn908w4nbw****@233'], ], [ 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'- **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'- **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must ensure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** is different for each request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', - 'in' => 'formData', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ProxyProtocolEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to use the Proxy protocol to pass client IP addresses to backend servers. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - [ - 'name' => 'SecSensorEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to enable fine-grained monitoring. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - [ - 'name' => 'AlpnEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to enable Application-Layer Protocol Negotiation (ALPN). Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - [ - 'name' => 'AlpnPolicy', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ALPN policy. Valid values:'."\n" - ."\n" - .'* **HTTP1Only**: uses only HTTP 1.x. The priority of HTTP 1.1 is higher than that of HTTP 1.0.'."\n" - .'* **HTTP2Only**: uses only HTTP 2.0.'."\n" - .'* **HTTP2Optional**: preferentially uses HTTP 1.x over HTTP 2.0. The priority of HTTP 1.1 is higher than that of HTTP 1.0, and the priority of HTTP 1.0 is higher than that of HTTP 2.0.'."\n" - .'* **HTTP2Preferred**: preferentially uses HTTP 2.0 over HTTP 1.x. The priority of HTTP 2.0 is higher than that of HTTP 1.1, and the priority of HTTP 1.1 is higher than that of HTTP 1.0.'."\n" - ."\n" - .'> This parameter is required if **AlpnEnabled** is set to true.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP1Only', - 'enum' => [ - 'HTTP1Only', - 'HTTP2Only', - 'HTTP2Preferred', - 'HTTP2Optional', - ], - ], - ], - [ - 'name' => 'StartPort', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The first port in the listener port range. Valid values: **0** to **65535**.'."\n" - ."\n" - .'> This parameter is required when **ListenerPort** is set to **0**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '244', - ], - ], - [ - 'name' => 'EndPort', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The last port in the listener port range. Valid values: **0** to **65535**. The port number of the last port must be greater than the port number of the first port.'."\n" - ."\n" - .'> This parameter is required when **ListenerPort** is set to **0**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '566', - ], - ], - [ - 'name' => 'Cps', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The maximum number of new connections per second supported by the listener in each zone (virtual IP address). Valid values: **0** to **1000000**. **0** indicates that the number of connections is unlimited.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - ], - [ - 'name' => 'Mss', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The size of the largest TCP packet segment. Unit: bytes. Valid values: **0** to **1500**. **0** indicates that the maximum segment size (MSS) value of TCP packets remains unchanged.'."\n" - ."\n" - .'> This parameter takes effect only for TCP and TCPSSL listeners.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '43', - ], - ], - [ - 'name' => 'Tag', - 'in' => 'formData', - 'allowEmptyValue' => true, - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. The tag key can be up to 64 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`. The tag value can contain letters, digits, and the following special characters: \\_ . : / = + - @'."\n" - ."\n" - .'You can specify up to 20 tags in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'KeyTest', - ], - 'Value' => [ - 'description' => 'The value of the tag. The tag value can be up to 128 characters in length, cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`. The tag value can contain letters, digits, and the following special characters: \\_ . : / = + - @'."\n" - ."\n" - .'You can specify up to 20 tags in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'ProxyProtocolV2Config', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => 'Specifies whether to use the Proxy protocol to pass the VpcId, PrivateLinkEpId, and PrivateLinkEpsId parameters to backend servers.'."\n", - 'type' => 'object', - 'properties' => [ - 'Ppv2VpcIdEnabled' => [ - 'description' => 'Specifies whether to use the Proxy protocol to pass the VpcId parameter to backend servers. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - 'Ppv2PrivateLinkEpIdEnabled' => [ - 'description' => 'Specifies whether to use the Proxy protocol to pass the Ppv2PrivateLinkEpId parameter to backend servers. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - 'Ppv2PrivateLinkEpsIdEnabled' => [ - 'description' => 'Specifies whether to use the Proxy protocol to pass the PrivateLinkEpsId parameter to backend servers. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - 'required' => false, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'ListenerId' => [ - 'description' => 'The listener ID.'."\n", - 'type' => 'string', - 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', - ], - 'JobId' => [ - 'description' => 'The asynchronous task ID.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Conflict.Port', - 'errorMessage' => 'The Port [%s] is conflict.', - ], - [ - 'errorCode' => 'IllegalParam.MssConflictWithUdpAndGeneve', - 'errorMessage' => 'The param of MssConflictWithUdpAndGeneve is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded.%s', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The VpcId is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'ResourceNotEnough.%s', - 'errorMessage' => 'The specified resource of %s is not enough.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'IllegalParam.AnyPortListenerConflictWithNonAnyPortServerGroup', - 'errorMessage' => 'The param of AnyPortListenerConflictWithNonAnyPortServerGroup is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.loadbalancer', - 'errorMessage' => 'The status of loadbalancer [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.Certificate', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'IllegalParam.ServerGroupId', - 'errorMessage' => 'The param of ServerGroupId is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.NonAnyPortListenerConflictWithAnyPortServerGroup', - 'errorMessage' => 'The param of NonAnyPortListenerConflictWithAnyPortServerGroup is illegal.', - ], - [ - 'errorCode' => 'MissingParam.Certificate', - 'errorMessage' => 'The param of certificate is missing.', - ], - [ - 'errorCode' => 'IllegalParam.Port', - 'errorMessage' => 'The param of Port is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded.QuotaInsufficient', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'Mismatch.Protocol', - 'errorMessage' => 'The Protocol is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'ResourceNotEnough.CaCertificateApiCount', - 'errorMessage' => 'The specified resource of CaCertificateApiCount is not enough.', - ], - [ - 'errorCode' => 'MissingParam.ServerGroupId', - 'errorMessage' => 'The param of ServerGroupId is missing.', - ], - [ - 'errorCode' => 'IllegalParam.ListenerDescription', - 'errorMessage' => 'The parameter ListenerDescription of listener is illegal.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IllegalParam.IdleTimeout', - 'errorMessage' => 'The param of IdleTimeout is illegal.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IllegalParamSize.certificateIds', - 'errorMessage' => 'The param size of certificateIds or caCertificateIds is illegal.', - ], - [ - 'errorCode' => 'DuplicatedParam.listener', - 'errorMessage' => 'The param of any port listener is duplicated.', - ], - [ - 'errorCode' => 'IllegalParam.PreserveClientIpSwitch', - 'errorMessage' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.', - ], - [ - 'errorCode' => 'OperationDenied.RegionNotSupportHDMonitor', - 'errorMessage' => 'The operation is not allowed because of RegionNotSupportHDMonitor.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource of vSwitch is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.CaCertificate', - 'errorMessage' => 'The specified resource of CaCertificate is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.HdMonitorConfigNotExist', - 'errorMessage' => 'The specified resource of HdMonitorConfigNotExist is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@80\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n lsn-bp1bpn0kn908w4nbw****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'CreateListener', - ], - 'DeleteListener' => [ - 'summary' => 'Deletes a Network Load Balancer (NLB) listener.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'ListenerId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => 'The listener ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IncorrectStatus.listener', - 'errorMessage' => 'The status of listener [%s] is incorrect.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IncorrectStatus.loadbalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'DeleteListener', - ], - 'StartListener' => [ - 'summary' => 'Enables a Network Load Balancer (NLB) listener.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '141893', - 'abilityTreeNodes' => [ - 'FEATUREslbC68LB1', - 'FEATUREslb4PUXNB', - 'FEATUREslbGDCN1S', - 'FEATUREslbUZZGGD', - ], - ], - 'parameters' => [ - [ - 'name' => 'ListenerId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => 'The listener ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'The operation to enable a listener.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.listener', - 'errorMessage' => 'The status of listener [%s] is incorrect.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - ], - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'StartListener', - ], - 'StopListener' => [ - 'summary' => 'Stops a listener of a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'ListenerId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => 'The listener ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'The operation to disable a listener.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IncorrectStatus.listener', - 'errorMessage' => 'The status of listener [%s] is incorrect.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'StopListener', - ], - 'UpdateListenerAttribute' => [ - 'summary' => 'Updates the attributes of a listener, such as the name and the idle connection timeout period.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '141874', - 'abilityTreeNodes' => [ - 'FEATUREslbC68LB1', - 'FEATUREslb4PUXNB', - 'FEATUREslbGDCN1S', - 'FEATUREslbUZZGGD', - ], - ], - 'parameters' => [ - [ - 'name' => 'ListenerId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => 'The listener ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@443', - ], - ], - [ - 'name' => 'ListenerDescription', - 'in' => 'formData', - 'schema' => [ - 'title' => '监听描述', - 'description' => 'The name of the listener.'."\n" - ."\n" - .'The name must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tcpssl_443', - ], - ], - [ - 'name' => 'ServerGroupId', - 'in' => 'formData', - 'schema' => [ - 'title' => '实服务组', - 'description' => 'The server group ID.'."\n" - ."\n" - .'> '."\n" - ."\n" - .'* If the listener uses **TCP**, you can specify server groups whose protocol is **TCP** or **TCP_UDP**. **UDP** server groups are not supported.'."\n" - ."\n" - .'* If the listener uses **UDP**, you can specify server groups whose protocol is **UDP** or **TCP_UDP**. **TCP** server groups are not supported.'."\n" - ."\n" - .'* If the listener uses **TCPSSL**, you can specify server groups whose protocol is **TCP** and whose **client IP preservation is disabled**. **TCP** server groups for which **client IP preservation is enabled** and server groups whose protocol is **UDP** or **TCP_UDP** are not supported.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-ppdpc14gdm3x4o****', - ], - ], - [ - 'name' => 'SecurityPolicyId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'https监听的安全策略', - 'description' => 'The ID of the security policy.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tls_cipher_policy_1_1', - ], - ], - [ - 'name' => 'CertificateIds', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'server证书列表', - 'description' => 'The server certificate. Only one server certificate is supported.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The server certificate. Only one server certificate is supported.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '12315790212_166f8204689_1714763408_70998****', - ], - 'required' => false, - 'maxItems' => 10, - ], - ], - [ - 'name' => 'CaCertificateIds', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'ca 证书列表', - 'description' => 'The CA certificate. You can specify only one CA certificate.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The CA certificate. You can specify only one CA certificate.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '139a00604ad-cn-east-hangzh****', - ], - 'required' => false, - 'maxItems' => 10, - ], - ], - [ - 'name' => 'CaEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to enable mutual authentication. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'IdleTimeout', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The timeout period for idle connections. Unit: seconds'."\n" - ."\n" - .'* If the listener uses **TCP** or **TCPSSL**, you can set this parameter to a value ranging from **10** to **900**. Default value: **900**'."\n" - .'* If the listener uses **UDP**, you can set this parameter to a value ranging from **10** to **20**. Default value: **20**'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '3600', - 'minimum' => '10', - 'example' => '900', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ProxyProtocolEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to use the Proxy protocol to pass the client IP address to the backend server. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'SecSensorEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to enable fine-grained monitoring. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'AlpnEnabled', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to enable Application-Layer Protocol Negotiation (ALPN). Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'AlpnPolicy', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the ALPN policy. The following are the possible values:'."\n" - ."\n" - .'* **HTTP1Only**: Negotiate only HTTP/1.\\*. The ALPN preference list is HTTP/1.1, HTTP/1.0.'."\n" - .'* **HTTP2Only**: Negotiate only HTTP/2. The ALPN preference list is HTTP/2.'."\n" - .'* **HTTP2Optional**: Prefer HTTP/1.\\* over HTTP/2. The ALPN preference list is HTTP/1.1, HTTP/1.0, HTTP/2.'."\n" - .'* **HTTP2Preferred**: Prefer HTTP/2 over HTTP/1.\\*. The ALPN preference list is HTTP/2, HTTP/1.1, HTTP/1.0.'."\n" - ."\n" - .'> This parameter is required if AlpnEnabled is set to true.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP1Only', - 'enum' => [ - 'HTTP1Only', - 'HTTP2Only', - 'HTTP2Preferred', - 'HTTP2Optional', - ], - ], - ], - [ - 'name' => 'Cps', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The maximum number of new connections per second supported by the listener in each zone (virtual IP address). Valid values: **0** to **1000000**. **0** indicates that the number of connections is unlimited.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10000', - ], - ], - [ - 'name' => 'Mss', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The size of the largest TCP packet segment. Unit: bytes. Valid values: **0** to **1500**. **0** indicates that the maximum segment size (MSS) remains unchanged. This parameter is supported only by TCP listeners and listeners that use SSL over TCP.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '344', - ], - ], - [ - 'name' => 'ProxyProtocolV2Config', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => 'Specifies that the Proxy protocol passes the VpcId, PrivateLinkEpId, and PrivateLinkEpsId parameters to backend servers.'."\n", + 'title' => 'RpcResponse', + 'description' => 'The operation to query the attributes of a listener.', 'type' => 'object', 'properties' => [ - 'Ppv2VpcIdEnabled' => [ - 'description' => 'Specifies whether to use the Proxy protocol to pass the VpcId parameter to backend servers. Valid values:'."\n" + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region where the NLB instance is deployed.', 'type' => 'string', 'title' => '', 'example' => 'cn-hangzhou'], + 'LoadBalancerId' => ['description' => 'The ID of the NLB instance.', 'type' => 'string', 'title' => '', 'example' => 'nlb-83ckzc8d4xlp8o****'], + 'ListenerId' => ['description' => 'The ID of the listener.', 'type' => 'string', 'title' => '', 'example' => 'lsn-bp1bpn0kn908w4nbw****@233'], + 'ListenerProtocol' => ['description' => 'The listening protocol. Valid values: **TCP**, **UDP**, and **TCPSSL**.', 'type' => 'string', 'title' => '', 'example' => 'TCPSSL'], + 'ListenerPort' => ['description' => 'The listening port. Valid values: **0** to **65535**. A value of **0** specifies all ports. If you set the value to **0**, you must also set the **StartPort** and **EndPort** parameters.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '233'], + 'StartPort' => ['description' => 'The first port in the listening port range. Valid values: **0** to **65535**.', 'type' => 'string', 'title' => '', 'example' => '233'], + 'EndPort' => ['description' => 'The last port in the listening port range. Valid values: **0** to **65535**. The number of the last port must be smaller than that of the first port.', 'type' => 'string', 'title' => '', 'example' => '455'], + 'ListenerDescription' => ['description' => 'The name of the listener.'."\n" + ."\n" + .'The name must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).', 'type' => 'string', 'title' => '', 'example' => 'tcpssl_443'], + 'ServerGroupId' => ['title' => 'servergroupId', 'description' => 'The ID of the server group.', 'type' => 'string', 'example' => 'sgp-ppdpc14gdm3x4o****'], + 'IdleTimeout' => ['description' => 'The timeout period of an idle connection. Unit: seconds. Valid values: **1** to **900**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '900'], + 'SecurityPolicyId' => ['description' => 'The ID of the security policy. System security policies and custom security policies are supported.'."\n" + ."\n" + .'- Valid values: **tls\\_cipher\\_policy\\_1\\_0**, **tls\\_cipher\\_policy\\_1\\_1**, **tls\\_cipher\\_policy\\_1\\_2**, **tls\\_cipher\\_policy\\_1\\_2\\_strict**, and **tls\\_cipher\\_policy\\_1\\_2\\_strict\\_with\\_1\\_3**.'."\n" + ."\n" + .'- Custom security policy: the ID of the custom security policy.'."\n" + ."\n" + .' - For more information about how to create a custom security policy, see [CreateSecurityPolicy](~~2399231~~) .'."\n" + ."\n" + .' - For more information about how to query security policies, see [ListSecurityPolicy](~~2399234~~) .'."\n" + ."\n" + .'> This parameter takes effect only for listeners that use SSL over TCP.', 'type' => 'string', 'title' => '', 'example' => 'tls_cipher_policy_1_0'], + 'CertificateIds' => [ + 'title' => '', + 'description' => 'The server certificates. Only one server certificate is supported.'."\n" ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + .'> This parameter takes effect only for listeners that use SSL over TCP.', + 'type' => 'array', + 'items' => ['description' => 'The server certificates.', 'type' => 'string', 'example' => '123157******', 'title' => ''], + 'example' => '', ], - 'Ppv2PrivateLinkEpIdEnabled' => [ - 'description' => 'Specifies whether to use the Proxy protocol to pass the PrivateLinkEpId parameter to backend servers. Valid values:'."\n" + 'CaCertificateIds' => [ + 'title' => '', + 'description' => 'The CA certificates. Only one CA certificate is supported.'."\n" ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'Ppv2PrivateLinkEpsIdEnabled' => [ - 'description' => 'Specifies whether to use the Proxy protocol to pass the PrivateLinkEpsId parameter to backend servers. Valid values:'."\n" + .'> This parameter takes effect only for listeners that use SSL over TCP.', + 'type' => 'array', + 'items' => ['description' => 'The CA certificates. Only one CA certificate is supported.'."\n" ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - 'required' => false, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'Updates listener configurations.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + .'> This parameter takes effect only for listeners that use SSL over TCP.', 'type' => 'string', 'example' => '139a00******', 'title' => ''], + 'example' => '', ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The VpcId is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'Conflict.Port', - 'errorMessage' => 'The Port [%s] is conflict.', - ], - [ - 'errorCode' => 'ResourceNotFound.Certificate', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.listener', - 'errorMessage' => 'The status of listener [%s] is incorrect.', - ], - [ - 'errorCode' => 'IdempotenceSignatureMismatch', - 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.Certificate', - 'errorMessage' => 'The specified resource %s is already associated.', - ], - [ - 'errorCode' => 'IllegalParamSize.certificateIds', - 'errorMessage' => 'The param size of certificateIds or caCertificateIds is illegal.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam.IdleTimeout', - 'errorMessage' => 'The param of IdleTimeout is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.RegionNotSupportHDMonitor', - 'errorMessage' => 'The operation is not allowed because of RegionNotSupportHDMonitor.', - ], - [ - 'errorCode' => 'ResourceNotEnough.CaCertificateApiCount', - 'errorMessage' => 'The specified resource of CaCertificateApiCount is not enough.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.HdMonitorConfigNotExist', - 'errorMessage' => 'The specified resource of HdMonitorConfigNotExist is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.CaCertificate', - 'errorMessage' => 'The specified resource of CaCertificate is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.securitypolicy', - 'errorMessage' => 'The specified resource of securitypolicy is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'UpdateListenerAttribute', - ], - 'ListListeners' => [ - 'summary' => 'Queries listeners added to a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '141890', - 'abilityTreeNodes' => [ - 'FEATUREslbC68LB1', - 'FEATUREslb4PUXNB', - 'FEATUREslbGDCN1S', - ], - ], - 'parameters' => [ - [ - 'name' => 'ListenerIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '监听唯一标识', - 'description' => 'The listener IDs. You can specify up to 20 listeners.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The listener ID. You can specify up to 20 listeners.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@443', - ], - 'required' => false, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'LoadBalancerIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '负载均衡实例标识', - 'description' => 'The IDs of the NLB instances. You can specify up to 20 instances.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the NLB instance. You can specify up to 20 instances.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'required' => false, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'ListenerProtocol', - 'in' => 'query', - 'schema' => [ - 'title' => '监听协议', - 'description' => 'The listener protocol. Valid values: **TCP**, **UDP**, and **TCPSSL**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TCPSSL', - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. You can specify up to 20 tags. The tag key cannot be an empty string.'."\n" + 'CaEnabled' => ['description' => 'Indicates whether mutual authentication is enabled. Valid values:'."\n" + ."\n" + .'- **true**: yes'."\n" + ."\n" + .'- **false**: no', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'AlpnEnabled' => ['description' => 'Indicates whether Application-Layer Protocol Negotiation (ALPN) is enabled. Valid values:'."\n" + ."\n" + .'- **true**: yes'."\n" + ."\n" + .'- **false**: no', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'AlpnPolicy' => ['description' => 'The ALPN policy. Valid values:'."\n" + ."\n" + .'- **HTTP1Only**'."\n" + ."\n" + .'- **HTTP2Only**'."\n" + ."\n" + .'- **HTTP2Preferred**'."\n" + ."\n" + .'- **HTTP2Optional**', 'type' => 'string', 'example' => 'HTTP1Only', 'title' => ''], + 'ProxyProtocolEnabled' => ['description' => 'Indicates whether the Proxy protocol is used to pass client IP addresses to backend servers. Valid values:'."\n" + ."\n" + .'- **true**: yes'."\n" + ."\n" + .'- **false**: no', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'ProxyProtocolV2Config' => [ + 'description' => 'Indicates whether the Proxy protocol passes the VpcId, PrivateLinkEpId, and PrivateLinkEpsId parameters to backend servers.', + 'type' => 'object', + 'properties' => [ + 'Ppv2VpcIdEnabled' => ['description' => 'Indicates whether the Proxy protocol passes the VpcId parameter to backend servers. Valid values:'."\n" ."\n" - .'It can be up to 64 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => 'The value of the tag. You can specify up to 20 tags. The tag value can be an empty string.'."\n" + .'- **true**'."\n" ."\n" - .'It can be up to 128 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'product', + .'- **false**', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'Ppv2PrivateLinkEpIdEnabled' => ['description' => 'Indicates whether the Proxy protocol passes the PrivateLinkEpId parameter to backend servers. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'Ppv2PrivateLinkEpsIdEnabled' => ['description' => 'Indicates whether the Proxy protocol passes the PrivateLinkEpsId parameter to backend servers. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'false', 'title' => ''], ], + 'title' => '', + 'example' => '', + ], + 'SecSensorEnabled' => ['description' => 'Indicates whether fine-grained monitoring is enabled. Valid values:'."\n" + ."\n" + .'- **true**: yes'."\n" + ."\n" + .'- **false**: no', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'ListenerStatus' => ['description' => 'The status of the listener. Valid values:'."\n" + ."\n" + .'- **Provisioning**: The listener is being created.'."\n" + ."\n" + .'- **Running**: The listener is running.'."\n" + ."\n" + .'- **Configuring**: The listener is being configured.'."\n" + ."\n" + .'- **Stopping**: The listener is being stopped.'."\n" + ."\n" + .'- **Stopped**: The listener is stopped.'."\n" + ."\n" + .'- **Starting**: The listener is being started.'."\n" + ."\n" + .'- **Deleting**: The listener is being deleted.'."\n" + ."\n" + .'- **Deleted**: The listener is deleted.', 'type' => 'string', 'example' => 'Running', 'title' => ''], + 'Cps' => ['description' => 'The maximum number of new connections per second supported by the listener in each zone (virtual IP address). Valid values: **0** to **1000000**. **0** indicates that the number of connections is unlimited.', 'type' => 'integer', 'format' => 'int32', 'example' => '1000', 'title' => ''], + 'Mss' => ['description' => 'The size of the largest TCP segment. Unit: bytes. Valid values: **0** to **1500**. **0** specifies that the maximum segment size remains unchanged.'."\n" + ."\n" + .'> This parameter is supported only by listeners that use SSL over TCP.', 'type' => 'integer', 'format' => 'int32', 'example' => '166', 'title' => ''], + 'Tags' => [ + 'description' => 'The tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tags for the execution.', + 'type' => 'object', + 'properties' => [ + 'TagKey' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'ac-cus-tag-4', 'title' => ''], + 'TagValue' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'ON', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], - 'required' => false, ], - 'required' => false, - 'maxItems' => 20, - 'minItems' => 1, + 'example' => '', ], ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token used to specify a particular page of results. Valid values:'."\n" - ."\n" - .'* Leave this parameter empty for the first query or the only query.'."\n" - .'* Set this parameter to the value of NextToken obtained from the previous query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], + ], + ], + 'title' => 'GetListenerAttribute', + 'summary' => 'Queries the details of a Network Load Balancer (NLB) listener.', + 'changeSet' => [ + ['createdAt' => '2024-02-04T05:53:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-12T07:39:01.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-11-27T08:27:56.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2023-10-10T08:16:48.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-12T02:58:38.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-29T02:29:28.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-09-13T07:30:44.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-09-13T07:30:44.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-06T07:08:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-04T03:05:33.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-29T09:24:43.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-18T09:52:57.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-18T09:39:00.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:31.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetListenerAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetListenerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@233\\",\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ListenerPort\\": 233,\\n \\"StartPort\\": \\"233\\",\\n \\"EndPort\\": \\"455\\",\\n \\"ListenerDescription\\": \\"tcpssl_443\\",\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"IdleTimeout\\": 900,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_0\\",\\n \\"CertificateIds\\": [\\n \\"123157******\\"\\n ],\\n \\"CaCertificateIds\\": [\\n \\"139a00******\\"\\n ],\\n \\"CaEnabled\\": false,\\n \\"AlpnEnabled\\": false,\\n \\"AlpnPolicy\\": \\"HTTP1Only\\",\\n \\"ProxyProtocolEnabled\\": false,\\n \\"ProxyProtocolV2Config\\": {\\n \\"Ppv2VpcIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpsIdEnabled\\": false\\n },\\n \\"SecSensorEnabled\\": false,\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"Cps\\": 1000,\\n \\"Mss\\": 166,\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"ac-cus-tag-4\\",\\n \\"TagValue\\": \\"ON\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'GetListenerHealthStatus' => [ + 'summary' => 'Queries the health check status of a Network Load Balancer (NLB) listener.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return in each call. Valid values: **1** to **100**. Default value: **20**'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '142934', + 'abilityTreeNodes' => ['FEATUREslbL239O5', 'FEATUREslbVDXH6N'], + ], + 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ListenerId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the listener on the NLB instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', 'title' => ''], ], [ - 'name' => 'SecSensorEnabled', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable fine-grained monitoring. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'The operation to query listeners.'."\n", + 'title' => 'RpcResponse', + 'description' => 'The health check status of the listener.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'Listeners' => [ - 'description' => 'The listeners.'."\n", + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'ListenerHealthStatus' => [ + 'description' => 'The health check status of the server group of the listener.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The listeners.'."\n", + 'description' => 'The health check status of the server group of the listener.'."\n", 'type' => 'object', 'properties' => [ - 'Tags' => [ - 'description' => 'A list of tags.'."\n", + 'ListenerId' => ['description' => 'The ID of the listener of the NLB instance.'."\n", 'type' => 'string', 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', 'title' => ''], + 'ListenerPort' => ['description' => 'The listening port.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '80', 'title' => ''], + 'ListenerProtocol' => ['description' => 'The listening protocol. Valid values: **TCP**, **UDP**, and **TCPSSL**.'."\n", 'type' => 'string', 'example' => 'TCPSSL', 'title' => ''], + 'ServerGroupInfos' => [ + 'description' => 'The information about the server groups.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'A list of tags.'."\n", + 'description' => 'The information about the server group.'."\n", 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'TF', - ], - ], - ], - ], - 'LoadBalancerId' => [ - 'description' => 'The CLB instance ID.'."\n", - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'ListenerId' => [ - 'title' => '自己生成后赋值', - 'description' => 'The listener ID.'."\n", - 'type' => 'string', - 'example' => 'lsn-ga6sjjcll6ou34l1et****', - ], - 'ListenerProtocol' => [ - 'title' => '监听协议 (TCP, UDP, TCPSSL, GENEVE)', - 'description' => 'The listener protocol. Valid values: **TCP**, **UDP**, and **TCPSSL**.'."\n", - 'type' => 'string', - 'example' => 'TCPSSL', - ], - 'ListenerPort' => [ - 'title' => '监听端口', - 'description' => 'The information about the listener port of your server.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '443', - ], - 'StartPort' => [ - 'title' => 'anyPort监听起始端口', - 'description' => 'The first port in the listener port range.'."\n", - 'type' => 'string', - 'example' => '233', - ], - 'EndPort' => [ - 'title' => 'anyPort监听结束端口', - 'description' => 'The last port in the listener port range.'."\n", - 'type' => 'string', - 'example' => '455', - ], - 'ListenerDescription' => [ - 'title' => '监听描述', - 'description' => 'The name of the listener.'."\n" - ."\n" - .'The name must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).'."\n", - 'type' => 'string', - 'example' => 'tcpssl_443', - ], - 'ServerGroupId' => [ - 'title' => 'servergroupId', - 'description' => 'The server group ID.'."\n", - 'type' => 'string', - 'example' => 'sgp-ppdpc14gdm3x4o****', - ], - 'IdleTimeout' => [ - 'title' => '空闲超时时间', - 'description' => 'The timeout period of idle connections. Unit: seconds. Valid values: **1** to **900**. Default value: **900**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '900', - ], - 'SecurityPolicyId' => [ - 'title' => 'Tclssl监听的安全策略', - 'description' => 'The ID of the security policy.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", - 'type' => 'string', - 'example' => 'tls_cipher_policy_1_1', - ], - 'CertificateIds' => [ - 'title' => 'server证书列表', - 'description' => 'The server certificate.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The server certificate.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", - 'type' => 'string', - 'example' => '12315790212_166f8204689_1714763408_70998****', - ], - ], - 'CaCertificateIds' => [ - 'title' => 'ca 证书列表', - 'description' => 'A list of CA certificates.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'A list of CA certificates.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", - 'type' => 'string', - 'example' => '139a00604ad-cn-east-hangzh****', - ], - ], - 'CaEnabled' => [ - 'description' => 'Indicates whether mutual authentication is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'ListenerStatus' => [ - 'description' => 'The status of the listener. Valid values:'."\n" - ."\n" - .'* **Provisioning**: The listener is being created.'."\n" - .'* **Running**: The listener is running.'."\n" - .'* **Configuring**: The listener is being configured.'."\n" - .'* **Stopping**: The listener is being stopped.'."\n" - .'* **Stopped**: The listener is stopped.'."\n" - .'* **Starting**: The listener is being started.'."\n" - .'* **Deleting**: The listener is being deleted.'."\n" - .'* **Deleted**: The listener is deleted.'."\n", - 'type' => 'string', - 'example' => 'Running', - ], - 'RegionId' => [ - 'title' => '业务location', - 'description' => 'The region ID of the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'AlpnEnabled' => [ - 'description' => 'Indicates whether Application-Layer Protocol Negotiation (ALPN) is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'AlpnPolicy' => [ - 'description' => 'The ALPN policy. Valid values:'."\n" - ."\n" - .'* **HTTP1Only**'."\n" - .'* **HTTP2Only**'."\n" - .'* **HTTP2Preferred**'."\n" - .'* **HTTP2Optional**'."\n", - 'type' => 'string', - 'example' => 'HTTP1Only', - ], - 'SecSensorEnabled' => [ - 'description' => 'Indicates whether fine-grained monitoring is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'ProxyProtocolEnabled' => [ - 'description' => 'Indicates whether the Proxy protocol passes source client IP addresses to backend servers. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'ProxyProtocolV2Config' => [ - 'description' => 'Indicates whether the Proxy protocol passes the VpcId, PrivateLinkEpId, and PrivateLinkEpsId parameters to backend servers.'."\n", - 'type' => 'object', - 'properties' => [ - 'Ppv2VpcIdEnabled' => [ - 'description' => 'Indicates whether the Proxy protocol passes the VpcId parameter to backend servers. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Ppv2PrivateLinkEpIdEnabled' => [ - 'description' => 'Indicates whether the Proxy protocol passes the PrivateLinkEpId parameter to backend servers. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Ppv2PrivateLinkEpsIdEnabled' => [ - 'description' => 'Indicates whether the Proxy protocol passes the PrivateLinkEpsId parameter to backend servers. Valid values:'."\n" + 'HeathCheckEnabled' => ['description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n" ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', + .'* **true**: enabled'."\n" + .'* **false**: disabled'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'ServerGroupId' => ['description' => 'The ID of the server group.'."\n", 'type' => 'string', 'example' => 'sgp-ppdpc14gdm3x4o****', 'title' => ''], + 'NonNormalServers' => [ + 'description' => 'A list of unhealthy backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'A list of unhealthy backend servers.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The health check status. Valid values:'."\n" + ."\n" + .'* **Initial**: indicates that health checks are configured for the NLB instance, but no data was found.'."\n" + .'* **Unhealthy**: indicates that the backend server consecutively fails health checks.'."\n" + .'* **Unavailable**: indicates that health checks are disabled.', 'type' => 'string', 'example' => 'Initial', 'title' => ''], + 'Port' => ['description' => 'The backend port.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '80', 'title' => ''], + 'Reason' => [ + 'description' => 'The cause of the health check failure.'."\n", + 'type' => 'object', + 'properties' => [ + 'ReasonCode' => ['description' => 'The reason why the **status** is abnormal. Valid values:'."\n" + ."\n" + .'* **CONNECT_TIMEOUT**: The NLB instance failed to connect to the backend server within the specified period of time.'."\n" + .'* **CONNECT_FAILED**: The NLB instance failed to connect to the backend server.'."\n" + .'* **RECV_RESPONSE_TIMEOUT**: The NLB instance failed to receive a response from the backend server within the specified period of time.'."\n" + .'* **CONNECT_INTERRUPT**: The connection between the health check and the backend servers was interrupted.'."\n" + .'* **HTTP_CODE_NOT_MATCH**: The HTTP status code from the backend servers was not the expected one.'."\n" + .'* **HTTP_INVALID_HEADER**: The format of the response from the backend servers is invalid.'."\n", 'type' => 'string', 'example' => 'CONNECT_TIMEOUT', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'ServerId' => ['description' => 'The ID of the backend server.'."\n", 'type' => 'string', 'example' => 'i-bp1bt75jaujl7tjl****', 'title' => ''], + 'ServerIp' => ['description' => 'The IP address of the backend server.'."\n", 'type' => 'string', 'example' => '192.168.8.10', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], ], + 'title' => '', + 'example' => '', ], - ], - 'Cps' => [ - 'description' => 'The maximum number of new connections per second supported by the listener in each zone (virtual IP address). Valid values: **0** to **1000000**. **0** indicates that the number of connections is unlimited.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'Mss' => [ - 'description' => 'The size of the largest TCP packet segment. Unit: bytes. Valid values: **0** to **1500**. **0** indicates that the Mss value of TCP packets remains unchanged.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'NextToken' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, it indicates that no next query is to be sent.'."\n" - .'* If a value of **NextToken** is returned, the value is the token used for the next query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'TotalCount' => ['description' => 'The number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'NextToken' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'- If **NextToken** is empty, it indicates that no next query is to be sent.'."\n" + .'- If a value of **NextToken** is returned, the value is the token used for the next query.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], + [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], + ], + ], + 'title' => 'GetListenerHealthStatus', + 'changeSet' => [ + ['createdAt' => '2024-08-16T10:10:46.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-10-10T08:16:48.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-09T11:30:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-13T03:48:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-08T10:17:27.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-29T09:24:50.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetListenerHealthStatus'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetListenerHealthStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Listeners\\": [\\n {\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Created\\",\\n \\"Value\\": \\"TF\\"\\n }\\n ],\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"ListenerId\\": \\"lsn-ga6sjjcll6ou34l1et****\\",\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ListenerPort\\": 443,\\n \\"StartPort\\": \\"233\\",\\n \\"EndPort\\": \\"455\\",\\n \\"ListenerDescription\\": \\"tcpssl_443\\",\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"IdleTimeout\\": 900,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_1\\",\\n \\"CertificateIds\\": [\\n \\"123157******\\"\\n ],\\n \\"CaCertificateIds\\": [\\n \\"139a00******\\"\\n ],\\n \\"CaEnabled\\": false,\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"AlpnEnabled\\": false,\\n \\"AlpnPolicy\\": \\"HTTP1Only\\",\\n \\"SecSensorEnabled\\": false,\\n \\"ProxyProtocolEnabled\\": false,\\n \\"ProxyProtocolV2Config\\": {\\n \\"Ppv2VpcIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpsIdEnabled\\": false\\n },\\n \\"Cps\\": 1000,\\n \\"Mss\\": 200\\n }\\n ],\\n \\"TotalCount\\": 4,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n \\n nlb-83ckzc8d4xlp8o****\\n lsn-ga6sjjcll6ou34l1et****\\n TCPSSL\\n 443\\n 233\\n 455\\n tcpssl_443\\n sgp-ppdpc14gdm3x4o****\\n 900\\n tls_cipher_policy_1_1\\n 12315790212_166f8204689_1714763408_70998****\\n 139a00604ad-cn-east-hangzh****\\n false\\n Running\\n cn-hangzhou\\n false\\n ALPN\\n false\\n false\\n 1000\\n 200\\n \\n 4\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 20\\n","errorExample":""}]', - 'title' => 'ListListeners', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ListenerHealthStatus\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@80\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HeathCheckEnabled\\": true,\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Status\\": \\"Initial\\",\\n \\"Port\\": 80,\\n \\"Reason\\": {\\n \\"ReasonCode\\": \\"CONNECT_TIMEOUT\\"\\n },\\n \\"ServerId\\": \\"i-bp1bt75jaujl7tjl****\\",\\n \\"ServerIp\\": \\"192.168.8.10\\"\\n }\\n ]\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n \\n lsn-agkd9gmjx8nd85jjs0****\\n 80\\n TCPSSL\\n \\n true\\n sgp-ppdpc14gdm3x4o****\\n \\n Initial\\n 80\\n \\n RESPONSE_MISMATCH\\n \\n i-bp1bt75jaujl7tjl****\\n 192.168.8.10\\n \\n \\n \\n 10\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 20\\n","errorExample":""}]', ], - 'GetListenerAttribute' => [ - 'summary' => 'Queries the details of a Network Load Balancer (NLB) listener.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetLoadBalancerAttribute' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5904,304 +3603,228 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREslbC68LB1', - 'FEATUREslb4PUXNB', - 'FEATUREslbGDCN1S', - 'FEATUREslbUZZGGD', - ], + 'abilityTreeNodes' => ['FEATUREslbZQW9H1'], ], 'parameters' => [ [ - 'name' => 'ListenerId', + 'name' => 'LoadBalancerId', 'in' => 'query', - 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => 'The listener ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@233', - ], + 'schema' => ['description' => 'The NLB instance ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: prechecks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must ensure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'The operation to query the attributes of a listener.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'RegionId' => [ - 'title' => '业务location', - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'LoadBalancerId' => [ - 'title' => '列表id', - 'description' => 'The ID of the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - 'ListenerId' => [ - 'title' => '监听id', - 'description' => 'The ID of the listener.'."\n", - 'type' => 'string', - 'example' => 'lsn-bp1bpn0kn908w4nbw****@233', - ], - 'ListenerProtocol' => [ - 'title' => '监听协议 (TCP, UDP, TCPSSL, GENEVE)', - 'description' => 'The listening protocol. Valid values: **TCP**, **UDP**, and **TCPSSL**.'."\n", - 'type' => 'string', - 'example' => 'TCPSSL', - ], - 'ListenerPort' => [ - 'title' => '监听端口', - 'description' => 'The listening port. Valid values: **0** to **65535**. A value of **0** specifies all ports. If you set the value to **0**, you must also set the **StartPort** and **EndPort** parameters.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '233', - ], - 'StartPort' => [ - 'title' => 'anyPort监听起始端口', - 'description' => 'The first port in the listening port range. Valid values: **0** to **65535**.'."\n", - 'type' => 'string', - 'example' => '233', - ], - 'EndPort' => [ - 'title' => 'anyPort监听结束端口', - 'description' => 'The last port in the listening port range. Valid values: **0** to **65535**. The number of the last port must be smaller than that of the first port.'."\n", - 'type' => 'string', - 'example' => '455', - ], - 'ListenerDescription' => [ - 'title' => '监听描述', - 'description' => 'The name of the listener.'."\n" - ."\n" - .'The name must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).'."\n", - 'type' => 'string', - 'example' => 'tcpssl_443', - ], - 'ServerGroupId' => [ - 'title' => 'servergroupId', - 'description' => 'The ID of the server group.'."\n", - 'type' => 'string', - 'example' => 'sgp-ppdpc14gdm3x4o****', - ], - 'IdleTimeout' => [ - 'title' => '空闲超时时间', - 'description' => 'The timeout period of an idle connection. Unit: seconds. Valid values: **1** to **900**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '900', - ], - 'SecurityPolicyId' => [ - 'title' => 'Tclssl监听的安全策略', - 'description' => 'The ID of the security policy. System security policies and custom security policies are supported.'."\n" - ."\n" - .'- Valid values: **tls_cipher_policy\\_1\\_0**, **tls_cipher_policy\\_1\\_1**, **tls_cipher_policy\\_1\\_2**, **tls_cipher_policy\\_1\\_2\\_strict**, and **tls_cipher_policy\\_1\\_2\\_strict_with\\_1\\_3**.'."\n" - ."\n" - .'- Custom security policy: the ID of the custom security policy.'."\n" - .' - For more information about how to create a custom security policy, see [CreateSecurityPolicy](~~2399231~~) .'."\n" - ."\n" - .' - For more information about how to query security policies, see [ListSecurityPolicy](~~2399234~~) .'."\n" - ."\n\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.', - 'type' => 'string', - 'example' => 'tls_cipher_policy_1_0', - ], - 'CertificateIds' => [ - 'title' => 'server证书列表', - 'description' => 'The server certificates. Only one server certificate is supported.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'response', + 'description' => 'response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the NLB instance.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'LoadBalancerId' => ['description' => 'The NLB instance ID.'."\n", 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], + 'LoadBalancerName' => ['description' => 'The NLB instance name.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", 'type' => 'string', 'example' => 'NLB1', 'title' => ''], + 'LoadBalancerType' => ['description' => 'The type of the Server Load Balancer (SLB) instance. Set the value to **network**, which specifies NLB.'."\n", 'type' => 'string', 'example' => 'network', 'title' => ''], + 'AddressType' => ['description' => 'The IPv4 network type of the NLB instance. Valid values:'."\n" + ."\n" + .'* **Internet** The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.'."\n" + .'* **Intranet** The domain name of the NLB instance is resolved to the private IP address. Therefore, the NLB instance can be accessed over the VPC in which the NLB instance is deployed.'."\n", 'type' => 'string', 'example' => 'Internet', 'title' => ''], + 'AddressIpVersion' => ['description' => 'The protocol version. Valid values:'."\n" + ."\n" + .'* **ipv4**: IPv4'."\n" + .'* **DualStack**: dual stack'."\n", 'type' => 'string', 'example' => 'ipv4', 'title' => ''], + 'Ipv6AddressType' => ['description' => 'The IPv6 network type of the NLB instance. Valid values:'."\n" + ."\n" + .'* **Internet**: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.'."\n" + .'* **Intranet**: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. In this case, the NLB instance can be accessed over the VPC where the NLB instance is deployed.'."\n", 'type' => 'string', 'example' => 'Internet', 'title' => ''], + 'LoadBalancerStatus' => ['description' => 'The NLB instance status. Valid values:'."\n" + ."\n" + .'* **Inactive**: The NLB instance is disabled. The listeners of NLB instances in the Inactive state do not forward traffic.'."\n" + .'* **Active**: The NLB instance is running.'."\n" + .'* **Provisioning**: The NLB instance is being created.'."\n" + .'* **Configuring**: The NLB instance is being modified.'."\n" + .'* **CreateFailed**: The system failed to create the NLB instance. In this case, you are not charged for the NLB instance. You can only delete the NLB instance.'."\n", 'type' => 'string', 'example' => 'Active', 'title' => ''], + 'LoadBalancerBusinessStatus' => ['description' => 'The status of workloads on the NLB instance. Valid values:'."\n" + ."\n" + .'* **Abnormal**'."\n" + .'* **Normal**'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'OperationLocks' => [ + 'title' => '', + 'description' => 'The information about the locked NLB instance. This parameter is returned only when `LoadBalancerBussinessStatus` is **Abnormal**.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The server certificates.'."\n", - 'type' => 'string', - 'example' => '12315790212_166f8204689_1714763408_70998****', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'LockType' => ['description' => 'The type of the lock. Valid values:'."\n" + ."\n" + .'* **SecurityLocked**: The NLB instance is locked due to security reasons.'."\n" + .'* **RelatedResourceLocked**: The NLB instance is locked due to other resources associated with the NLB instance.'."\n" + .'* **FinancialLocked**: The NLB instance is locked due to overdue payments.'."\n" + .'* **ResidualLocked**: The NLB instance is locked because the associated resources have overdue payments and the resources are released.'."\n", 'type' => 'string', 'example' => 'SecurityLocked', 'title' => ''], + 'LockReason' => ['description' => 'The reason why the NLB instance is locked.'."\n", 'type' => 'string', 'example' => 'security', 'title' => ''], + ], + 'title' => '', ], ], - 'CaCertificateIds' => [ - 'title' => 'ca 证书列表', - 'description' => 'The CA certificates. Only one CA certificate is supported.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", + 'VpcId' => ['description' => 'The VPC ID of the NLB instance.'."\n", 'type' => 'string', 'example' => 'vpc-bp1b49rqrybk45nio****', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the NLB instance was created. This value is a UNIX timestamp.'."\n" + ."\n" + .'Unit: milliseconds.', 'type' => 'string', 'example' => '2022-07-02T02:49:05Z', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.'."\n", 'type' => 'string', 'example' => 'rg-atstuj3rtop****', 'title' => ''], + 'DNSName' => ['description' => 'The domain name of the NLB instance.'."\n", 'type' => 'string', 'example' => 'nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com', 'title' => ''], + 'ZoneMappings' => [ + 'description' => 'The list of zones and vSwitches in the zones. You must specify 2 to 10 zones.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The CA certificates. Only one CA certificate is supported.'."\n" - ."\n" - .'> This parameter takes effect only for listeners that use SSL over TCP.', - 'type' => 'string', - 'example' => '139a00604ad-cn-east-hangzh****', + 'description' => 'The mappings between zones and vSwitches. You must add at least two zones. You can add a maximum of 10 zones.'."\n", + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => 'The ID of the vSwitch in the zone. By default, each zone contains one vSwitch and one subnet.'."\n", 'type' => 'string', 'example' => 'vsw-bp1rmcrwg3erh1fh8****', 'title' => ''], + 'ZoneId' => ['description' => 'The ID of the zone. You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-a', 'title' => ''], + 'LoadBalancerAddresses' => [ + 'description' => 'The information about the IP addresses used by the NLB instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'EniId' => ['description' => 'The ID of the elastic network interface (ENI).'."\n", 'type' => 'string', 'example' => 'eni-bp12f1xhs5yal61a****', 'title' => ''], + 'PrivateIPv4Address' => ['title' => '', 'description' => 'The private IPv4 address of the NLB instance.'."\n", 'type' => 'string', 'example' => '192.168.3.32'], + 'AllocationId' => ['title' => '', 'description' => 'The ID of the elastic IP address (EIP).'."\n", 'type' => 'string', 'example' => 'eip-bp1aedxso6u80u0qf****'], + 'PublicIPv4Address' => ['title' => '', 'description' => 'The public IPv4 address of the NLB instance.'."\n", 'type' => 'string', 'example' => '120.XX.XX.69'], + 'Ipv6Address' => ['description' => 'The IPv6 address of the NLB instance.'."\n", 'type' => 'string', 'example' => '2001:db8:1:1:1:1:1:1', 'title' => ''], + 'PrivateIPv4HcStatus' => ['description' => 'The health status of the private IPv4 address of the NLB instance. Valid values:'."\n" + ."\n" + .'* **Healthy**'."\n" + .'* **Unhealthy**'."\n" + ."\n" + .'> This parameter is returned only when the **Status** of the zone is **Active**.'."\n", 'type' => 'string', 'example' => 'Healthy', 'title' => ''], + 'PrivateIPv6HcStatus' => ['description' => 'The health status of the IPv6 address of the NLB instance. Valid values:'."\n" + ."\n" + .'* **Healthy**'."\n" + .'* **Unhealthy**'."\n" + ."\n" + .'> This parameter is returned only when the **Status** of the zone is **Active**.'."\n", 'type' => 'string', 'example' => 'Healthy', 'title' => ''], + 'Ipv4LocalAddresses' => [ + 'description' => 'The IPv4 link-local addresses. The IP addresses that the NLB instance uses to communicate with the backend servers.', + 'type' => 'array', + 'items' => ['description' => 'The IPv4 link-local address.', 'type' => 'string', 'example' => '192.168.36.16', 'title' => ''], + 'title' => '', + ], + 'Ipv6LocalAddresses' => [ + 'description' => 'The IPv6 link-local addresses. The IP addresses that the NLB instance uses to communicate with the backend servers.', + 'type' => 'array', + 'items' => ['description' => 'The IPv6 link-local address.', 'type' => 'string', 'example' => '2408:4005:357:ba00:64a2:221f:5685:8854', 'title' => ''], + 'title' => '', + ], + ], + 'title' => '', + ], + 'title' => '', + ], + 'Status' => ['description' => 'The zone status. Valid values:'."\n" + ."\n" + .'* **Active**: The zone is available.'."\n" + .'* **Stopped**: The zone is disabled. You can set the zone to this status only by using Cloud Architect Design Tools (CADT).'."\n" + .'* **Shifted**: The DNS record is removed.'."\n" + .'* **Starting**: The zone is being enabled. You can set the zone to this status only by using CADT.'."\n" + .'* **Stopping** You can set the zone to this status only by using CADT.'."\n", 'type' => 'string', 'example' => 'Active', 'title' => ''], + ], + 'title' => '', ], + 'title' => '', ], - 'CaEnabled' => [ - 'description' => 'Indicates whether mutual authentication is enabled. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'AlpnEnabled' => [ - 'description' => 'Indicates whether Application-Layer Protocol Negotiation (ALPN) is enabled. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'AlpnPolicy' => [ - 'description' => 'The ALPN policy. Valid values:'."\n" - ."\n" - .'* **HTTP1Only**'."\n" - .'* **HTTP2Only**'."\n" - .'* **HTTP2Preferred**'."\n" - .'* **HTTP2Optional**'."\n", - 'type' => 'string', - 'example' => 'HTTP1Only', - ], - 'ProxyProtocolEnabled' => [ - 'description' => 'Indicates whether the Proxy protocol is used to pass client IP addresses to backend servers. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'false', + 'BandwidthPackageId' => ['description' => 'The ID of the EIP bandwidth plan.'."\n", 'type' => 'string', 'example' => 'cbwp-bp1vevu8h3ieh****', 'title' => ''], + 'SecurityGroupIds' => [ + 'description' => 'The ID of the security group associated with the NLB instance.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the security group associated with the NLB instance.'."\n", 'type' => 'string', 'example' => 'sg-bp10uag3q0jkxu72****', 'title' => ''], + 'title' => '', ], - 'ProxyProtocolV2Config' => [ - 'description' => 'Indicates whether the Proxy protocol passes the VpcId, PrivateLinkEpId, and PrivateLinkEpsId parameters to backend servers.'."\n", + 'CrossZoneEnabled' => ['description' => 'Indicates whether the NLB instance is accessible across zones. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'LoadBalancerBillingConfig' => [ + 'title' => '', + 'description' => 'The billing information of the NLB instance.'."\n", 'type' => 'object', 'properties' => [ - 'Ppv2VpcIdEnabled' => [ - 'description' => 'Indicates whether the Proxy protocol passes the VpcId parameter to backend servers. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Ppv2PrivateLinkEpIdEnabled' => [ - 'description' => 'Indicates whether the Proxy protocol passes the PrivateLinkEpId parameter to backend servers. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Ppv2PrivateLinkEpsIdEnabled' => [ - 'description' => 'Indicates whether the Proxy protocol passes the PrivateLinkEpsId parameter to backend servers. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], + 'PayType' => ['title' => '', 'description' => 'The billing method of the NLB instance. Set the value to **PostPay**, which specifies the pay-as-you-go billing method.'."\n", 'type' => 'string', 'example' => 'PostPay', 'default' => 'PostPay'], ], ], - 'SecSensorEnabled' => [ - 'description' => 'Indicates whether fine-grained monitoring is enabled. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'ListenerStatus' => [ - 'description' => 'The status of the listener. Valid values:'."\n" - ."\n" - .'* **Provisioning**: The listener is being created.'."\n" - .'* **Running**: The listener is running.'."\n" - .'* **Configuring**: The listener is being configured.'."\n" - .'* **Stopping**: The listener is being stopped.'."\n" - .'* **Stopped**: The listener is stopped.'."\n" - .'* **Starting**: The listener is being started.'."\n" - .'* **Deleting**: The listener is being deleted.'."\n" - .'* **Deleted**: The listener is deleted.'."\n", - 'type' => 'string', - 'example' => 'Running', - ], - 'Cps' => [ - 'description' => 'The maximum number of new connections per second supported by the listener in each zone (virtual IP address). Valid values: **0** to **1000000**. **0** indicates that the number of connections is unlimited.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', + 'Cps' => ['description' => 'The maximum number of new connections per second supported by the NLB instance in each zone (virtual IP address). Valid values: **0** to **1000000**.'."\n" + ."\n" + .'**0** indicates that the number of connections is unlimited.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'DeletionProtectionConfig' => [ + 'description' => 'The configuration of the deletion protection feature.'."\n", + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['description' => 'Specifies whether to enable deletion protection. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false** (default): no'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Reason' => ['description' => 'The reason why the deletion protection feature is enabled or disabled. The value must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The value must start with a letter.'."\n", 'type' => 'string', 'example' => 'create-by-mse-can-not-delete', 'title' => ''], + 'EnabledTime' => ['description' => 'The time when the deletion protection feature was enabled. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2022-11-02T02:49:05Z', 'title' => ''], + ], + 'title' => '', ], - 'Mss' => [ - 'description' => 'The size of the largest TCP segment. Unit: bytes. Valid values: **0** to **1500**. **0** specifies that the maximum segment size remains unchanged.'."\n" - ."\n" - .'> This parameter is supported only by listeners that use SSL over TCP.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '166', + 'ModificationProtectionConfig' => [ + 'description' => 'The configuration of the configuration read-only mode.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'Specifies whether to enable the configuration read-only mode. Valid values:'."\n" + ."\n" + .'* **NonProtection**: does not enable the configuration read-only mode. You cannot set the **Reason** parameter. If the **Reason** parameter is set, the value is cleared.'."\n" + .'* **ConsoleProtection**: enables the configuration read-only mode. You can set the **Reason** parameter.'."\n" + ."\n" + .'> If you set this parameter to **ConsoleProtection**, you cannot use the NLB console to modify instance configurations. However, you can call API operations to modify instance configurations.'."\n", 'type' => 'string', 'example' => 'ConsoleProtection', 'title' => ''], + 'Reason' => ['description' => 'The reason why the configuration read-only mode is enabled. The value must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The value must start with a letter.'."\n" + ."\n" + .'> This parameter takes effect only if the **Status** parameter is set to **ConsoleProtection**.'."\n", 'type' => 'string', 'example' => 'create-by-mse-cannot-modify', 'title' => ''], + 'EnabledTime' => ['description' => 'The time when the modification protection feature was enabled. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2022-12-02T02:49:05Z', 'title' => ''], + ], + 'title' => '', ], 'Tags' => [ - 'description' => 'The tags.', + 'description' => 'The tags.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The tags for the execution.'."\n", + 'description' => '', 'type' => 'object', 'properties' => [ - 'TagKey' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'ac-cus-tag-4', - ], - 'TagValue' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'ON', - ], + 'TagKey' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'KeyTest', 'title' => ''], + 'TagValue' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'ValueTest', 'title' => ''], ], + 'title' => '', ], + 'title' => '', ], ], ], @@ -6209,35 +3832,60 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], + ['errorCode' => 'DuplicatedParam.%s', 'errorMessage' => 'The param of %s is duplicated.', 'description' => ''], + ['errorCode' => 'OperationFailed.GetXipFailed', 'errorMessage' => 'Operation failed because GetXipFailed.', 'description' => 'The operation failed because the instance is still being created.'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], + [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"LoadBalancerName\\": \\"NLB1\\",\\n \\"LoadBalancerType\\": \\"network\\",\\n \\"AddressType\\": \\"Internet\\",\\n \\"AddressIpVersion\\": \\"ipv4\\",\\n \\"Ipv6AddressType\\": \\"Internet\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"LoadBalancerBusinessStatus\\": \\"Normal\\",\\n \\"OperationLocks\\": [\\n {\\n \\"LockType\\": \\"SecurityLocked\\",\\n \\"LockReason\\": \\"security\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"DNSName\\": \\"nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"VSwitchId\\": \\"vsw-bp1rmcrwg3erh1fh8****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"EniId\\": \\"eni-bp12f1xhs5yal61a****\\",\\n \\"PrivateIPv4Address\\": \\"192.168.3.32\\",\\n \\"AllocationId\\": \\"eip-bp1aedxso6u80u0qf****\\",\\n \\"PublicIPv4Address\\": \\"120.XX.XX.69\\",\\n \\"Ipv6Address\\": \\"2001:db8:1:1:1:1:1:1\\",\\n \\"PrivateIPv4HcStatus\\": \\"Healthy\\",\\n \\"PrivateIPv6HcStatus\\": \\"Healthy\\",\\n \\"Ipv4LocalAddresses\\": [\\n \\"192.168.36.16\\"\\n ],\\n \\"Ipv6LocalAddresses\\": [\\n \\"2408:4005:357:ba00:64a2:221f:5685:8854\\"\\n ]\\n }\\n ],\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-bp10uag3q0jkxu72****\\"\\n ],\\n \\"CrossZoneEnabled\\": true,\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"Cps\\": 100,\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"Reason\\": \\"create-by-mse-can-not-delete\\",\\n \\"EnabledTime\\": \\"2022-11-02T02:49:05Z\\"\\n },\\n \\"ModificationProtectionConfig\\": {\\n \\"Status\\": \\"ConsoleProtection\\",\\n \\"Reason\\": \\"create-by-mse-cannot-modify\\",\\n \\"EnabledTime\\": \\"2022-12-02T02:49:05Z\\"\\n },\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"KeyTest\\",\\n \\"TagValue\\": \\"ValueTest\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', + 'title' => 'GetLoadBalancerAttribute', + 'summary' => 'Queries the details about a Network Load Balancer (NLB) instance.', + 'changeSet' => [ + ['createdAt' => '2024-02-22T08:02:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-04T03:49:56.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-02-04T03:19:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-07T06:58:52.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-04-04T06:22:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-08T15:20:48.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-11-30T09:15:44.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-08-02T06:52:11.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-06T07:08:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-02T08:43:10.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-29T09:24:43.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-27T08:29:13.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:31.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetLoadBalancerAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetLoadBalancerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@233\\",\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ListenerPort\\": 233,\\n \\"StartPort\\": \\"233\\",\\n \\"EndPort\\": \\"455\\",\\n \\"ListenerDescription\\": \\"tcpssl_443\\",\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"IdleTimeout\\": 900,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_0\\",\\n \\"CertificateIds\\": [\\n \\"123157******\\"\\n ],\\n \\"CaCertificateIds\\": [\\n \\"139a00******\\"\\n ],\\n \\"CaEnabled\\": false,\\n \\"AlpnEnabled\\": false,\\n \\"AlpnPolicy\\": \\"HTTP1Only\\",\\n \\"ProxyProtocolEnabled\\": false,\\n \\"ProxyProtocolV2Config\\": {\\n \\"Ppv2VpcIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpsIdEnabled\\": false\\n },\\n \\"SecSensorEnabled\\": false,\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"Cps\\": 1000,\\n \\"Mss\\": 166,\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"ac-cus-tag-4\\",\\n \\"TagValue\\": \\"ON\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n cn-hangzhou\\n nlb-83ckzc8d4xlp8o****\\n lsn-ga6sjjcll6ou34l1et****\\n TCPSSL\\n 233\\n 233\\n 455\\n tcpssl_443\\n sgp-ppdpc14gdm3x4o****\\n 900\\n tls_cipher_policy_1_0\\n 12315790212_166f8204689_1714763408_70998****\\n 139a00604ad-cn-east-hangzh****\\n false\\n false\\n HTTP1Only\\n false\\n false\\n Running\\n 1000\\n 166\\n","errorExample":""}]', - 'title' => 'GetListenerAttribute', ], - 'GetListenerHealthStatus' => [ - 'summary' => 'Queries the health check status of a Network Load Balancer (NLB) listener.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListAsynJobs' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -6247,211 +3895,93 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', - 'abilityTreeCode' => '142934', - 'abilityTreeNodes' => [ - 'FEATUREslbL239O5', - 'FEATUREslbVDXH6N', - ], + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '259936', + 'abilityTreeNodes' => ['FEATUREslbZQW9H1'], ], 'parameters' => [ [ - 'name' => 'ListenerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the listener on the NLB instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bp1bpn0kn908w4nbw****@80', - ], - ], - [ - 'name' => 'RegionId', + 'name' => 'JobIds', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', + 'description' => 'The task IDs.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the asynchronous job.'."\n", 'type' => 'string', 'required' => false, 'example' => 'bfb728bf-53a8-4886-84cb-829******', 'title' => ''], 'required' => false, - 'example' => 'cn-hangzhou', + 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'The health check status of the listener.'."\n", + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ListenerHealthStatus' => [ - 'description' => 'The health check status of the server group of the listener.'."\n", + 'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF3******'], + 'Jobs' => [ + 'description' => 'The queried tasks.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The health check status of the server group of the listener.'."\n", + 'description' => 'The queried task.'."\n", 'type' => 'object', 'properties' => [ - 'ListenerId' => [ - 'description' => 'The ID of the listener of the NLB instance.'."\n", - 'type' => 'string', - 'example' => ' lsn-bp1bpn0kn908w4nbw****@80', - ], - 'ListenerPort' => [ - 'description' => 'The listening port.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'ListenerProtocol' => [ - 'description' => 'The listening protocol. Valid values: **TCP**, **UDP**, and **TCPSSL**.'."\n", - 'type' => 'string', - 'example' => 'TCPSSL', - ], - 'ServerGroupInfos' => [ - 'description' => 'The information about the server groups.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the server group.'."\n", - 'type' => 'object', - 'properties' => [ - 'HeathCheckEnabled' => [ - 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n" - ."\n" - .'* **true**: enabled'."\n" - .'* **false**: disabled'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'ServerGroupId' => [ - 'description' => 'The ID of the server group.'."\n", - 'type' => 'string', - 'example' => 'sgp-ppdpc14gdm3x4o****', - ], - 'NonNormalServers' => [ - 'description' => 'A list of unhealthy backend servers.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'A list of unhealthy backend servers.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The health check status. Valid values:'."\n" - ."\n" - .'* **Initial**: indicates that health checks are configured for the NLB instance, but no data was found.'."\n" - .'* **Unhealthy**: indicates that the backend server consecutively fails health checks.'."\n" - .'* **Unavailable**: indicates that health checks are disabled.', - 'type' => 'string', - 'example' => 'Initial', - ], - 'Port' => [ - 'description' => 'The backend port.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Reason' => [ - 'description' => 'The cause of the health check failure.'."\n", - 'type' => 'object', - 'properties' => [ - 'ReasonCode' => [ - 'description' => 'The reason why the **status** is abnormal. Valid values:'."\n" - ."\n" - .'* **CONNECT_TIMEOUT**: The NLB instance failed to connect to the backend server within the specified period of time.'."\n" - .'* **CONNECT_FAILED**: The NLB instance failed to connect to the backend server.'."\n" - .'* **RECV_RESPONSE_TIMEOUT**: The NLB instance failed to receive a response from the backend server within the specified period of time.'."\n" - .'* **CONNECT_INTERRUPT**: The connection between the health check and the backend servers was interrupted.'."\n" - .'* **HTTP_CODE_NOT_MATCH**: The HTTP status code from the backend servers was not the expected one.'."\n" - .'* **HTTP_INVALID_HEADER**: The format of the response from the backend servers is invalid.'."\n", - 'type' => 'string', - 'example' => 'CONNECT_TIMEOUT', - ], - ], - ], - 'ServerId' => [ - 'description' => 'The ID of the backend server.'."\n", - 'type' => 'string', - 'example' => 'i-bp1bt75jaujl7tjl****', - ], - 'ServerIp' => [ - 'description' => 'The IP address of the backend server.'."\n", - 'type' => 'string', - 'example' => '192.168.8.10', - ], - ], - ], - ], - ], - ], - ], + 'Id' => ['description' => 'The task ID.'."\n", 'type' => 'string', 'example' => '365F4154-92F6-4AE4-92F8-7FF34B5****', 'title' => ''], + 'Status' => ['description' => 'The status of the task. Valid values:'."\n" + ."\n" + .'* Succeeded: The task is successful.'."\n" + .'* Failed: The task fails.'."\n" + .'* Processing: The task is being processed.'."\n", 'type' => 'string', 'example' => 'Succeeded', 'title' => ''], ], + 'title' => '', ], + 'title' => '', ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'NextToken' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'- If **NextToken** is empty, it indicates that no next query is to be sent.'."\n" - .'- If a value of **NextToken** is returned, the value is the token used for the next query.', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'string', 'example' => '1000', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', + ['errorCode' => 'ResourceNotFound.JobId', 'errorMessage' => 'The specified resource of JobId is not found.', 'description' => 'The specified JobId resource was not found. Please check the input parameters.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"Jobs\\": [\\n {\\n \\"Id\\": \\"365F4154-92F6-4AE4-92F8-7FF34B5****\\",\\n \\"Status\\": \\"Succeeded\\"\\n }\\n ],\\n \\"TotalCount\\": \\"1000\\"\\n}","type":"json"}]', + 'title' => 'ListAsynJobs', + 'summary' => 'Queries the results of multiple asynchronous operations performed on a Network Load Balancer (NLB) instance.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListAsynJobs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ListenerHealthStatus\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@80\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HeathCheckEnabled\\": true,\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Status\\": \\"Initial\\",\\n \\"Port\\": 80,\\n \\"Reason\\": {\\n \\"ReasonCode\\": \\"CONNECT_TIMEOUT\\"\\n },\\n \\"ServerId\\": \\"i-bp1bt75jaujl7tjl****\\",\\n \\"ServerIp\\": \\"192.168.8.10\\"\\n }\\n ]\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n \\n lsn-agkd9gmjx8nd85jjs0****\\n 80\\n TCPSSL\\n \\n true\\n sgp-ppdpc14gdm3x4o****\\n \\n Initial\\n 80\\n \\n CONNECT_TIMEOUT\\n \\n i-bp1bt75jaujl7tjl****\\n 192.168.8.10\\n \\n \\n \\n 10\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 20\\n","errorExample":""}]', - 'title' => 'GetListenerHealthStatus', ], 'ListListenerCertificates' => [ - 'summary' => 'Queries the server certificate of a TCP/SSL listener.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6462,72 +3992,41 @@ 'systemTags' => [ 'operationType' => 'get', 'abilityTreeCode' => '141873', - 'abilityTreeNodes' => [ - 'FEATUREslbEJQO6W', - ], + 'abilityTreeNodes' => ['FEATUREslbEJQO6W'], ], 'parameters' => [ [ 'name' => 'ListenerId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the listener. Specify the ID of a listener that uses SSL over TCP.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-j49ht1jxxqyg45****@80', - ], + 'schema' => ['description' => 'The ID of the listener. Specify the ID of a listener that uses SSL over TCP.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-j49ht1jxxqyg45****@80', 'title' => ''], ], [ 'name' => 'CertType', 'in' => 'formData', - 'schema' => [ - 'description' => 'The type of the certificate. Valid values:'."\n" - ."\n" - .'* **Ca**: CA certificate.'."\n" - .'* **Server**: server certificate'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Ca', - ], + 'schema' => ['description' => 'The type of the certificate. Valid values:'."\n" + ."\n" + .'* **Ca**: CA certificate.'."\n" + .'* **Server**: server certificate'."\n", 'type' => 'string', 'required' => false, 'example' => 'Ca', 'title' => ''], ], [ 'name' => 'NextToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ 'name' => 'MaxResults', 'in' => 'formData', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Valid values: **1** to **50**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => 'The number of entries to return on each page. Valid values: **1** to **50**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the region where the Network Load Balancer (NLB) instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the Network Load Balancer (NLB) instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'CertificateIds', @@ -6538,16 +4037,12 @@ ."\n" .'> This parameter takes effect only for TCP/SSL listeners.'."\n", 'type' => 'array', - 'items' => [ - 'description' => 'The server certificate. Only one server certificate is supported.'."\n" - ."\n" - .'> This parameter takes effect only for TCP/SSL listeners.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123157******', - ], + 'items' => ['description' => 'The server certificate. Only one server certificate is supported.'."\n" + ."\n" + .'> This parameter takes effect only for TCP/SSL listeners.'."\n", 'type' => 'string', 'required' => false, 'example' => '123157******', 'title' => ''], 'required' => false, 'maxItems' => 100, + 'title' => '', ], ], ], @@ -6558,1652 +4053,1827 @@ 'description' => 'Queries the certificates of a TCP/SSL listener.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2198BD6D-9EBB-5E1C-9C48-E0ABB79CF831', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2198BD6D-9EBB-5E1C-9C48-E0ABB79CF831', 'title' => ''], 'CertificateIds' => [ 'description' => 'The server certificates.'."\n", 'type' => 'array', - 'items' => [ - 'description' => 'The server certificates.', - 'type' => 'string', - 'example' => '[ "931****-cn-hangzhou"]', - ], + 'items' => ['description' => 'The server certificates.', 'type' => 'string', 'example' => '[ "931****-cn-hangzhou"]', 'title' => ''], + 'title' => '', ], 'Certificates' => [ 'description' => 'The certificates.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The certificate.'."\n", - 'type' => 'object', - 'properties' => [ - 'CertificateId' => [ - 'title' => '证书id', - 'description' => 'The ID of the certificate. Only one server certificate is supported.', - 'type' => 'string', - 'example' => '12315790343_166f8204689_1714763408_70998****', - ], - 'IsDefault' => [ - 'title' => '是否为监听默认证书', - 'description' => 'Indicates whether the certificate is the default certificate of the listener. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Status' => [ - 'title' => '证书与监听关联的状态', - 'description' => 'Indicates whether the certificate is associated with the listener. Valid values:'."\n" - ."\n" - .'* **Associating**'."\n" - .'* **Associated**'."\n" - .'* **Diassociating**'."\n", - 'type' => 'string', - 'example' => 'Associating', - ], - 'CertificateType' => [ - 'title' => '证书类型', - 'description' => 'The type of the certificate.', - 'type' => 'string', - 'example' => 'Server', - ], + 'type' => 'array', + 'items' => [ + 'description' => 'The certificate.'."\n", + 'type' => 'object', + 'properties' => [ + 'CertificateId' => ['title' => '', 'description' => 'The ID of the certificate. Only one server certificate is supported.', 'type' => 'string', 'example' => '12315790343_166f8204689_1714763408_70998****'], + 'IsDefault' => ['title' => '', 'description' => 'Indicates whether the certificate is the default certificate of the listener. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Status' => ['title' => '', 'description' => 'Indicates whether the certificate is associated with the listener. Valid values:'."\n" + ."\n" + .'* **Associating**'."\n" + .'* **Associated**'."\n" + .'* **Diassociating**'."\n", 'type' => 'string', 'example' => 'Associating'], + 'CertificateType' => ['title' => '', 'description' => 'The type of the certificate.', 'type' => 'string', 'example' => 'Server'], ], + 'title' => '', ], + 'title' => '', ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'NextToken' => [ - 'description' => 'The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => 'The number of entries returned per page. Valid values: **1** to **50**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'NextToken' => ['description' => 'The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries returned per page. Valid values: **1** to **50**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.Protocol', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'OperationDenied.Protocol', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.loadbalancer', - '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' => ''], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2198BD6D-9EBB-5E1C-9C48-E0ABB79CF831\\",\\n \\"CertificateIds\\": [\\n \\"[ \\\\\\"931****-cn-hangzhou\\\\\\"]\\"\\n ],\\n \\"Certificates\\": [\\n {\\n \\"CertificateId\\": \\"12315790343_166f8204689_1714763408_70998****\\",\\n \\"IsDefault\\": true,\\n \\"Status\\": \\"Associating\\",\\n \\"CertificateType\\": \\"Server\\"\\n }\\n ],\\n \\"TotalCount\\": 1,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n 2198BD6D-9EBB-5E1C-9C48-E0ABB79CF831\\n [ \\"931****-cn-hangzhou\\"]\\n \\n 12315790343_166f8204689_1714763408_70998****\\n true\\n Associating\\n Server\\n \\n 1\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 20\\n","errorExample":""}]', 'title' => 'ListListenerCertificates', - ], - 'AssociateAdditionalCertificatesWithListener' => [ - 'summary' => 'Associates additional certificates with a listener that uses SSL over TCP.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'summary' => 'Queries the server certificate of a TCP/SSL listener.', + 'changeSet' => [ + ['createdAt' => '2024-08-14T07:43:31.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-22T04:15:26.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-07T11:41:51.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-04-11T07:38:13.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-07-26T03:48:19.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:26.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListListenerCertificates'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListListenerCertificates', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], ], + ], + 'ListListeners' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '177212', - 'abilityTreeNodes' => [ - 'FEATUREslbEI2GF0', - ], + 'abilityTreeCode' => '141890', + 'abilityTreeNodes' => ['FEATUREslbC68LB1', 'FEATUREslb4PUXNB', 'FEATUREslbGDCN1S'], ], 'parameters' => [ [ - 'name' => 'AdditionalCertificateIds', - 'in' => 'formData', + 'name' => 'ListenerIds', + 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'title' => 'server扩展证书列表', - 'description' => 'The additional certificates. You can associate up to 15 additional certificates with a listener in each call.'."\n", + 'title' => '', + 'description' => 'The listener IDs. You can specify up to 20 listeners.', 'type' => 'array', - 'items' => [ - 'description' => 'The additional certificate. You can associate up to 15 additional certificates with a listener in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '12315790343_166f8204689_1714763408_70998****', - ], - 'required' => true, - 'maxItems' => 15, - 'minItems' => 1, + 'items' => ['description' => 'The listener ID. You can specify up to 20 listeners.', 'type' => 'string', 'required' => false, 'example' => 'lsn-bp1bpn0kn908w4nbw****@443', 'title' => ''], + 'required' => false, + 'maxItems' => 20, + 'example' => '', ], ], [ - 'name' => 'ListenerId', - 'in' => 'formData', + 'name' => 'LoadBalancerIds', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => 'The listener ID. Only TCPSSL listener IDs are supported.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bpn0kn908w4nbw****@80', + 'title' => '', + 'description' => 'The IDs of the NLB instances. You can specify up to 20 instances.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the NLB instance. You can specify up to 20 instances.', 'type' => 'string', 'required' => false, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], + 'required' => false, + 'maxItems' => 20, + 'example' => '', ], ], [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => ['description' => 'The listener protocol. Valid values: **TCP**, **UDP**, and **TCPSSL**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'TCPSSL'], ], [ - 'name' => 'ClientToken', - 'in' => 'formData', + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', + 'description' => 'The tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the tag. You can specify up to 20 tags. The tag key cannot be an empty string.'."\n" + ."\n" + .'It can be up to 64 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''], + 'Value' => ['description' => 'The value of the tag. You can specify up to 20 tags. The tag value can be an empty string.'."\n" + ."\n" + .'It can be up to 128 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'maxItems' => 20, + 'minItems' => 1, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The pagination token used to specify a particular page of results. Valid values:'."\n" + ."\n" + .'- Leave this parameter empty for the first query or the only query.'."\n" + ."\n" + .'- Set this parameter to the value of NextToken obtained from the previous query.', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return in each call. Valid values: **1** to **100**. Default value: **20**', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''], + ], [ 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'SecSensorEnabled', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable fine-grained monitoring. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'The operation to add additional certificates to a listener that uses SSL over TCP.'."\n", + 'title' => 'RpcResponse', + 'description' => 'The operation to query listeners.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-93F8-7FF34B540710', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'Listeners' => [ + 'description' => 'The listeners.', + 'type' => 'array', + 'items' => [ + 'description' => 'The listeners.', + 'type' => 'object', + 'properties' => [ + 'Tags' => [ + 'description' => 'A list of tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'A list of tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'Created', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'TF', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'LoadBalancerId' => ['description' => 'The CLB instance ID.', 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], + 'ListenerId' => ['description' => 'The listener ID.', 'type' => 'string', 'title' => '', 'example' => 'lsn-ga6sjjcll6ou34l1et****'], + 'ListenerProtocol' => ['description' => 'The listener protocol. Valid values: **TCP**, **UDP**, and **TCPSSL**.', 'type' => 'string', 'title' => '', 'example' => 'TCPSSL'], + 'ListenerPort' => ['description' => 'The information about the listener port of your server.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '443'], + 'StartPort' => ['description' => 'The first port in the listener port range.', 'type' => 'string', 'title' => '', 'example' => '233'], + 'EndPort' => ['description' => 'The last port in the listener port range.', 'type' => 'string', 'title' => '', 'example' => '455'], + 'ListenerDescription' => ['description' => 'The name of the listener.'."\n" + ."\n" + .'The name must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).', 'type' => 'string', 'title' => '', 'example' => 'tcpssl_443'], + 'ServerGroupId' => ['title' => 'servergroupId', 'description' => 'The server group ID.', 'type' => 'string', 'example' => 'sgp-ppdpc14gdm3x4o****'], + 'IdleTimeout' => ['description' => 'The timeout period of idle connections. Unit: seconds. Valid values: **1** to **900**. Default value: **900**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '900'], + 'SecurityPolicyId' => ['description' => 'The ID of the security policy.'."\n" + ."\n" + .'> This parameter takes effect only for listeners that use SSL over TCP.', 'type' => 'string', 'title' => '', 'example' => 'tls_cipher_policy_1_1'], + 'CertificateIds' => [ + 'title' => '', + 'description' => 'The server certificate.'."\n" + ."\n" + .'> This parameter takes effect only for listeners that use SSL over TCP.', + 'type' => 'array', + 'items' => ['description' => 'The server certificate.'."\n" + ."\n" + .'> This parameter takes effect only for listeners that use SSL over TCP.', 'type' => 'string', 'example' => '123157******', 'title' => ''], + 'example' => '', + ], + 'CaCertificateIds' => [ + 'title' => '', + 'description' => 'A list of CA certificates.'."\n" + ."\n" + .'> This parameter takes effect only for listeners that use SSL over TCP.', + 'type' => 'array', + 'items' => ['description' => 'A list of CA certificates.'."\n" + ."\n" + .'> This parameter takes effect only for listeners that use SSL over TCP.', 'type' => 'string', 'example' => '139a00******', 'title' => ''], + 'example' => '', + ], + 'CaEnabled' => ['description' => 'Indicates whether mutual authentication is enabled. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'ListenerStatus' => ['description' => 'The status of the listener. Valid values:'."\n" + ."\n" + .'- **Provisioning**: The listener is being created.'."\n" + ."\n" + .'- **Running**: The listener is running.'."\n" + ."\n" + .'- **Configuring**: The listener is being configured.'."\n" + ."\n" + .'- **Stopping**: The listener is being stopped.'."\n" + ."\n" + .'- **Stopped**: The listener is stopped.'."\n" + ."\n" + .'- **Starting**: The listener is being started.'."\n" + ."\n" + .'- **Deleting**: The listener is being deleted.'."\n" + ."\n" + .'- **Deleted**: The listener is deleted.', 'type' => 'string', 'example' => 'Running', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the NLB instance.', 'type' => 'string', 'title' => '', 'example' => 'cn-hangzhou'], + 'AlpnEnabled' => ['description' => 'Indicates whether Application-Layer Protocol Negotiation (ALPN) is enabled. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'AlpnPolicy' => ['description' => 'The ALPN policy. Valid values:'."\n" + ."\n" + .'- **HTTP1Only**'."\n" + ."\n" + .'- **HTTP2Only**'."\n" + ."\n" + .'- **HTTP2Preferred**'."\n" + ."\n" + .'- **HTTP2Optional**', 'type' => 'string', 'example' => 'HTTP1Only', 'title' => ''], + 'SecSensorEnabled' => ['description' => 'Indicates whether fine-grained monitoring is enabled. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'ProxyProtocolEnabled' => ['description' => 'Indicates whether the Proxy protocol passes source client IP addresses to backend servers. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'ProxyProtocolV2Config' => [ + 'description' => 'Indicates whether the Proxy protocol passes the VpcId, PrivateLinkEpId, and PrivateLinkEpsId parameters to backend servers.', + 'type' => 'object', + 'properties' => [ + 'Ppv2VpcIdEnabled' => ['description' => 'Indicates whether the Proxy protocol passes the VpcId parameter to backend servers. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'Ppv2PrivateLinkEpIdEnabled' => ['description' => 'Indicates whether the Proxy protocol passes the PrivateLinkEpId parameter to backend servers. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'Ppv2PrivateLinkEpsIdEnabled' => ['description' => 'Indicates whether the Proxy protocol passes the PrivateLinkEpsId parameter to backend servers. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'Cps' => ['description' => 'The maximum number of new connections per second supported by the listener in each zone (virtual IP address). Valid values: **0** to **1000000**. **0** indicates that the number of connections is unlimited.', 'type' => 'integer', 'format' => 'int32', 'example' => '1000', 'title' => ''], + 'Mss' => ['description' => 'The size of the largest TCP packet segment. Unit: bytes. Valid values: **0** to **1500**. **0** indicates that the Mss value of TCP packets remains unchanged.'."\n" + ."\n" + .'> This parameter takes effect only for listeners that use SSL over TCP.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], + 'TotalCount' => ['description' => 'The number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '4', 'title' => ''], + 'NextToken' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'- If **NextToken** is empty, it indicates that no next query is to be sent.'."\n" + ."\n" + .'- If a value of **NextToken** is returned, the value is the token used for the next query.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries returned per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'OperationDenied.%s', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationFailed.%s', - 'errorMessage' => 'The operation failed because of %s.', - ], - [ - 'errorCode' => 'IncorrectStatus.%s', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.%s', - 'errorMessage' => 'The specified resource of %s is already associated.', - ], - [ - 'errorCode' => 'IncorrectStatus.listener', - 'errorMessage' => 'The status of listener [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.Certificate', - 'errorMessage' => 'The specified resource %s is already associated.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'OperationDenied.Protocol', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceNotFound.Certificate', - 'errorMessage' => 'The specified resource %s is not found.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.%s', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', + ], + 'title' => 'ListListeners', + 'summary' => 'Queries listeners added to a Network Load Balancer (NLB) instance.', + 'changeSet' => [ + ['createdAt' => '2024-02-29T07:14:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-12T10:04:03.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-11-27T08:27:56.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-29T02:29:27.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-09-26T08:13:37.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-06T07:08:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-04T03:05:40.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-18T09:52:57.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-18T09:39:00.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:00.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListListeners'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListListeners', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'Listener', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:listener/*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Nlb::2022-04-30::GetJobStatus', - 'callbackInterval' => 5000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'AssociateAdditionalCertificatesWithListener', - 'description' => '**AssociateAdditionalCertificatesWithListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListListenerCertificates](~~615175~~) operation to query the status of the task:'."\n" - ."\n" - .'* If the listener is in the **Associating** state, the additional certificates are being associated.'."\n" - .'* If the listener is in the **Associated** state, the additional certificates are associated.'."\n", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Listeners\\": [\\n {\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Created\\",\\n \\"Value\\": \\"TF\\"\\n }\\n ],\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"ListenerId\\": \\"lsn-ga6sjjcll6ou34l1et****\\",\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ListenerPort\\": 443,\\n \\"StartPort\\": \\"233\\",\\n \\"EndPort\\": \\"455\\",\\n \\"ListenerDescription\\": \\"tcpssl_443\\",\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"IdleTimeout\\": 900,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_1\\",\\n \\"CertificateIds\\": [\\n \\"123157******\\"\\n ],\\n \\"CaCertificateIds\\": [\\n \\"139a00******\\"\\n ],\\n \\"CaEnabled\\": false,\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"AlpnEnabled\\": false,\\n \\"AlpnPolicy\\": \\"HTTP1Only\\",\\n \\"SecSensorEnabled\\": false,\\n \\"ProxyProtocolEnabled\\": false,\\n \\"ProxyProtocolV2Config\\": {\\n \\"Ppv2VpcIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpsIdEnabled\\": false\\n },\\n \\"Cps\\": 1000,\\n \\"Mss\\": 200\\n }\\n ],\\n \\"TotalCount\\": 4,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","type":"json"}]', ], - 'DisassociateAdditionalCertificatesWithListener' => [ - 'summary' => 'Disassociates additional certificates from a listener that uses SSL over TCP.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListLoadBalancers' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '177213', - 'abilityTreeNodes' => [ - 'FEATUREslbEI2GF0', - ], + 'abilityTreeCode' => '141871', + 'abilityTreeNodes' => ['FEATUREslb12YEWG'], ], 'parameters' => [ [ - 'name' => 'AdditionalCertificateIds', - 'in' => 'formData', + 'name' => 'LoadBalancerType', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The type of the Server Load Balancer (SLB) instances. Set the value to **network**, which specifies NLB.'."\n", 'type' => 'string', 'required' => false, 'example' => 'network'], + ], + [ + 'name' => 'ZoneId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The ID of the zone. You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou-a'], + ], + [ + 'name' => 'VpcIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '', + 'description' => 'The IDs of the virtual private clouds (VPCs) where the NLB instances are deployed. You can specify up to 10 VPC IDs in each call.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of a VPC where the NLB instance is deployed. You can specify up to 10 VPC IDs in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vpc-bp1b49rqrybk45nio****', 'title' => ''], + 'required' => false, + 'maxItems' => 10, + ], + ], + [ + 'name' => 'AddressType', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The type of IPv4 address used by the NLB instance. Valid values:'."\n" + ."\n" + .'* **Internet**: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. The NLB instance can be accessed over the Internet.'."\n" + .'* **Intranet**: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. The NLB instance can be accessed over the VPC where the NLB instance is deployed.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Internet'], + ], + [ + 'name' => 'AddressIpVersion', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The IP version of the NLB instance. Valid values:'."\n" + ."\n" + .'* **ipv4**: IPv4'."\n" + .'* **DualStack**: dual-stack'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv4'], + ], + [ + 'name' => 'Ipv6AddressType', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The type of IPv6 address used by the NLB instance. Valid values:'."\n" + ."\n" + .'* **Internet**: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. The NLB instance can be accessed over the Internet.'."\n" + .'* **Intranet**: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. The NLB instance can be accessed over the VPC where the NLB instance is deployed.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Internet'], + ], + [ + 'name' => 'DNSName', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The domain name of the NLB instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com'], + ], + [ + 'name' => 'LoadBalancerStatus', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The status of the NLB instance. Valid values:'."\n" + ."\n" + .'* **Inactive**: The NLB instance is disabled. Listeners of an NLB instance in the Inactive state do not forward traffic.'."\n" + .'* **Active**: The NLB instance is running.'."\n" + .'* **Provisioning**: The NLB instance is being created.'."\n" + .'* **Configuring**: The NLB instance is being modified.'."\n" + .'* **Deleting**: The NLB instance is being deleted.'."\n" + .'* **Deleted**: The NLB instance is deleted.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Active'], + ], + [ + 'name' => 'LoadBalancerBusinessStatus', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The business status of the NLB instance. Valid values:'."\n" + ."\n" + .'* **Abnormal**: The NLB instance is not working as expected.'."\n" + .'* **Normal**: The NLB instance is working as expected.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Normal'], + ], + [ + 'name' => 'LoadBalancerNames', + 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'title' => 'server扩展证书列表', - 'description' => 'The additional certificates. You can disassociate up to 15 additional certificates in each call.'."\n", + 'title' => '', + 'description' => 'The names of the NLB instances. You can specify up to 20 names in each call.'."\n", 'type' => 'array', - 'items' => [ - 'description' => 'The additional certificate. Only server certificates are supported. You can disassociate up to 15 additional certificates in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '12315790343_166f8204689_1714763408_70998****', - ], - 'required' => true, - 'maxItems' => 15, - 'minItems' => 1, + 'items' => ['description' => 'The name of the NLB instance. You can specify up to 20 names in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'NLB1', 'title' => ''], + 'required' => false, + 'maxItems' => 20, ], ], [ - 'name' => 'ListenerId', - 'in' => 'formData', - 'schema' => [ - 'title' => 'update or delete必选, add在custom中生成', - 'description' => 'The listener ID. Only TCP/SSL listener IDs are supported.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'lsn-bpn0kn908w4nbw****@80', - ], + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The ID of the resource group to which the instance belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****'], ], [ - 'name' => 'DryRun', - 'in' => 'formData', + 'name' => 'LoadBalancerIds', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: Validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', + 'title' => '', + 'description' => 'The NLB instance IDs. You can specify up to 20 IDs in each call.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The NLB instance ID. You can specify up to 20 IDs in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], 'required' => false, - 'example' => 'true', + 'maxItems' => 20, ], ], [ - 'name' => 'ClientToken', - 'in' => 'formData', + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** is different for each request.'."\n", - 'type' => 'string', + 'description' => 'The tags of the NLB instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag of the NLB instance.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the tag. You can specify up to 20 tags. The tag key cannot be an empty string.'."\n" + ."\n" + .'It must be 1 to 64 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'KeyTest', 'title' => ''], + 'Value' => ['description' => 'The value of the tag. You can specify up to 20 tags. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ValueTest', 'title' => ''], + ], + 'required' => false, + 'title' => '', + ], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'maxItems' => 20, + 'minItems' => 1, + 'title' => '', ], ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The pagination token used to specify a particular page of results. Valid values:'."\n" + ."\n" + .'* Leave this parameter empty for the first query or the only query.'."\n" + .'* Set this parameter to the value of NextToken obtained from the previous query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return in each call. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'default' => '20', 'title' => ''], + ], [ 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse'."\n", + 'title' => 'response', + 'description' => 'response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'LoadBalancers' => [ + 'description' => 'The NLB instances.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The NLB instances.'."\n", + 'type' => 'object', + 'properties' => [ + 'RegionId' => ['title' => '', 'description' => 'The ID of the region where the NLB instance is deployed.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou'], + 'LoadBalancerId' => ['description' => 'The ID of the NLB instance.'."\n", 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], + 'LoadBalancerName' => ['description' => 'The name of the NLB instance.'."\n", 'type' => 'string', 'example' => 'NLB1', 'title' => ''], + 'LoadBalancerType' => ['description' => 'The type of the SLB instance. Only **Network** is returned, which indicates NLB.'."\n", 'type' => 'string', 'example' => 'Network', 'title' => ''], + 'AddressType' => ['description' => 'The type of IPv4 address used by the NLB instance. Valid values:'."\n" + ."\n" + .'* **Internet**: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.'."\n" + .'* **Intranet**: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. Therefore, the NLB instance can be accessed over the VPC where the NLB instance is deployed.'."\n", 'type' => 'string', 'example' => 'Internet', 'title' => ''], + 'AddressIpVersion' => ['description' => 'The IP version. Valid values:'."\n" + ."\n" + .'* **ipv4**: IPv4'."\n" + .'* **DualStack**: dual stack'."\n", 'type' => 'string', 'example' => 'ipv4', 'title' => ''], + 'Ipv6AddressType' => ['description' => 'The type of IPv6 address used by the NLB instance. Valid values:'."\n" + ."\n" + .'* **Internet**: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.'."\n" + .'* **Intranet**: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. Therefore, the NLB instance can be accessed over the VPC where the NLB instance is deployed.'."\n", 'type' => 'string', 'example' => 'Internet', 'title' => ''], + 'LoadBalancerStatus' => ['description' => 'The status of the NLB instance. Valid values:'."\n" + ."\n" + .'* **Inactive**: The NLB instance is disabled. Listeners of NLB instances in the Inactive state do not forward traffic.'."\n" + .'* **Active**: The NLB instance is running.'."\n" + .'* **Provisioning**: The NLB instance is being created.'."\n" + .'* **Configuring**: The NLB instance is being modified.'."\n" + .'* **Deleting**: The NLB instance is being deleted.'."\n" + .'* **Deleted**: The NLB instance is deleted.'."\n", 'type' => 'string', 'example' => 'Active', 'title' => ''], + 'LoadBalancerBusinessStatus' => ['description' => 'The business status of the NLB instance. Valid values:'."\n" + ."\n" + .'* **Abnormal**: The NLB instance is not working as expected.'."\n" + .'* **Normal**: The NLB instance is working as expected.'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'OperationLocks' => [ + 'title' => '', + 'description' => 'The configuration of the operation lock. This parameter takes effect if the value of `LoadBalancerBussinessStatus` is **Abnormal**.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The configuration of the operation lock.'."\n", + 'type' => 'object', + 'properties' => [ + 'LockType' => ['description' => 'The type of lock. Valid values:'."\n" + ."\n" + .'* **SecurityLocked**: The NLB instance is locked due to security reasons.'."\n" + .'* **RelatedResourceLocked**: The NLB instance is locked due to association issues.'."\n" + .'* **FinancialLocked**: The NLB instance is locked due to overdue payments.'."\n" + .'* **ResidualLocked**: The NLB instance is locked because the payments of the associated resources are overdue and the resources are released.'."\n", 'type' => 'string', 'example' => 'SecurityLocked', 'title' => ''], + 'LockReason' => ['description' => 'The reason why the NLB instance is locked.'."\n", 'type' => 'string', 'example' => 'Service exception'."\n", 'title' => ''], + ], + 'title' => '', + ], + ], + 'VpcId' => ['description' => 'The ID of the VPC where the NLB instance is deployed.'."\n", 'type' => 'string', 'example' => 'vpc-bp1b49rqrybk45nio****', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the resource was created. The time is displayed in UTC in the `yyyy-MM-ddTHH:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => '2022-07-18T17:22Z', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.'."\n", 'type' => 'string', 'example' => 'rg-atstuj3rtop****', 'title' => ''], + 'DNSName' => ['description' => 'The domain name of the NLB instance.'."\n", 'type' => 'string', 'example' => 'nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com', 'title' => ''], + 'ZoneMappings' => [ + 'description' => 'The mappings between zones and vSwitches.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the array object.'."\n", + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => 'The ID of the vSwitch in the zone. By default, each zone contains one vSwitch and one subnet.'."\n", 'type' => 'string', 'example' => 'vsw-bp1rmcrwg3erh1fh8****', 'title' => ''], + 'ZoneId' => ['description' => 'The name of the zone. You can call the [DescribeZones](~~443890~~) operation to query the zones.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-a', 'title' => ''], + 'LoadBalancerAddresses' => [ + 'description' => 'The IP addresses that are used by the NLB instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the array object.'."\n", + 'type' => 'object', + 'properties' => [ + 'EniId' => ['description' => 'The ID of the elastic network interface (ENI) attached to the NLB instance.'."\n", 'type' => 'string', 'example' => 'eni-bp12f1xhs5yal61a****', 'title' => ''], + 'PrivateIPv4Address' => ['title' => '', 'description' => 'The private IPv4 address of the NLB instance.'."\n", 'type' => 'string', 'example' => '192.168.3.32'], + 'AllocationId' => ['title' => '', 'description' => 'The ID of the elastic IP address (EIP).'."\n", 'type' => 'string', 'example' => 'eip-bp1aedxso6u80u0qf****'], + 'PublicIPv4Address' => ['title' => '', 'description' => 'The public IPv4 address of the NLB instance.'."\n", 'type' => 'string', 'example' => '120.XX.XX.69'], + 'Ipv6Address' => ['description' => 'The IPv6 address used by the NLB instance.'."\n", 'type' => 'string', 'example' => '2001:db8:1:1:1:1:1:1', 'title' => ''], + 'PrivateIPv4HcStatus' => ['description' => 'The health status of the private IPv4 address of the NLB instance. Valid values:'."\n" + ."\n" + .'- **Healthy**'."\n" + .'- **Unhealthy**'."\n" + ."\n" + .'> This parameter is returned only when the Status of the zone is Active.', 'type' => 'string', 'example' => 'Healthy', 'title' => ''], + 'PrivateIPv6HcStatus' => ['description' => 'The health status of the IPv6 address of the NLB instance. Valid values:'."\n" + ."\n" + .'- **Healthy**'."\n" + .'- **Unhealthy**'."\n" + ."\n" + .'> This parameter is returned only when the Status of the zone is Active.', 'type' => 'string', 'example' => 'Healthy', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', + ], + 'Status' => ['description' => 'The zone status. Valid values:'."\n" + ."\n" + .'- **Active**: The zone is available.'."\n" + ."\n" + .'- **Stopped**: The zone is disabled. You can set the zone to this status only by using Cloud Architect Design Tools (CADT).'."\n" + ."\n" + .'- **Shifted**: The DNS record is removed.'."\n" + ."\n" + .'- **Starting**: The zone is being enabled. You can set the zone to this status only by using CADT.'."\n" + ."\n" + .'- **Stopping** You can set the zone to this status only by using CADT.', 'type' => 'string', 'example' => 'Active', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', + ], + 'BandwidthPackageId' => ['description' => 'The ID of the EIP bandwidth plan that is associated with the NLB instance if the NLB instance uses a public IP address.'."\n", 'type' => 'string', 'example' => 'cbwp-bp1vevu8h3ieh****', 'title' => ''], + 'SecurityGroupIds' => [ + 'description' => 'The security group to which the NLB instance is added.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The security group to which the NLB instance is added.'."\n", 'type' => 'string', 'example' => 'sg-bp10uag3q0jkxu72****', 'title' => ''], + 'title' => '', + ], + 'CrossZoneEnabled' => ['description' => 'Indicates whether cross-zone load balancing is enabled for the NLB instance. Valid values:'."\n" + ."\n" + .'* **true**: enabled'."\n" + .'* **false**: disabled'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'LoadBalancerBillingConfig' => [ + 'title' => '', + 'description' => 'The billing settings of the NLB instance.'."\n", + 'type' => 'object', + 'properties' => [ + 'PayType' => ['title' => '', 'description' => 'The billing method of the NLB instance. Only **PostPay** is supported, which indicates the pay-as-you-go billing method.'."\n", 'type' => 'string', 'example' => 'PostPay', 'default' => 'PostPay'], + ], + ], + 'DeletionProtectionConfig' => [ + 'description' => 'The configuration of the deletion protection feature.'."\n", + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['description' => 'Indicates whether deletion protection is enabled. Valid values:'."\n" + ."\n" + .'* **true**: enabled'."\n" + .'* **false**: disabled'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Reason' => ['description' => 'The reason why the deletion protection feature is enabled or disabled. The reason must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The reason must start with a letter.'."\n", 'type' => 'string', 'example' => 'The instance is running'."\n", 'title' => ''], + 'EnabledTime' => ['description' => 'The time when deletion protection was enabled. The time is displayed in UTC in `yyyy-MM-ddTHH:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => '2022-12-01T17:22Z', 'title' => ''], + ], + 'title' => '', + ], + 'ModificationProtectionConfig' => [ + 'description' => 'The configuration of the configuration read-only mode.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'Indicates whether the configuration read-only mode is enabled. Valid values:'."\n" + ."\n" + .'* **NonProtection**: disabled. In this case, **Reason** is not returned. If **Reason** is set, the value is cleared.'."\n" + .'* **ConsoleProtection**: enabled. In this case, **Reason** is returned.'."\n" + ."\n" + .'> If you set this parameter to **ConsoleProtection**, you cannot use the NLB console to modify instance configurations. However, you can call API operations to modify instance configurations.'."\n", 'type' => 'string', 'example' => 'ConsoleProtection', 'title' => ''], + 'Reason' => ['description' => 'The reason why the configuration read-only mode is enabled. The reason must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The reason must start with a letter.'."\n" + ."\n" + .'This parameter takes effect only if **Status** is set to **ConsoleProtection**.'."\n", 'type' => 'string', 'example' => 'Service guarantee period'."\n", 'title' => ''], + 'EnabledTime' => ['description' => 'The time when the configuration read-only mode was enabled. The time is displayed in UTC in `yyyy-MM-ddTHH:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => '2022-12-01T17:22Z', 'title' => ''], + ], + 'title' => '', + ], + 'Tags' => [ + 'description' => 'A list of tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'A list of tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'KeyTest', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'ValueTest', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', + ], + ], + 'title' => '', + ], + 'title' => '', ], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'NextToken' => ['description' => 'The token that determines the start point of the next query. Valid values:'."\n" + ."\n" + .'* If this is your first query and no subsequent queries are to be sent, ignore this parameter.'."\n" + .'* If a subsequent query is to be sent, set the parameter to the value of NextToken that is returned from the last call.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.listener', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.certificate', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.loadbalancer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.Protocol', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'OperationDenied.DefaultCertificateUsed', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceNotAssociated.Certificate', - 'errorMessage' => 'The specified resource %s is not associated.', - ], - [ - 'errorCode' => 'OperationDenied.CaCertificateUsed', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.LoadBalancerType', 'errorMessage' => 'The LoadBalancerType value is invalid.', 'description' => ''], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'IllegalParam.loadBalancerName', 'errorMessage' => 'Param loadBalancerName is illegal.', 'description' => 'The instance name is invalid. Check the parameters.'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Nlb::2022-04-30::GetJobStatus', - 'callbackInterval' => 5, - 'maxCallbackTimes' => 10, + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"LoadBalancers\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"LoadBalancerName\\": \\"NLB1\\",\\n \\"LoadBalancerType\\": \\"Network\\",\\n \\"AddressType\\": \\"Internet\\",\\n \\"AddressIpVersion\\": \\"ipv4\\",\\n \\"Ipv6AddressType\\": \\"Internet\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"LoadBalancerBusinessStatus\\": \\"Normal\\",\\n \\"OperationLocks\\": [\\n {\\n \\"LockType\\": \\"SecurityLocked\\",\\n \\"LockReason\\": \\"Service exception\\\\n\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"CreateTime\\": \\"2022-07-18T17:22Z\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"DNSName\\": \\"nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"VSwitchId\\": \\"vsw-bp1rmcrwg3erh1fh8****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"EniId\\": \\"eni-bp12f1xhs5yal61a****\\",\\n \\"PrivateIPv4Address\\": \\"192.168.3.32\\",\\n \\"AllocationId\\": \\"eip-bp1aedxso6u80u0qf****\\",\\n \\"PublicIPv4Address\\": \\"120.XX.XX.69\\",\\n \\"Ipv6Address\\": \\"2001:db8:1:1:1:1:1:1\\",\\n \\"PrivateIPv4HcStatus\\": \\"Healthy\\",\\n \\"PrivateIPv6HcStatus\\": \\"Healthy\\"\\n }\\n ],\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-bp10uag3q0jkxu72****\\"\\n ],\\n \\"CrossZoneEnabled\\": true,\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"Reason\\": \\"The instance is running\\\\n\\",\\n \\"EnabledTime\\": \\"2022-12-01T17:22Z\\"\\n },\\n \\"ModificationProtectionConfig\\": {\\n \\"Status\\": \\"ConsoleProtection\\",\\n \\"Reason\\": \\"Service guarantee period\\\\n\\",\\n \\"EnabledTime\\": \\"2022-12-01T17:22Z\\"\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"ValueTest\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', + 'title' => 'ListLoadBalancers', + 'summary' => 'Queries the basic information about Network Load Balancer (NLB) instances.', + 'changeSet' => [ + ['createdAt' => '2024-01-29T06:32:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-19T03:04:37.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-13T03:48:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-07T06:58:52.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-04-04T06:22:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-11-30T09:13:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-08-05T09:52:11.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-08-03T10:23:25.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-07-06T07:08:22.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-07-02T08:43:10.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-29T09:24:43.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-06-27T08:29:21.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:26.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLoadBalancers'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListLoadBalancers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/*'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"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' => 'DisassociateAdditionalCertificatesWithListener', - 'description' => '**DisassociateAdditionalCertificatesWithListener** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListListenerCertificates](~~615175~~) operation to query the status of the task:'."\n" - ."\n" - .'* If an additional certificate is in the **Dissociating** state, the additional certificate is being disassociated.'."\n" - .'* If an additional certificate is in the **Dissociated** state, the additional certificate is disassociated.'."\n", ], - 'CreateServerGroup' => [ - 'summary' => 'Creates a server group in a region.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListSecurityPolicy' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '141881', - 'abilityTreeNodes' => [ - 'FEATUREslbVDXH6N', - ], - ], - 'parameters' => [ - [ - 'name' => 'ServerGroupType', - 'in' => 'formData', - 'schema' => [ - 'title' => '服务器组类型', - 'description' => 'The type of the server group. Valid values:'."\n" - ."\n" - .'* **Instance** (default): allows you to specify servers of the **Ecs**, **Eni**, or **Eci** type.'."\n" - .'* **Ip**: allows you to specify IP addresses.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Instance', - 'default' => 'Instance', - 'enum' => [], - ], - ], - [ - 'name' => 'ServerGroupName', - 'in' => 'formData', - 'schema' => [ - 'title' => '服务器组名称', - 'description' => 'The server group name.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, can contain digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'NLB_ServerGroup', - ], - ], - [ - 'name' => 'AddressIPVersion', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The IP version. Valid values:'."\n" - ."\n" - .'* **ipv4** (default): IPv4'."\n" - .'* **DualStack**: dual-stack'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv4', - 'default' => 'Ipv4', - 'enum' => [], - ], - ], - [ - 'name' => 'IpVersionAffinityMode', - 'in' => 'formData', - 'schema' => [ - 'title' => '', - 'type' => 'string', - 'enum' => [ - 'NonAffinity', - 'Affinity', - ], - ], - ], - [ - 'name' => 'Protocol', - 'in' => 'formData', - 'schema' => [ - 'title' => '后端服务器类型', - 'description' => 'The protocol between the NLB instance and backend servers. Valid values:'."\n" - ."\n" - .'* **TCP** (default)'."\n" - .'* **UDP**'."\n" - .'* **TCP_UDP**'."\n" - ."\n" - .'> * If you set this parameter to **UDP**, you can associate the server group only with **UDP** listeners.'."\n" - .'> * If you set this parameter to **TCP** and **PreserveClientIpEnabled** to **true**, you can associate the server group only with **TCP** listeners.'."\n" - .'> * If you set this parameter to **TCP** and **PreserveClientIpEnabled** to **false**, you can associate the server group with **TCPSSL** and **TCP** listeners.'."\n" - .'> * If you set this parameter to **TCP_UDP**, you can associate the server group with **TCP** and **UDP** listeners.', - 'type' => 'string', - 'required' => false, - 'example' => 'TCP', - 'default' => 'Tcp', - 'enum' => [], - ], - ], + 'operationType' => 'get', + 'abilityTreeCode' => '141862', + 'abilityTreeNodes' => ['FEATUREslbAZREFH'], + ], + 'parameters' => [ [ - 'name' => 'VpcId', + 'name' => 'SecurityPolicyIds', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'title' => '服务器组所在vpc的id', - 'description' => 'The ID of the virtual private cloud (VPC) where the server group is deployed.'."\n" - ."\n" - .'> If **ServerGroupType** is set to **Instance**, only servers in the specified VPC can be added to the server group.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-bp15zckdt37pq72zv****', + 'description' => 'The IDs of the TLS security policies. You can specify at most 20 policy IDs in each call.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the TLS security policy. You can specify at most 20 policy IDs in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tls-bp14bb1e7dll4f****', 'title' => ''], + 'required' => false, + 'maxItems' => 20, + 'title' => '', ], ], [ - 'name' => 'AnyPortEnabled', + 'name' => 'SecurityPolicyNames', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to enable multi-port forwarding. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', + 'description' => 'The names of the TLS security policies. You can specify at most 20 policy names.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The name of the TLS security policy. You can specify at most 20 policy names.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TLSCipherPolicy', 'title' => ''], 'required' => false, - 'example' => 'false', - 'default' => 'false', + 'maxItems' => 20, + 'title' => '', ], ], [ - 'name' => 'ConnectionDrainEnabled', - 'in' => 'formData', + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'title' => '是否开启连接优雅中断', - 'description' => 'Specifies whether to enable connection draining. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify up to 10 tag keys.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Test', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify up to 10 tag values.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Test', 'title' => ''], + ], + 'required' => false, + 'title' => '', + ], 'required' => false, - 'example' => 'false', - 'default' => 'false', + 'title' => '', ], ], [ - 'name' => 'ConnectionDrainTimeout', + 'name' => 'ResourceGroupId', 'in' => 'formData', - 'schema' => [ - 'title' => '连接优雅中断超时时间', - 'description' => 'Specifies a timeout period for connection draining. Unit: seconds. Valid values: **0** to **900**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '3600', - 'minimum' => '0', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The resource group ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****', 'title' => ''], ], [ - 'name' => 'Scheduler', + 'name' => 'NextToken', 'in' => 'formData', - 'schema' => [ - 'title' => '调度类型', - 'description' => 'The scheduling algorithm. Valid values:'."\n" - ."\n" - .'* **Wrr** (default): weighted round-robin. Backend servers with higher weights receive more requests.'."\n" - .'* **Wlc**: weighted least connections. Requests are distributed based on the weights and the number of connections to backend servers. If multiple backend servers have the same weight, requests are forwarded to the backend server with the least connections.'."\n" - .'* **rr**: Requests are forwarded to backend servers in sequence.'."\n" - .'* **sch**: source IP hash. Requests from the same source IP address are forwarded to the same backend server.'."\n" - .'* **tch**: consistent hashing based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same four factors are forwarded to the same backend server.'."\n" - .'* **qch**: QUIC ID hash. Requests that contain the same QUIC ID are forwarded to the same backend server.'."\n" - ."\n" - .'> QUIC ID hash is supported only when the backend protocol is set to UDP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Wrr', - 'default' => 'wrr', - 'enum' => [], - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'PreserveClientIpEnabled', + 'name' => 'MaxResults', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to enable client IP preservation. Valid values:'."\n" - ."\n" - .'* **true** (default)'."\n" - .'* **false**'."\n" - ."\n" - .'> If you set this parameter to **true** and **Protocol** to **TCP**, the server group cannot be associated with **TCPSSL** listeners.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The number of entries to return per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''], ], [ - 'name' => 'HealthCheckConfig', + 'name' => 'RegionId', 'in' => 'formData', - 'style' => 'flat', + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '健康检查配置', - 'description' => 'The configurations of health checks.'."\n", + 'title' => 'RpcResponse', + 'description' => 'The details about the queried TLS security policies.'."\n", 'type' => 'object', 'properties' => [ - 'HealthCheckEnabled' => [ - 'title' => '是否开启健康检查', - 'description' => 'Specifies whether to enable health checks. Valid values:'."\n" - ."\n" - .'* **true** (default)'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'HealthCheckType' => [ - 'title' => '健康检查协议类型', - 'description' => 'The protocol that you want to use for health checks. Valid values:'."\n" - ."\n" - .'* **TCP**'."\n" - .'* **HTTP**'."\n" - .'* **UDP**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TCP', - ], - 'HealthCheckConnectPort' => [ - 'title' => '健康检查使用的端口', - 'description' => 'The port that you want to use for health checks on backend servers.'."\n" - ."\n" - .'Valid values: **0** to **65535**.'."\n" - ."\n" - .'Default value: **0**. If you set this parameter to 0, the port that the backend server uses to provide services is also used for health checks.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], - 'HealthyThreshold' => [ - 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success', - 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status changes from **fail** to **success**.'."\n" - ."\n" - .'Valid values: **2** to **10**.'."\n" - ."\n" - .'Default value: **2**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], - 'UnhealthyThreshold' => [ - 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail', - 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status changes from **success** to **fail**.'."\n" - ."\n" - .'Valid values: **2** to **10**.'."\n" - ."\n" - .'Default value: **2**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], - 'HealthCheckConnectTimeout' => [ - 'title' => '健康检查响应的最大超时时间', - 'description' => 'The timeout period for a health check response. Unit: seconds. Valid values: **1** to **300**. Default value: **5**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], - 'HealthCheckInterval' => [ - 'title' => '健康检查时间间隔', - 'description' => 'The interval at which health checks are performed. Unit: seconds. Default value: **5**.'."\n" - ."\n" - .'* If you set **HealthCheckType** to **TCP** or **HTTP**, valid values are **1** to **50**.'."\n" - .'* If you set **HealthCheckType** to **UDP**, valid values are **1** to **300**. Set the health check interval equal to or larger than the response timeout period to ensure that UDP response timeouts are not determined as no responses.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], - 'HealthCheckDomain' => [ - 'title' => '健康检查的域名', - 'description' => 'The domain name that is used for health checks. Valid values:'."\n" - ."\n" - .'* **$SERVER_IP**: the internal IP address of a backend server.'."\n" - .'* **domain**: a domain name. The domain name must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), and periods (.).'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '$SERVER_IP', - ], - 'HealthCheckUrl' => [ - 'title' => '健康检查的url', - 'description' => 'The URL path to which health check probes are sent.'."\n" - ."\n" - .'The URL path must be 1 to 80 characters in length, and can contain letters, digits, and the following special characters: ` - / . % ? # & `. It must start with a forward slash (/).'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '/test/index.html', - ], - 'HealthCheckHttpCode' => [ - 'title' => '状态码,多个状态码用逗号分隔', - 'description' => 'The HTTP status codes to return for health checks. Separate multiple HTTP status codes with commas (,). Valid values: **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', 'title' => ''], + 'SecurityPolicies' => [ + 'description' => 'The TLS security policies.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The HTTP status codes to return for health checks. Separate multiple HTTP status codes with commas (,). Valid values: **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'http_2xx', - ], - 'required' => false, - ], - 'HttpCheckMethod' => [ - 'description' => 'The HTTP method that is used for health checks. Valid values: **GET** (default) and **HEAD**.'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'GET', - 'enum' => [], - ], - 'HealthCheckReq' => [ - 'description' => 'The request string that UDP listeners send to backend servers for health checks. The string must be 1 to 512 characters in length and can contain only letters and digits.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'hello', - ], - 'HealthCheckExp' => [ - 'description' => 'The response string that backend servers return to UDP listeners for health checks. The string must be 1 to 512 characters in length and can contain only letters and digits.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ok', - ], - 'HealthCheckHttpVersion' => [ - 'description' => 'The HTTP version used for health checks. Valid values: **HTTP1.0** (default) and **HTTP1.1**.'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP1.0', - 'enum' => [ - 'HTTP1.0', - 'HTTP1.1', + 'description' => 'The TLS security policy.'."\n", + 'type' => 'object', + 'properties' => [ + 'SecurityPolicyId' => ['title' => '', 'description' => 'The ID of the TLS security policy.'."\n", 'type' => 'string', 'example' => 'tls-bp14bb1e7dll4f****'], + 'SecurityPolicyName' => ['title' => '', 'description' => 'The name of the TLS security policy.'."\n", 'type' => 'string', 'example' => 'TLSCipherPolicy'], + 'TlsVersion' => ['title' => '', 'description' => 'The supported versions of the TLS protocol. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.'."\n", 'type' => 'string', 'example' => 'TLSv1.0'], + 'Ciphers' => ['title' => '', 'description' => 'The cipher suites supported by the security policy. Valid values of this parameter vary based on the value of TlsVersions. A security policy supports up to 32 cipher suites.'."\n" + ."\n" + .'TLSv1.0 and TLSv1.1 support the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + ."\n" + .'TLSv1.2 supports the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-SHA384**'."\n" + .'* **AES128-GCM-SHA256**'."\n" + .'* **AES256-GCM-SHA384**'."\n" + .'* **AES128-SHA256**'."\n" + .'* **AES256-SHA256**'."\n" + ."\n" + .'TLSv1.3 supports the following cipher suites:'."\n" + ."\n" + .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" + .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" + .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", 'type' => 'string', 'example' => 'ECDHE-ECDSA-AES128-SHA'], + 'RegionId' => ['title' => '', 'description' => 'The region ID of the NLB instance.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou'], + 'Tags' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify up to 10 tag keys.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'example' => 'Test', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify up to 10 tag values.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'example' => 'Test', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', + ], + 'RelatedListeners' => [ + 'description' => 'The listeners that are associated with the NLB instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The listeners that are associated with the NLB instance.'."\n", + 'type' => 'object', + 'properties' => [ + 'ListenerId' => ['description' => 'The listener ID.'."\n", 'type' => 'string', 'example' => 'lsn-bp1bpn0kn908w4nbw****@443', 'title' => ''], + 'ListenerPort' => ['description' => 'The listener port.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '443', 'title' => ''], + 'ListenerProtocol' => ['description' => 'The listener protocol. Valid value: **TCPSSL**.'."\n", 'type' => 'string', 'example' => 'TCPSSL', 'title' => ''], + 'LoadBalancerId' => ['description' => 'The NLB instance ID.'."\n", 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', + ], + 'ResourceGroupId' => ['description' => 'The resource group ID.'."\n", 'type' => 'string', 'example' => 'rg-atstuj3rtop****', 'title' => ''], + 'SecurityPolicyStatus' => ['description' => 'The status of the TLS security policy. Valid values:'."\n" + ."\n" + .'* **Configuring**'."\n" + .'* **Available**'."\n", 'type' => 'string', 'example' => 'Available', 'title' => ''], + ], + 'title' => '', ], + 'title' => '', ], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If NextToken is empty, no next page exists.'."\n" + .'* If a value is returned for NextToken, specify the value in the next request to retrieve a new page of results.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], ], - 'required' => false, ], ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the resource group to which the server group belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"SecurityPolicyId\\": \\"tls-bp14bb1e7dll4f****\\",\\n \\"SecurityPolicyName\\": \\"TLSCipherPolicy\\",\\n \\"TlsVersion\\": \\"TLSv1.0\\",\\n \\"Ciphers\\": \\"ECDHE-ECDSA-AES128-SHA\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@443\\",\\n \\"ListenerPort\\": 443,\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"SecurityPolicyStatus\\": \\"Available\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n D7A8875F-373A-5F48-8484-25B07A61F2AF\\n \\n tls-bp14bb1e7dll4f****\\n TLSCipherPolicy\\n TLSv1.0\\n ECDHE-ECDSA-AES128-SHA\\n cn-hangzhou\\n \\n Test\\n Test\\n \\n \\n lsn-bp1bpn0kn908w4nbw****\\n 443\\n TCPSSL\\n nlb-83ckzc8d4xlp8o****\\n \\n rg-atstuj3rtop****\\n Available\\n \\n 10\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 20\\n","errorExample":""}]', + 'title' => 'ListSecurityPolicy', + 'summary' => 'Queries the TLS security policies set for a Network Load Balancer (NLB) instance.', + 'changeSet' => [ + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-26T03:48:19.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-29T09:24:43.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-18T09:52:57.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:31.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListSecurityPolicy'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/*'], + ], ], ], + ], + ], + 'ListServerGroupServers' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true:**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '141867', + 'abilityTreeNodes' => ['FEATUREslb3GOGI0'], + ], + 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'ServerGroupId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the server group.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sgp-atstuj3rtoptyui****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ServerIds', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', + 'description' => 'The IDs of the backend servers. You can specify up to 40 backend servers in each call.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the backend server. You can specify up to 40 backend servers in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'i-bp67acfmxazb4p****', 'title' => ''], 'required' => false, - 'example' => 'cn-hangzhou', + 'maxItems' => 100, + 'title' => '', ], ], [ - 'name' => 'Tag', + 'name' => 'ServerIps', 'in' => 'formData', - 'allowEmptyValue' => true, 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags.'."\n", + 'description' => 'The IP addresses of the backend servers. You can specify up to 40 backend servers in each call.'."\n", 'type' => 'array', - 'items' => [ - 'description' => 'The tag.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. The tag key can be up to 64 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`. The tag key can contain letters, digits, and the following special characters: \\_ . : / = + - @'."\n" - ."\n" - .'You can specify up to 20 tags in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => 'The value of the tag. The tag value can be up to 128 characters in length, cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`. The tag value can contain letters, digits, and the following special characters: \\_ . : / = + - @'."\n" - ."\n" - .'You can specify up to 20 tags in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], - ], - 'required' => false, - ], + 'items' => ['description' => 'The IP address of the backend server. You can specify up to 40 backend servers in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.6.3', 'title' => ''], 'required' => false, - 'maxItems' => 20, + 'maxItems' => 100, + 'title' => '', ], ], + [ + 'name' => 'NextToken', + 'in' => 'formData', + 'schema' => ['description' => 'The pagination token used to specify a particular page of results. Valid values:'."\n" + ."\n" + .'* Left this parameter empty if this is the first query or the only query.'."\n" + .'* Set this parameter to the value of NextToken obtained from the previous query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + ], + [ + 'name' => 'MaxResults', + 'in' => 'formData', + 'schema' => ['description' => 'The number of entries to return in each call. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'Creates a server group.'."\n", + 'title' => 'RpcResponse', + 'description' => 'The operation to query servers.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ServerGroupId' => [ - 'description' => 'The server group ID.'."\n", - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'Servers' => [ + 'description' => 'The backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ServerId' => ['title' => '', 'description' => 'The ID of the server group.'."\n", 'type' => 'string', 'example' => 'i-bp67acfmxazb4p****'], + 'ServerType' => ['title' => '', 'description' => 'The type of backend server. Valid values:'."\n" + ."\n" + .'* **Ecs**: Elastic Compute Service (ECS) instance'."\n" + .'* **Eni**: elastic network interface (ENI)'."\n" + .'* **Eci**: elastic container instance'."\n" + .'* **Ip**: IP address'."\n", 'type' => 'string', 'example' => 'Ecs'], + 'ServerIp' => ['title' => '', 'description' => 'The IP address of the backend server.'."\n", 'type' => 'string', 'example' => '192.168.2.1'], + 'Port' => ['title' => '', 'description' => 'The port that is used by the backend server. Valid values: **1** to **65535**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'Weight' => ['title' => '', 'description' => 'The weight of the backend server.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'ServerGroupId' => ['description' => 'The ID of the server group.'."\n", 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****', 'title' => ''], + 'Description' => ['title' => '', 'description' => 'The description of the backend server.'."\n", 'type' => 'string', 'example' => 'ECS'], + 'ZoneId' => ['title' => '', 'description' => 'The zone ID of the server.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-a'], + 'Status' => ['title' => '', 'description' => 'The status of the backend server. Valid values:'."\n" + ."\n" + .'* **Adding**'."\n" + .'* **Available**'."\n" + .'* **Configuring**'."\n" + .'* **Removing**'."\n", 'type' => 'string', 'example' => 'Available'], + ], + 'title' => '', + ], + 'title' => '', ], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'NextToken' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If this is your first query or no next query is to be sent, ignore this parameter.'."\n" + .'* If a next query is to be sent, set the parameter to the value of NextToken that is returned from the last call.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.AnyPortServerGroupConflictWithHealthCheckConfig', - 'errorMessage' => 'The param of AnyPortServerGroupConflictWithHealthCheckConfig is illegal.', - ], - [ - 'errorCode' => 'IllegalParamFormat.ParseCreateRsPoolRequestFailed', - 'errorMessage' => 'The param format of CreateRsPoolRequest is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.PreserveClientIpSwitch', - 'errorMessage' => 'The param of PreserveClientIpSwitch is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.VpcNotSupportIpv6', - 'errorMessage' => 'The operation is not allowed because of VpcNotSupportIpv6.', - ], - [ - 'errorCode' => 'IllegalParam.healthCheckDomain', - 'errorMessage' => 'The parameter of healthCheckConfig.healthCheckDomain is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.UidNotAllowQuic29', - 'errorMessage' => 'The operation is not allowed because of uid not allow quic29 version.', - ], - [ - 'errorCode' => 'IlleagalParam.healthCheckUrl', - 'errorMessage' => 'The parameter of healthCheckUrl in healthCheckConfig is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.ServerGroupName', - 'errorMessage' => 'The param of ServerGroupName is illegal.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', - ], - [ - 'errorCode' => 'IllegalParam.ConnectionDrainTimeout', - 'errorMessage' => 'The param of ConnectionDrainTimeout is illegal.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'QuotaExceeded.QuotaInsufficient', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.Vpc', - 'errorMessage' => 'The specified resource of Vpc is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ResourceGroup', - 'errorMessage' => 'The param of resourceGroup not existed.', + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => 'The specified resource of serverGroup is not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"Servers\\": [\\n {\\n \\"ServerId\\": \\"i-bp67acfmxazb4p****\\",\\n \\"ServerType\\": \\"Ecs\\",\\n \\"ServerIp\\": \\"192.168.2.1\\",\\n \\"Port\\": 80,\\n \\"Weight\\": 100,\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"Description\\": \\"ECS\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"Status\\": \\"Available\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n \\n ecs-bp67acfmxazb4p****\\n Ecs\\n 192.168.2.1\\n 80\\n 100\\n sgp-atstuj3rtoptyui****\\n ECS\\n cn-hangzhou-a\\n Available\\n \\n 10\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 20\\n","errorExample":""}]', + 'title' => 'ListServerGroupServers', + 'summary' => 'Queries servers in a server group of a Network Load Balancer (NLB) instance.', + 'changeSet' => [ + ['createdAt' => '2023-10-09T11:30:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-13T12:02:09.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-09-11T06:34:53.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-09-05T02:00:46.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-26T03:48:19.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:26.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListServerGroupServers'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListServerGroupServers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:serverGroup/{#ServerGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n sgp-atstuj3rtoptyui****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'CreateServerGroup', - 'description' => '**CreateServerGroup** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetJobStatus](~~445904~~) operation to query the creation status of the task.'."\n" - .' - If the task is in the **Succeeded** status, the server group is created.'."\n" - .'- If the task is in the **Processing** status, the server group is being created.', ], - 'AddServersToServerGroup' => [ - 'summary' => 'Adds backend servers to a specified server group.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListServerGroups' => [ + 'summary' => 'Queries the server groups of a Network Load Balancer (NLB) instance.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeNodes' => [ - 'FEATUREslbWFW5HS', - ], + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '141872', + 'abilityTreeNodes' => ['FEATUREslbVDXH6N'], ], 'parameters' => [ [ - 'name' => 'ServerGroupId', + 'name' => 'ServerGroupIds', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The server group ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-atstuj3rtoptyui****', + 'description' => 'The server group IDs. You can specify up to 20 server group IDs in each call.', + 'type' => 'array', + 'items' => ['description' => 'The server group ID. You can specify up to 20 server group IDs in each call.', 'type' => 'string', 'required' => false, 'example' => 'sgp-atstuj3rtoptyui****', 'title' => ''], + 'required' => false, + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'Servers', + 'name' => 'ServerGroupNames', + 'in' => 'formData', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The names of the server groups to be queried. You can specify up to 20 names in each call.', + 'type' => 'array', + 'items' => ['description' => 'The name of the server group to be queried. You can specify up to 20 names in each call.', 'type' => 'string', 'required' => false, 'example' => 'NLB_ServerGroup', 'title' => ''], + 'required' => false, + 'maxItems' => 20, + 'title' => '', + 'example' => '', + ], + ], + [ + 'name' => 'ResourceGroupId', 'in' => 'formData', + 'schema' => ['description' => 'The ID of the resource group to which the server group belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-atstuj3rtop****', 'title' => ''], + ], + [ + 'name' => 'ServerGroupType', + 'in' => 'formData', + 'schema' => ['description' => 'The type of server group. Valid values:'."\n" + ."\n" + .'- **Instance**: allows you to add servers of the **Ecs**, **Ens**, and **Eci** types.'."\n" + ."\n" + .'- **Ip**: allows you to add servers by specifying IP addresses.', 'type' => 'string', 'required' => false, 'example' => 'Instance', 'title' => ''], + ], + [ + 'name' => 'VpcId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the virtual private cloud (VPC) in which the server group is deployed.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'vpc-bp15zckdt37pq72zv****'], + ], + [ + 'name' => 'Tag', + 'in' => 'query', 'style' => 'flat', 'schema' => [ - 'description' => 'The backend servers that you want to add.'."\n" - ."\n" - .'> You can add up to 200 backend servers in each call.'."\n", + 'description' => 'The tags.', 'type' => 'array', 'items' => [ - 'description' => 'The backend server that you want to add.'."\n" - ."\n" - .'> You can add up to 200 backend servers in each call.'."\n", + 'description' => 'The tag.', 'type' => 'object', 'properties' => [ - 'ServerId' => [ - 'title' => '服务器id', - 'description' => 'The backend server ID.'."\n" - ."\n" - .'* If the server group is of the **Instance** type, set this parameter to the IDs of **Elastic Compute Service (ECS) instances**, **elastic network interfaces (ENIs)**, or **elastic container instances**.'."\n" - .'* If the server group is of the **Ip** type, set ServerId to IP addresses.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'i-bp67acfmxazb4p****', - ], - 'ServerType' => [ - 'title' => '服务器类型', - 'description' => 'The type of the backend server. Valid values:'."\n" - ."\n" - .'* **Ecs**: the ECS instance'."\n" - .'* **Eni**: the ENI'."\n" - .'* **Eci**: the elastic container instance'."\n" - .'* **Ip**: the IP address'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Ecs', - 'enum' => [], - ], - 'ServerIp' => [ - 'title' => '服务器ip', - 'description' => 'The IP address of the backend server. If the server group type is **Ip**, set the ServerId parameter to IP addresses.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.6.6', - ], - 'Port' => [ - 'title' => '服务器端口', - 'description' => 'The port that is used by the backend server to provide services. Valid values: **0 to 65535**. If you do not set this parameter, the default value **0** is used.'."\n" - ."\n" - .'If multi-port forwarding is enabled, you do not need to set this parameter. The default value 0 is used. NLB forwards requests to the requested ports. To determine whether multi-port forwarding is enabled, call the [ListServerGroups](~~445895~~) operation and check the value of the **AnyPortEnabled** parameter.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '443', - ], - 'Weight' => [ - 'title' => '后端权重', - 'description' => 'The weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If this parameter is set to **0**, no requests are forwarded to the server.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - 'default' => '100', - ], - 'Description' => [ - 'title' => '服务器描述信息', - 'description' => 'The description of the backend server.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at sings (@), underscores (\\_), and hyphens (-).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ECS', - ], + 'Key' => ['description' => 'The key of the tag. You can specify up to 10 tag keys.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'Test', 'title' => ''], + 'Value' => ['description' => 'The value of the tag. You can specify up to 10 tag values.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` and `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'Test', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], - 'required' => true, - 'maxItems' => 200, + 'required' => false, + 'maxItems' => 20, + 'minItems' => 1, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'NextToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The pagination token used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'- For the first request and last request, you do not need to specify this parameter.'."\n" + ."\n" + .'- You must specify the token obtained from the previous query as the value of NextToken.', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'MaxResults', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse', + 'title' => 'RpcResponse', + 'description' => 'The operation to query server groups.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ServerGroupId' => [ - 'description' => 'The ID of the server group.'."\n", - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '54B28E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'ServerGroups' => [ + 'description' => 'A list of server groups.', + 'type' => 'array', + 'items' => [ + 'description' => 'The server group.', + 'type' => 'object', + 'properties' => [ + 'RegionId' => ['description' => 'The region ID of the NLB instance.', 'type' => 'string', 'title' => '', 'example' => 'cn-hangzhou'], + 'ServerGroupId' => ['description' => 'The server group ID.', 'type' => 'string', 'title' => '', 'example' => 'sgp-atstuj3rtoptyui****'], + 'ServerGroupName' => ['description' => 'The server group name.', 'type' => 'string', 'title' => '', 'example' => 'NLB_ServerGroup'], + 'ServerGroupType' => ['description' => 'The type of server group. Valid values:'."\n" + ."\n" + .'- **Instance** : contains servers of the **Ecs**, **Ens**, and **Eci** types.'."\n" + ."\n" + .'- **Ip**: contains servers specified by IP addresses.', 'type' => 'string', 'title' => '', 'example' => 'Instance'], + 'AddressIPVersion' => ['description' => 'The IP version. Valid values:'."\n" + ."\n" + .'- **ipv4**'."\n" + ."\n" + .'- **DualStack**', 'type' => 'string', 'title' => '', 'example' => 'ipv4'], + 'VpcId' => ['description' => 'The ID of the VPC to which the server group belongs.', 'type' => 'string', 'title' => '', 'example' => 'vpc-bp15zckdt37pq72zv****'], + 'Scheduler' => ['description' => 'The routing algorithm. Valid values:'."\n" + ."\n" + .'- **Wrr**: Backend servers with higher weights receive more requests than backend servers with lower weights.'."\n" + ."\n" + .'- **rr**: Requests are forwarded to the backend servers in sequence. sch: Requests are forwarded to the backend servers based on source IP address hashing.'."\n" + ."\n" + .'- **sch**: Requests from the same source IP address are forwarded to the same backend server.'."\n" + ."\n" + .'- **tch**: Four-element hashing, which specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are forwarded to the same backend server.'."\n" + ."\n" + .'- **qch**: QUIC ID hashing. Requests that contain the same QUIC ID are forwarded to the same backend server.', 'type' => 'string', 'title' => '', 'example' => 'Wrr'], + 'Protocol' => ['description' => 'The backend protocol. Valid values: **TCP** and **UDP**.', 'type' => 'string', 'title' => '', 'example' => 'TCP'], + 'HealthCheck' => [ + 'title' => '', + 'description' => 'The configurations of health checks.', + 'type' => 'object', + 'properties' => [ + 'HealthCheckEnabled' => ['description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'title' => '', 'example' => 'false'], + 'HealthCheckType' => ['description' => 'The protocol that is used for health checks. Valid values:'."\n" + ."\n" + .'- **TCP**'."\n" + ."\n" + .'- **HTTP**'."\n" + ."\n" + .'- **UDP**', 'type' => 'string', 'title' => '', 'example' => 'TCP'], + 'HealthCheckConnectPort' => ['description' => 'The backend port that is used for health checks.'."\n" + ."\n" + .'Valid values: **0** to **65535**.'."\n" + ."\n" + .'A value of **0** indicates that the port on a backend server is used for health checks.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '200'], + 'HealthyThreshold' => ['description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status changes from **fail** to **success**.'."\n" + ."\n" + .'Valid values: **2** to **10**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'], + 'UnhealthyThreshold' => ['description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status changes from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **2** to **10**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '3'], + 'HealthCheckConnectTimeout' => ['description' => 'The maximum timeout period of a health check response. Unit: seconds. Default value: **5**.'."\n" + ."\n" + .'Valid values: **1** to **300**', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '200'], + 'HealthCheckInterval' => ['description' => 'The interval at which health checks are performed. Unit: seconds. Default value: **5**.'."\n" + ."\n" + .'- If you set **HealthCheckType** to **TCP** or **HTTP**, valid values are **1 to 50**.'."\n" + ."\n" + .'- If you set **HealthCheckType** to **UDP**, valid values are **1 to 300**. Set the health check interval equal to or larger than the response timeout period to ensure that UDP response timeouts are not determined as no responses.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '10'], + 'HealthCheckDomain' => ['description' => 'The domain name that you want to use for health checks. Valid values:'."\n" + ."\n" + .'- **$SERVER\\_IP**: the private IP address of a backend server.'."\n" + ."\n" + .'- **domain**: a specified domain name. The domain name must be 1 to 80 characters in length, and can contain lowercase letters, digits, hyphens (-), and periods (.).'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', 'type' => 'string', 'title' => '', 'example' => '$SERVER_IP'], + 'HealthCheckUrl' => ['description' => 'The path to which health check probes are sent.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', 'type' => 'string', 'title' => '', 'example' => '/test/index.html'], + 'HealthCheckHttpCode' => [ + 'title' => '', + 'description' => 'The HTTP status codes returned for health checks. Multiple HTTP status codes are separated by commas (,). Valid values: **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', + 'type' => 'array', + 'items' => ['description' => 'The HTTP status codes returned for health checks. Multiple HTTP status codes are separated by commas (,). Valid values: **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', 'type' => 'string', 'example' => 'http_2xx', 'title' => ''], + 'example' => '', + ], + 'HttpCheckMethod' => ['description' => 'The HTTP method that is used for health checks. Valid values: **GET** and **HEAD**.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', 'type' => 'string', 'example' => 'GET', 'title' => ''], + 'HealthCheckReq' => ['description' => 'The request string of UDP health checks. The string must be 1 to 512 characters in length, and can contain letters and digits.', 'type' => 'string', 'example' => 'hello', 'title' => ''], + 'HealthCheckExp' => ['description' => 'The response string of UDP health checks. The string must be 1 to 512 characters in length, and can contain letters and digits.', 'type' => 'string', 'example' => 'ok', 'title' => ''], + 'HealthCheckHttpVersion' => ['description' => 'The version of the HTTP protocol. Valid values: **HTTP1.0** and **HTTP1.1**.'."\n" + ."\n" + .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.', 'type' => 'string', 'example' => 'HTTP1.0', 'title' => ''], + ], + 'example' => '', + ], + 'ConnectionDrainEnabled' => ['description' => 'Indicates whether connection draining is enabled. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'title' => '', 'example' => 'false'], + 'ConnectionDrainTimeout' => ['description' => 'The timeout period of connection draining. Unit: seconds. Valid values: **10** to **900**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '200'], + 'PreserveClientIpEnabled' => ['description' => 'Indicates whether client IP preservation is enabled. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**'."\n" + ."\n" + .'> This parameter is set to **true** by default when **AddressIPVersion** is set to **ipv4**. This parameter is set to **false** when **AddressIPVersion** is set to **ipv6**. **true** will be supported by later versions.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], + 'AnyPortEnabled' => ['description' => 'Indicates whether the feature of forwarding requests to all ports is enabled. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the server group belongs.', 'type' => 'string', 'title' => '', 'example' => 'rg-atstuj3rtop****'], + 'ServerGroupStatus' => ['description' => 'The status of the server group. Valid values:'."\n" + ."\n" + .'- **Creating**'."\n" + ."\n" + .'- **Available**'."\n" + ."\n" + .'- **Configuring**', 'type' => 'string', 'title' => '', 'example' => 'Available'], + 'AliUid' => ['description' => 'The ID of the Alibaba Cloud account.', 'type' => 'integer', 'format' => 'int64', 'example' => '165820696622****', 'title' => ''], + 'Tags' => [ + 'description' => 'The tag.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. At most 10 tag keys are returned.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.', 'type' => 'string', 'example' => 'Test', 'title' => ''], + 'Value' => ['description' => 'The tag value. At most 10 tag values are returned.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.', 'type' => 'string', 'example' => 'Test', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'RelatedLoadBalancerIds' => [ + 'description' => 'The NLB instances.', + 'type' => 'array', + 'items' => ['description' => 'A list of NLB instances.', 'type' => 'string', 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'ServerCount' => ['description' => 'The number of server groups associated with the NLB instances.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'IpVersionAffinityMode' => ['description' => 'Traffic scheduling policy for dual-stack NLB instances:'."\n" + ."\n" + .'- NonAffinity (default): Forwards requests to healthy backend servers based on the configured scheduling algorithm, regardless of the source IP protocol version (IPv4 or IPv6).'."\n" + ."\n" + .'- Affinity: Forwards requests based on source IP protocol affinity. IPv4 requests are forwarded exclusively to IPv4 backend servers, and IPv6 requests are forwarded exclusively to IPv6 backend servers.'."\n" + ."\n" + .'> This parameter only applies when the **AddressIPVersion** is set to **DualStack**.', 'type' => 'string', 'example' => 'Affinity', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'- If **NextToken** is empty, no next page exists.'."\n" + ."\n" + .'- If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries per page. Valid values: **1** to **100**.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'IllegalParam.IP', - 'errorMessage' => 'The param of IP is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded.QuotaInsufficient', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'DuplicatedParam.Server', - 'errorMessage' => 'The param of Server is duplicated.', - ], - [ - 'errorCode' => 'IncorrectStatus.serverGroup', - 'errorMessage' => 'The status of servergroup [%s] is incorrect.', - ], - [ - 'errorCode' => 'Mismatch.VpcId', - 'errorMessage' => 'The VpcId is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'Mismatch.ServerType', - 'errorMessage' => 'The ServerType is mismatched for %s and %s.', - ], - [ - 'errorCode' => 'IllegalParam.RSPortConflictWithServerGroup', - 'errorMessage' => 'The param of RSPortConflictWithServerGroup is illegal.', - ], - [ - 'errorCode' => 'TagInvokeError', - 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', - ], - [ - 'errorCode' => 'ResourceInUse.IP', - 'errorMessage' => 'The specified resource of IP is in use.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', - ], - [ - 'errorCode' => 'IllegalParam.description', - 'errorMessage' => 'The parameter description of server is illegal.', - ], - [ - 'errorCode' => 'MissingParam.IP', - 'errorMessage' => 'The param of IP is missing.', - ], - [ - 'errorCode' => 'OperationDenied.ServerGroupNotSupportIpv6', - 'errorMessage' => 'The operation is not allowed because of ServerGroupNotSupportIpv6.', - ], - [ - 'errorCode' => 'IncorrectStatus.Eni', - 'errorMessage' => 'Eni status is invalid.', - ], - [ - 'errorCode' => 'IdempotenceSignatureMismatch', - 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', - ], - [ - 'errorCode' => 'Throttling.User', - 'errorMessage' => 'Request was denied due to api flow control.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.%s', 'errorMessage' => 'Authentication is failed for %s.', 'description' => ''], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Eci', - 'errorMessage' => 'The specified resource of Eci is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ecs', - 'errorMessage' => 'The specified resource of Ecs is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Eni', - 'errorMessage' => 'The specified resource Eni is not found.', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B28E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroups\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"ServerGroupName\\": \\"NLB_ServerGroup\\",\\n \\"ServerGroupType\\": \\"Instance\\",\\n \\"AddressIPVersion\\": \\"ipv4\\",\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"Scheduler\\": \\"Wrr\\",\\n \\"Protocol\\": \\"TCP\\",\\n \\"HealthCheck\\": {\\n \\"HealthCheckEnabled\\": false,\\n \\"HealthCheckType\\": \\"TCP\\",\\n \\"HealthCheckConnectPort\\": 200,\\n \\"HealthyThreshold\\": 2,\\n \\"UnhealthyThreshold\\": 3,\\n \\"HealthCheckConnectTimeout\\": 200,\\n \\"HealthCheckInterval\\": 10,\\n \\"HealthCheckDomain\\": \\"$SERVER_IP\\",\\n \\"HealthCheckUrl\\": \\"/test/index.html\\",\\n \\"HealthCheckHttpCode\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HttpCheckMethod\\": \\"GET\\",\\n \\"HealthCheckReq\\": \\"hello\\",\\n \\"HealthCheckExp\\": \\"ok\\",\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.0\\"\\n },\\n \\"ConnectionDrainEnabled\\": false,\\n \\"ConnectionDrainTimeout\\": 200,\\n \\"PreserveClientIpEnabled\\": true,\\n \\"AnyPortEnabled\\": false,\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"ServerGroupStatus\\": \\"Available\\",\\n \\"AliUid\\": 0,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"RelatedLoadBalancerIds\\": [\\n \\"nlb-83ckzc8d4xlp8o****\\"\\n ],\\n \\"ServerCount\\": 2,\\n \\"IpVersionAffinityMode\\": \\"Affinity\\"\\n }\\n ],\\n \\"TotalCount\\": 1,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","type":"json"}]', + 'title' => 'ListServerGroups', + 'changeSet' => [ + ['createdAt' => '2025-04-09T11:20:39.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-06-25T08:31:01.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2023-09-27T09:30:42.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-09-26T07:58:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-18T01:54:37.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-08-22T04:15:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-09-21T13:23:21.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-29T09:24:43.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-06-27T08:29:21.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2022-06-17T07:55:41.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:26.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListServerGroups'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListServerGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/*'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n sgp-atstuj3rtoptyui****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'AddServersToServerGroup', ], - 'DeleteServerGroup' => [ - 'summary' => 'Deletes a Network Load Balancer (NLB) server group.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListSystemSecurityPolicy' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ - [ - 'name' => 'ServerGroupId', - 'in' => 'formData', - 'schema' => [ - 'title' => '服务器组ID', - 'description' => 'The server group ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-atstuj3rtoptyui****', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse', + 'title' => 'RpcResponse', + 'description' => 'The operation to query the default TLS policy.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5C057647-284B-5C67-A07E-4B8F3DABA9F9', 'title' => ''], + 'SecurityPolicies' => [ + 'description' => 'A list of TLS security policies.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'A list of TLS security policies.'."\n", + 'type' => 'object', + 'properties' => [ + 'SecurityPolicyId' => ['title' => '', 'description' => 'The ID of the TLS security policy.'."\n", 'type' => 'string', 'example' => 'sp-3fdab6dkkke10s****'], + 'SecurityPolicyName' => ['title' => '', 'description' => 'The name of the TLS security policy.'."\n", 'type' => 'string', 'example' => 'test'], + 'TlsVersion' => ['title' => '', 'description' => 'The TLS version.'."\n", 'type' => 'string', 'example' => 'TLSv1.0'], + 'Ciphers' => ['title' => '', 'description' => 'The cipher suite.'."\n", 'type' => 'string', 'example' => 'ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES128-SHA256,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES256-SHA384,AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA256,AES256-SHA256,ECDHE-ECDSA-AES128-SHA,ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES256-SHA,AES128-SHA,AES256-SHA,DES-CBC3-SHA'], + ], + 'title' => '', + ], + 'title' => '', ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ResourceInUse.ServerGroup', - 'errorMessage' => 'The specified resource of ServerGroup is in use.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IncorrectStatus.serverGroup', - 'errorMessage' => 'The status of servergroup [%s] is incorrect.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', - ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5C057647-284B-5C67-A07E-4B8F3DABA9F9\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"SecurityPolicyId\\": \\"sp-3fdab6dkkke10s****\\",\\n \\"SecurityPolicyName\\": \\"test\\",\\n \\"TlsVersion\\": \\"TLSv1.0\\",\\n \\"Ciphers\\": \\"ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES128-SHA256,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES256-SHA384,AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA256,AES256-SHA256,ECDHE-ECDSA-AES128-SHA,ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES256-SHA,AES128-SHA,AES256-SHA,DES-CBC3-SHA\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'ListSystemSecurityPolicy', + 'summary' => 'Queries the default TLS policy.', + 'changeSet' => [ + ['createdAt' => '2022-06-27T08:29:14.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListSystemSecurityPolicy'], ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'DeleteServerGroup', - 'description' => 'You can delete server groups that are not associated with listeners.', + 'ramActions' => [], ], - 'RemoveServersFromServerGroup' => [ - 'summary' => 'Deletes server groups from a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListTagResources' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', + 'abilityTreeCode' => '141863', + 'abilityTreeNodes' => ['FEATUREslbS3YPBZ', 'FEATUREslb01BKVK'], ], 'parameters' => [ [ - 'name' => 'ServerGroupId', + 'name' => 'ResourceType', + 'in' => 'formData', + 'schema' => ['description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* **loadbalancer**: the Network Load Balancer (NLB) instance'."\n" + .'* **securitypolicy**: the security policy'."\n" + .'* **servergroup**: the server group'."\n" + .'* **listener**: the listener'."\n", 'type' => 'string', 'required' => true, 'example' => 'loadbalancer', 'title' => ''], + ], + [ + 'name' => 'ResourceId', 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'description' => 'The server group ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-atstuj3rtoptyui****', + 'description' => 'The IDs of the resources.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the resource.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nlb-nrnrxwd15en27r****', 'title' => ''], + 'required' => false, + 'maxItems' => 50, + 'minItems' => 1, + 'title' => '', ], ], [ - 'name' => 'Servers', + 'name' => 'Tag', 'in' => 'formData', - 'style' => 'repeatList', + 'style' => 'flat', 'schema' => [ - 'description' => 'The backend servers. You can specify up to 200 backend servers in each call.'."\n", + 'description' => 'The tags'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The backend server. You can specify up to 200 backend servers in each call.'."\n", + 'description' => 'The tag.'."\n", 'type' => 'object', 'properties' => [ - 'ServerId' => [ - 'title' => '服务器id', - 'description' => 'The backend server ID.'."\n" - ."\n" - .'* If the server group is of the **Instance** type, set this parameter to the IDs of servers of the **Ecs**, **Eni**, or **Eci** type.'."\n" - .'* If the server group is of the **Ip** type, set ServerId to IP addresses.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ecs-bp67acfmxazb4p****', - ], - 'ServerType' => [ - 'title' => '服务器类型', - 'description' => 'The type of the backend server. Valid values:'."\n" - ."\n" - .'* **Ecs**: the Elastic Compute Service (ECS) instance'."\n" - .'* **Eni**: the elastic network interface (ENI)'."\n" - .'* **Eci**: the elastic container instance'."\n" - .'* **Ip**: the IP address'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Ecs', - 'enum' => [], - ], - 'ServerIp' => [ - 'title' => '服务器ip', - 'description' => 'The IP addresses of the server. If the server group type is **Ip**, set the ServerId parameter to IP addresses.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.6.6', - ], - 'Port' => [ - 'title' => '服务器端口', - 'description' => 'The port that is used by the backend server. Valid values: **0** to **65535**. If you do not set this parameter, the default value **0** is used.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '443', - ], + 'Key' => ['description' => 'The key of the tag. The tag key can be up to 128 characters in length, cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''], + 'Value' => ['description' => 'The value of the tag. The tag value can be up to 128 characters in length, cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''], ], 'required' => false, + 'title' => '', ], - 'required' => true, - 'maxItems' => 200, + 'required' => false, + 'maxItems' => 20, + 'minItems' => 1, + 'title' => '', ], ], [ - 'name' => 'DryRun', + 'name' => 'NextToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The pagination token used to specify a particular page of results. Valid values:'."\n" + ."\n" + .'* Leave this parameter empty for the first query or the only query.'."\n" + .'* Set this parameter to the value of NextToken obtained from the previous query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'MaxResults', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The number of entries to return in each call. Valid values: **1** to **50**. Default value: **50**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'Removes backend servers from a server group.'."\n", + 'title' => 'RpcResponse', + 'description' => 'Queries the tags of a resource.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ServerGroupId' => [ - 'description' => 'The server group ID.'."\n", - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'TagResources' => [ + 'description' => 'The details about the resource and its tags, including the resource ID, the resource type, and the keys and values of the tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ResourceId' => ['description' => 'The resource ID.'."\n", 'type' => 'string', 'example' => 'nlb-nrnrxwd15en27r****', 'title' => ''], + 'ResourceType' => ['description' => 'The type of resource. Valid values:'."\n" + ."\n" + .'* **loadbalancer**: an NLB instance'."\n" + .'* **securitypolicy**: a security policy'."\n" + .'* **servergroup**: a server group'."\n", 'type' => 'string', 'example' => 'loadbalancer', 'title' => ''], + 'RegionNo' => ['description' => 'The region information.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'AliUid' => ['description' => 'The UID of the Alibaba Cloud account.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1429****39299349', 'title' => ''], + 'TagKey' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'env', 'title' => ''], + 'TagValue' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'product', 'title' => ''], + 'Scope' => ['description' => 'The visible range of the tags.'."\n", 'type' => 'string', 'example' => 'public', 'title' => ''], + 'Category' => ['description' => 'The type of the tag. Valid values:'."\n" + ."\n" + .'* **Custom**'."\n" + .'* **System**'."\n" + .'* **All**'."\n", 'type' => 'string', 'example' => 'All', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', ], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If **NextToken** is empty, no next page exists.'."\n" + .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'IncorrectStatus.serverGroup', - 'errorMessage' => 'The status of servergroup [%s] is incorrect.', - ], - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IdempotenceSignatureMismatch', - 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'IllegalParam.resourceType', 'errorMessage' => 'The param of resourceType is illegal.', 'description' => 'The parameter resourceType is invalid. Please check the input value of the parameter resourceType.'], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.BackendServer', - 'errorMessage' => 'The specified resource of BackendServer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', + ['errorCode' => 'ResourceNotFound.securitypolicy', 'errorMessage' => 'The specified resource of securitypolicy is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => 'The specified resource of serverGroup is not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"nlb-nrnrxwd15en27r****\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"RegionNo\\": \\"cn-hangzhou\\",\\n \\"AliUid\\": 0,\\n \\"TagKey\\": \\"env\\",\\n \\"TagValue\\": \\"product\\",\\n \\"Scope\\": \\"public\\",\\n \\"Category\\": \\"All\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","type":"json"}]', + 'title' => 'ListTagResources', + 'summary' => 'Queries the tags of a resource.', + 'changeSet' => [ + ['createdAt' => '2023-10-30T04:13:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-09T11:30:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-12T02:58:38.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-04T09:25:41.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-29T02:29:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-06-17T06:19:31.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTagResources'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServergroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n sgp-atstuj3rtoptyui****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'RemoveServersFromServerGroup', ], - 'UpdateServerGroupAttribute' => [ - 'summary' => 'Modifies the configurations of a Network Load Balancer (NLB) server group.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'LoadBalancerJoinSecurityGroup' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8211,391 +5881,248 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '141878', - 'abilityTreeNodes' => [ - 'FEATUREslbVDXH6N', - ], - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'ServerGroupId', + 'name' => 'SecurityGroupIds', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'title' => '服务器组ID', - 'description' => 'The server group ID.'."\n", - 'type' => 'string', + 'description' => 'The security group ID of the instance.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The security group ID of the instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sg-bp1fg655nh68xyz9****', 'title' => ''], 'required' => true, - 'example' => 'sgp-atstuj3rtoptyui****', - ], - ], - [ - 'name' => 'ServerGroupName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The new name of the server group.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, can contain digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'NLB_ServerGroup1', - ], - ], - [ - 'name' => 'ConnectionDrainEnabled', - 'in' => 'formData', - 'schema' => [ - 'title' => '是否开启连接优雅中断', - 'description' => 'Specifies whether to enable connection draining. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ConnectionDrainTimeout', - 'in' => 'formData', - 'schema' => [ - 'title' => '连接优雅中断超时时间', - 'description' => 'Specify a timeout period for connection draining. Unit: seconds. Valid values: **0** to **900**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'Scheduler', - 'in' => 'formData', - 'schema' => [ - 'title' => '调度类型', - 'description' => 'The scheduling algorithm. Valid values:'."\n" - ."\n" - .'* **Wrr**: weighted round-robin. Backend servers with higher weights receive more requests.'."\n" - .'* **Wlc**: weighted least connections. Requests are distributed based on the weight and load of each backend server. The load refers to the number of connections on a backend server. If multiple backend servers have the same weight, requests are forwarded to the backend server with the least connections.'."\n" - .'* **rr**: Requests are forwarded to backend servers in sequence.'."\n" - .'* **sch**: source IP hash. Requests from the same source IP address are forwarded to the same backend server.'."\n" - .'* **tch**: consistent hashing based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same four factors are forwarded to the same backend server.'."\n" - .'* **qch**: QUIC ID hash. Requests that contain the same QUIC ID are forwarded to the same backend server.'."\n" - ."\n" - .'> QUIC ID hash is supported only when the backend protocol is set to UDP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Wrr', + 'maxItems' => 10, + 'title' => '', ], ], [ - 'name' => 'IpVersionAffinityMode', + 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'type' => 'string', - 'enum' => [ - 'NonAffinity', - 'Affinity', - ], - ], + 'schema' => ['description' => 'The ID of the NLB instance which you want to add to a security group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], ], [ - 'name' => 'PreserveClientIpEnabled', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to enable client IP preservation. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n" - ."\n" - .'> You cannot set this parameter to **true** if **PreserveClientIpEnabled** is set to **false** and the server group is associated with a listener that uses **SSL over TCP**.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: prechecks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'HealthCheckConfig', + 'name' => 'ClientToken', 'in' => 'formData', - 'style' => 'flat', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '健康检查配置', - 'description' => 'Health check configurations.'."\n", + 'title' => 'response', + 'description' => 'Associates the NLB instance with a security group.'."\n", 'type' => 'object', 'properties' => [ - 'HealthCheckEnabled' => [ - 'title' => '是否开启健康检查', - 'description' => 'Specifies whether to enable health checks. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'HealthCheckType' => [ - 'title' => '健康检查协议类型', - 'description' => 'The protocol that is used for health checks. Valid values:'."\n" - ."\n" - .'* **TCP**'."\n" - .'* **HTTP**'."\n" - .'* **UDP**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TCP', - ], - 'HealthCheckConnectPort' => [ - 'title' => '健康检查使用的端口', - 'description' => 'The backend port that is used for health checks. Valid values: **0** to **65535**. If you set this parameter to **0**, the port that the backend server uses to provide services is also used for health checks.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], - 'HealthyThreshold' => [ - 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success', - 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status changes from **fail** to **success**. Valid values: **2** to **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', - ], - 'UnhealthyThreshold' => [ - 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail', - 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status changes from **success** to **fail**. Valid values: **2** to **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', - ], - 'HealthCheckConnectTimeout' => [ - 'title' => '健康检查响应的最大超时时间', - 'description' => 'The timeout period for a health check response. Unit: seconds. Valid values: **1 to 300**. Default value: **5**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - 'HealthCheckInterval' => [ - 'title' => '健康检查时间间隔', - 'description' => 'The interval at which health checks are performed. Unit: seconds. Default value: **5**.'."\n" - ."\n" - .'* If you set **HealthCheckType** to **TCP** or **HTTP**, valid values are **1 to 50**.'."\n" - .'* If you set **HealthCheckType** to **UDP**, valid values are **1 to 300**. Set the health check interval equal to or larger than the response timeout period to ensure that UDP response timeouts are not determined as no responses.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], - 'HealthCheckDomain' => [ - 'title' => '健康检查的域名', - 'description' => 'The domain name used for health checks. Valid values:'."\n" - ."\n" - .'* **$SERVER_IP**: the internal IP address of a backend server.'."\n" - .'* **domain**: the specified domain name. The domain name must be 1 to 80 characters in length, and can contain lowercase letters, digits, hyphens (-), and periods (.).'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '$SERVER_IP', - ], - 'HealthCheckUrl' => [ - 'title' => '健康检查的url', - 'description' => 'The path to which health check probes are sent.'."\n" - ."\n" - .'The path must be 1 to 80 characters in length and can contain only letters, digits, and the following special characters: `- / . % ? # & =`. It can also contain the following extended characters: `_ ; ~ ! ( ) * [ ] @ $ ^ : \' , +`. It must start with a forward slash (/).'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '/test/index.html', - ], - 'HealthCheckHttpCode' => [ - 'title' => '状态码,多个状态码用逗号分隔', - 'description' => 'The HTTP status codes to return for health checks. Separate multiple HTTP status codes with commas (,). Valid values: **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The HTTP status codes to return for health checks. Separate multiple HTTP status codes with commas (,). Valid values: **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'http_2xx', - ], - 'required' => false, - ], - 'HttpCheckMethod' => [ - 'description' => 'The HTTP method used for health checks. Valid values: **GET** and **HEAD**.'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'GET', - 'enum' => [], - ], - 'HealthCheckReq' => [ - 'description' => 'The request string of UDP health checks. The string must be 1 to 512 characters in length, and can contain letters and digits.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'hello', - ], - 'HealthCheckExp' => [ - 'description' => 'The response string of UDP health checks. The string must be 1 to 512 characters in length, and can contain letters and digits.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ok', - ], - 'HealthCheckHttpVersion' => [ - 'description' => 'The version of the HTTP protocol. Valid values: **HTTP1.0** and **HTTP1.1**.'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'HTTP1.0', - 'enum' => [ - 'HTTP1.0', - 'HTTP1.1', - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], - 'required' => false, ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.QuotaInsufficient', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota is insufficient, currently used %s/%s. Please modify the quota size in the quota center.'], + ['errorCode' => 'Conflict.SecurityGroup', 'errorMessage' => 'The SecurityGroup [%s] is conflict.', 'description' => 'The specific resource is conflict.'], + ['errorCode' => 'Mismatch.%s', 'errorMessage' => 'The %s is mismatched for %s and %s.', 'description' => ''], + ['errorCode' => 'OperationDenied.%s', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''], + ['errorCode' => 'TagInvokeError', 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', 'description' => ''], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => 'The specific resource is conflict.'], + ['errorCode' => 'Mismatch.vpc', 'errorMessage' => 'The Vpc is mismatched for %s and %s.', 'description' => ''], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], + ['errorCode' => 'ResourceInCreating.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', 'description' => 'The specified resource of loadbalancer is creating, please try again later.'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => 'The specified resource of loadbalancer is being configured, please try again later.'], + ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ['errorCode' => 'Forbidden.SecurityGroup', 'errorMessage' => 'Authentication is failed for SecurityGroup.', 'description' => 'Authentication is failed for SecurityGroup.'], + ], [ - 'name' => 'RegionId', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.SecurityGroup', 'errorMessage' => 'The specified resource of SecurityGroup is not found.', 'description' => 'The specified SecurityGroup resource was not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'LoadBalancerJoinSecurityGroup', + 'summary' => 'Associates a security group with a Network Load Balancer (NLB) instance.', + 'description' => '* Make sure that you have created a security group. For more information about how to create a security group, see [CreateSecurityGroup](~~25553~~).'."\n" + ."\n" + .'* An NLB instance can be associated with up to four security groups.'."\n" + ."\n" + .'* You can query the security groups that are associated with an NLB instance by calling the [GetLoadBalancerAttribute](~~214362~~) operation.'."\n" + ."\n" + .'* LoadBalancerJoinSecurityGroup is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetJobStatus](~~445904~~) operation to query the status of a task.'."\n" + ."\n" + .' * If the task is in the **Succeeded** state, the security group is associated.'."\n" + .' * If the task is in the **Processing** state, the security group is being associated. In this case, you can perform only query operations.'."\n", + 'changeSet' => [ + ['createdAt' => '2023-10-30T04:13:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-12T07:29:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-12T02:58:38.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:43.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-14T09:47:51.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'LoadBalancerJoinSecurityGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:LoadBalancerJoinSecurityGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityGroup', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:securitygroup/{#SecurityGroupId}'], + ], + ], + ], + ], + ], + 'LoadBalancerLeaveSecurityGroup' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'SecurityGroupIds', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + 'description' => 'The ID of the security group to be disassociated.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the security group to be disassociated.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sg-bp1fg655nh68xyz9****', 'title' => ''], + 'required' => true, + 'maxItems' => 10, + 'title' => '', ], ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'formData', + 'schema' => ['description' => 'The NLB instance ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], + ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => ' false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: checks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'Updates the configuration of a server group.'."\n", + 'title' => 'response', + 'description' => 'response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ServerGroupId' => [ - 'description' => 'The server group ID.'."\n", - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam.healthCheckDomain', - 'errorMessage' => 'The parameter of healthCheckConfig.healthCheckDomain is illegal.', - ], - [ - 'errorCode' => 'IlleagalParam.healthCheckUrl', - 'errorMessage' => 'The parameter of healthCheckUrl in healthCheckConfig is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.UidNotAllowQuic29', - 'errorMessage' => 'The operation is not allowed because of uid not allow quic29 version.', - ], - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IllegalParam.ServerGroupName', - 'errorMessage' => 'The param of ServerGroupName is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.PreserveClientIpSwitch', - 'errorMessage' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => 'The specified resource of loadbalancer is being configured, please try again later.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.SecurityGroup', 'errorMessage' => 'Authentication is failed for SecurityGroup.', 'description' => 'Authentication is failed for SecurityGroup.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', + ['errorCode' => 'ResourceNotFound.%s', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'LoadBalancerLeaveSecurityGroup', + 'summary' => 'Disassociates a Network Load Balancer (NLB) instance from a security group.', + 'description' => 'LoadBalancerLeaveSecurityGroup is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetJobStatus](~~445904~~) operation to query the status of a task.'."\n" + ."\n" + .'* If the task is in the **Succeeded** state, the security group is disassociated.'."\n" + .'* If the task is in the **Processing** state, the security group is being disassociated. In this case, you can perform only query operations.'."\n", + 'changeSet' => [ + ['createdAt' => '2024-03-21T04:00:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-04T05:53:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:27.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-14T09:47:51.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'LoadBalancerLeaveSecurityGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:LoadBalancerLeaveSecurityGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityGroup', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:securitygroup/{#SecurityGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n sgp-atstuj3rtoptyui****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'UpdateServerGroupAttribute', ], - 'UpdateServerGroupServersAttribute' => [ - 'summary' => 'Modifies the weights and descriptions of backend servers in a server group of a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'MoveResourceGroup' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8605,163 +6132,57 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'abilityTreeNodes' => [ - 'FEATUREslb3GOGI0', - 'FEATUREslbBEALOE', - 'FEATUREslb3DZO9R', - 'FEATUREslbWFW5HS', - 'FEATUREslbBYQ1MP', - 'FEATUREslbYU1H2O', - ], + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '179098', + 'abilityTreeNodes' => ['FEATUREslbZQW9H1'], ], 'parameters' => [ [ - 'name' => 'ServerGroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The server group ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'sgp-atstuj3rtoptyui****', - ], - ], - [ - 'name' => 'Servers', + 'name' => 'NewResourceGroupId', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The backend servers. You can specify at most 200 backend servers in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The backend servers. You can specify at most 200 backend servers in each call.'."\n", - 'type' => 'object', - 'properties' => [ - 'ServerId' => [ - 'title' => '服务器id', - 'description' => 'The backend server ID.'."\n" - ."\n" - .'* If the server group is of the **Instance** type, set this parameter to the IDs of servers of the **Ecs**, **Eni**, or **Eci** type.'."\n" - .'* If the server group is of the **Ip** type, set this parameter to IP addresses.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ecs-bp67acfmxazb4p****', - ], - 'ServerType' => [ - 'title' => '服务器类型', - 'description' => 'The type of the backend server. Valid values:'."\n" - ."\n" - .'* **Ecs**: Elastic Compute Service (ECS) instance'."\n" - .'* **Eni**: elastic network interface (ENI)'."\n" - .'* **Eci**: elastic container instance'."\n" - .'* **Ip**: IP address'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Ecs', - 'enum' => [], - ], - 'ServerIp' => [ - 'title' => '服务器ip', - 'description' => 'The IP addresses of servers. If the server group type is **Ip**, set the ServerId parameter to IP addresses.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.6.6', - ], - 'Port' => [ - 'title' => '服务器端口', - 'description' => 'The port used by the backend server. Valid values: **1** to **65535**.'."\n" - ."\n" - .'> This parameter cannot be modified.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '443', - ], - 'Weight' => [ - 'title' => '后端权重', - 'description' => 'The weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If the value is set to **0**, no requests are forwarded to the server.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - 'Description' => [ - 'title' => '服务器描述信息', - 'description' => 'The description of the backend server.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at sings (@), underscores (\\_), and hyphens (-).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 200, - ], + 'schema' => ['description' => 'The ID of the new resource group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'rg-aekzjcnrv3vvqhq', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ResourceType', 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The type of resource. Valid values:'."\n" + ."\n" + .'* **loadbalancer**: a Network Load Balancer (NLB) instance'."\n" + .'* **securitypolicy**: a security policy'."\n" + .'* **servergroup**: a server group'."\n", 'type' => 'string', 'required' => true, 'example' => 'loadbalancer', 'title' => ''], ], [ - 'name' => 'DryRun', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'name' => 'ResourceId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the resource.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-nrnrxwd15en27r****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The region ID of the resource.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'Updates the configurations of backend servers in a server group.'."\n", + 'title' => 'RpcResponse', + 'description' => 'RpcResponse', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ServerGroupId' => [ - 'description' => 'The server group ID.'."\n", - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request was successful. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The HTTP status code returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'Data' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'ResourceId' => ['description' => 'The ID of the resource. You can specify up to 50 resource IDs in each call.'."\n", 'type' => 'string', 'example' => 'nlb-nrnrxwd15en27r****', 'title' => ''], + ], + 'title' => '', ], ], ], @@ -8769,593 +6190,195 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.serverGroup', - 'errorMessage' => 'The status of servergroup [%s] is incorrect.', - ], - [ - 'errorCode' => 'Conflict.Lock', - 'errorMessage' => 'The Lock [%s] is conflict.', - ], - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', - ], + ['errorCode' => 'IllegalParam.resourceType', 'errorMessage' => 'The param of resourceType is illegal.', 'description' => 'The parameter resourceType is invalid. Please check the input value of the parameter resourceType.'], + ['errorCode' => 'OperationFailed.StatusCheckFail.ResourceGroup', 'errorMessage' => 'The operation failed because of StatusCheckFail.ResourceGroup.', 'description' => 'The operation failed because the resource group status check failed.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.%s', - 'errorMessage' => 'Authentication is failed for %s.', - ], - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.BackendServer', - 'errorMessage' => 'The specified resource of BackendServer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.ResourceGroup', 'errorMessage' => 'The param of resourceGroup not existed.', 'description' => 'The resource group does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Success\\": true,\\n \\"HttpStatusCode\\": 200,\\n \\"Data\\": {\\n \\"ResourceId\\": \\"nlb-nrnrxwd15en27r****\\"\\n }\\n}","type":"json"}]', + 'title' => 'MoveResourceGroup', + 'summary' => 'Modify the group of resource.', + 'changeSet' => [ + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:43.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:29.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'MoveResourceGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:MoveResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:serverGroup/{#serverGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n sgp-atstuj3rtoptyui****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'UpdateServerGroupServersAttribute', - 'description' => '**UpdateServerGroupServersAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background.'."\n" - ."\n" - .'1. You can call the [ListServerGroups](~~445895~~) operation to query the status of a server group.'."\n" - ."\n" - .' * If a server group is in the **Configuring** state, the server group is being modified.'."\n" - .' * If a server group is in the **Available** state, the server group is running.'."\n" - ."\n" - .'2. You can call the [ListServerGroupServers](~~445896~~) operation to query the status of a backend server.'."\n" - ."\n" - .' * If a backend server is in the **Configuring** state, it indicates that the backend server is being modified.'."\n" - .' * If a backend server is in the **Available** state, it indicates that the backend server is running.', ], - 'ListServerGroups' => [ - 'summary' => 'Queries the server groups of a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RemoveServersFromServerGroup' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '141872', - 'abilityTreeNodes' => [ - 'FEATUREslbVDXH6N', - ], - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'ServerGroupIds', + 'name' => 'ServerGroupId', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The server group IDs. You can specify up to 20 server group IDs in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The server group ID. You can specify up to 20 server group IDs in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The server group ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****', 'title' => ''], ], [ - 'name' => 'ServerGroupNames', + 'name' => 'Servers', 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The names of the server groups to be queried. You can specify up to 20 names in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The name of the server group to be queried. You can specify up to 20 names in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'NLB_ServerGroup', - ], - 'required' => false, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the resource group to which the server group belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', - ], - ], - [ - 'name' => 'ServerGroupType', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The type of server group. Valid values:'."\n" - ."\n" - .'* **Instance**: allows you to add servers of the **Ecs**, **Ens**, and **Eci** types.'."\n" - .'* **Ip**: allows you to add servers by specifying IP addresses.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Instance', - ], - ], - [ - 'name' => 'VpcId', - 'in' => 'formData', - 'schema' => [ - 'title' => '服务器组所在vpc的id', - 'description' => 'The ID of the virtual private cloud (VPC) in which the server group is deployed.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp15zckdt37pq72zv****', - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => 'The tags.'."\n", + 'description' => 'The backend servers. You can specify up to 200 backend servers in each call.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The tag.'."\n", + 'description' => 'The backend server. You can specify up to 200 backend servers in each call.'."\n", 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. You can specify up to 10 tag keys.'."\n" - ."\n" - .'The tag key can be up to 64 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - 'Value' => [ - 'description' => 'The value of the tag. You can specify up to 10 tag values.'."\n" + 'ServerId' => ['title' => '', 'description' => 'The backend server ID.'."\n" + ."\n" + .'* If the server group is of the **Instance** type, set this parameter to the IDs of servers of the **Ecs**, **Eni**, or **Eci** type.'."\n" + .'* If the server group is of the **Ip** type, set ServerId to IP addresses.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ecs-bp67acfmxazb4p****'], + 'ServerType' => [ + 'title' => '', + 'description' => 'The type of the backend server. Valid values:'."\n" ."\n" - .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` and `acs:`, and cannot contain `http://` or `https://`.'."\n", + .'* **Ecs**: the Elastic Compute Service (ECS) instance'."\n" + .'* **Eni**: the elastic network interface (ENI)'."\n" + .'* **Eci**: the elastic container instance'."\n" + .'* **Ip**: the IP address'."\n", 'type' => 'string', - 'required' => false, - 'example' => 'Test', + 'required' => true, + 'example' => 'Ecs', + 'enum' => [], ], + 'ServerIp' => ['title' => '', 'description' => 'The IP addresses of the server. If the server group type is **Ip**, set the ServerId parameter to IP addresses.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.6.6'], + 'Port' => ['title' => '', 'description' => 'The port that is used by the backend server. Valid values: **0** to **65535**. If you do not set this parameter, the default value **0** is used.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '443'], ], 'required' => false, + 'title' => '', ], - 'required' => false, - 'maxItems' => 20, - 'minItems' => 1, + 'required' => true, + 'maxItems' => 200, + 'title' => '', ], ], [ - 'name' => 'NextToken', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'The pagination token used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* For the first request and last request, you do not need to specify this parameter.'."\n" - .'* You must specify the token obtained from the previous query as the value of NextToken.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'The operation to query server groups.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B28E3D-DF70-471B-AA93-08E683A1B45', - ], - 'ServerGroups' => [ - 'description' => 'A list of server groups.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The server group.'."\n", - 'type' => 'object', - 'properties' => [ - 'RegionId' => [ - 'title' => '业务region', - 'description' => 'The region ID of the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'ServerGroupId' => [ - 'title' => '服务器组id', - 'description' => 'The server group ID.'."\n", - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'ServerGroupName' => [ - 'title' => '服务器组名称', - 'description' => 'The server group name.'."\n", - 'type' => 'string', - 'example' => 'NLB_ServerGroup', - ], - 'ServerGroupType' => [ - 'title' => '服务器组类型', - 'description' => 'The type of server group. Valid values:'."\n" - ."\n" - .'* **Instance** : contains servers of the **Ecs**, **Ens**, and **Eci** types.'."\n" - .'* **Ip**: contains servers specified by IP addresses.'."\n", - 'type' => 'string', - 'example' => 'Instance', - ], - 'AddressIPVersion' => [ - 'title' => '服务器组地址类型', - 'description' => 'The IP version. Valid values:'."\n" - ."\n" - .'* **ipv4**'."\n" - .'* **DualStack**'."\n", - 'type' => 'string', - 'example' => 'ipv4', - ], - 'VpcId' => [ - 'title' => '服务器组的vpcid', - 'description' => 'The ID of the VPC to which the server group belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp15zckdt37pq72zv****', - ], - 'Scheduler' => [ - 'title' => '调度类型', - 'description' => 'The routing algorithm. Valid values:'."\n" - ."\n" - .'* **Wrr**: Backend servers with higher weights receive more requests than backend servers with lower weights.'."\n" - .'* **rr**: Requests are forwarded to the backend servers in sequence. sch: Requests are forwarded to the backend servers based on source IP address hashing.'."\n" - .'* **sch**: Requests from the same source IP address are forwarded to the same backend server.'."\n" - .'* **tch**: Four-element hashing, which specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are forwarded to the same backend server.'."\n" - .'* **qch**: QUIC ID hashing. Requests that contain the same QUIC ID are forwarded to the same backend server.'."\n", - 'type' => 'string', - 'example' => 'Wrr', - ], - 'Protocol' => [ - 'title' => '后端协议', - 'description' => 'The backend protocol. Valid values: **TCP** and **UDP**.'."\n", - 'type' => 'string', - 'example' => 'TCP', - ], - 'HealthCheck' => [ - 'title' => '健康检查配置', - 'description' => 'The configurations of health checks.'."\n", - 'type' => 'object', - 'properties' => [ - 'HealthCheckEnabled' => [ - 'title' => '是否开启健康检查', - 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'HealthCheckType' => [ - 'title' => '健康检查协议类型', - 'description' => 'The protocol that is used for health checks. Valid values:'."\n" - ."\n" - .'* **TCP**'."\n" - .'* **HTTP**'."\n" - .'* **UDP**'."\n", - 'type' => 'string', - 'example' => 'TCP', - ], - 'HealthCheckConnectPort' => [ - 'title' => '健康检查使用的端口', - 'description' => 'The backend port that is used for health checks.'."\n" - ."\n" - .'Valid values: **0** to **65535**.'."\n" - ."\n" - .'A value of **0** indicates that the port on a backend server is used for health checks.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'HealthyThreshold' => [ - 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success', - 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status changes from **fail** to **success**.'."\n" - ."\n" - .'Valid values: **2** to **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'UnhealthyThreshold' => [ - 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail', - 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status changes from **success** to **fail**.'."\n" - ."\n" - .'Valid values: **2** to **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'HealthCheckConnectTimeout' => [ - 'title' => '健康检查响应的最大超时时间', - 'description' => 'The maximum timeout period of a health check response. Unit: seconds. Default value: **5**.'."\n" - ."\n" - .'Valid values: **1** to **300**'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'HealthCheckInterval' => [ - 'title' => '健康检查时间间隔', - 'description' => 'The interval at which health checks are performed. Unit: seconds. Default value: **5**.'."\n" - ."\n" - .'* If you set **HealthCheckType** to **TCP** or **HTTP**, valid values are **1 to 50**.'."\n" - .'* If you set **HealthCheckType** to **UDP**, valid values are **1 to 300**. Set the health check interval equal to or larger than the response timeout period to ensure that UDP response timeouts are not determined as no responses.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'HealthCheckDomain' => [ - 'title' => '健康检查的域名', - 'description' => 'The domain name that you want to use for health checks. Valid values:'."\n" - ."\n" - .'* **$SERVER_IP**: the private IP address of a backend server.'."\n" - .'* **domain**: a specified domain name. The domain name must be 1 to 80 characters in length, and can contain lowercase letters, digits, hyphens (-), and periods (.).'."\n" - ."\n" - .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.'."\n", - 'type' => 'string', - 'example' => '$SERVER_IP', - ], - 'HealthCheckUrl' => [ - 'title' => '健康检查的url', - 'description' => 'The path to which health check probes are sent.'."\n" - ."\n" - .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.'."\n", - 'type' => 'string', - 'example' => '/test/index.html', - ], - 'HealthCheckHttpCode' => [ - 'title' => '状态码,多个状态码用逗号分隔', - 'description' => 'The HTTP status codes returned for health checks. Multiple HTTP status codes are separated by commas (,). Valid values: **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" - ."\n" - .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The HTTP status codes returned for health checks. Multiple HTTP status codes are separated by commas (,). Valid values: **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" - ."\n" - .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.'."\n", - 'type' => 'string', - 'example' => 'http_2xx', - ], - ], - 'HttpCheckMethod' => [ - 'description' => 'The HTTP method that is used for health checks. Valid values: **GET** and **HEAD**.'."\n" - ."\n" - .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.'."\n", - 'type' => 'string', - 'example' => 'GET', - ], - 'HealthCheckReq' => [ - 'description' => 'The request string of UDP health checks. The string must be 1 to 512 characters in length, and can contain letters and digits.'."\n", - 'type' => 'string', - 'example' => 'hello', - ], - 'HealthCheckExp' => [ - 'description' => 'The response string of UDP health checks. The string must be 1 to 512 characters in length, and can contain letters and digits.'."\n", - 'type' => 'string', - 'example' => 'ok', - ], - 'HealthCheckHttpVersion' => [ - 'description' => 'The version of the HTTP protocol. Valid values: **HTTP1.0** and **HTTP1.1**.'."\n" - ."\n" - .'> This parameter takes effect only if you set **HealthCheckType** to **HTTP**.'."\n", - 'type' => 'string', - 'example' => 'HTTP1.0', - ], - ], - ], - 'ConnectionDrainEnabled' => [ - 'title' => '连接优雅中断开关', - 'description' => 'Indicates whether connection draining is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'ConnectionDrainTimeout' => [ - 'title' => '连接优雅中断超时时间', - 'description' => 'The timeout period of connection draining. Unit: seconds. Valid values: **10** to **900**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'PreserveClientIpEnabled' => [ - 'title' => '客户端地址保持开关', - 'description' => 'Indicates whether client IP preservation is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n" - ."\n" - .'> This parameter is set to **true** by default when **AddressIPVersion** is set to **ipv4**. This parameter is set to **false** when **AddressIPVersion** is set to **ipv6**. **true** will be supported by later versions.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'AnyPortEnabled' => [ - 'description' => 'Indicates whether the feature of forwarding requests to all ports is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'ResourceGroupId' => [ - 'title' => '资源组id', - 'description' => 'The ID of the resource group to which the server group belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - 'ServerGroupStatus' => [ - 'title' => '状态', - 'description' => 'The status of the server group. Valid values:'."\n" - ."\n" - .'* **Creating**'."\n" - .'* **Available**'."\n" - .'* **Configuring**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'AliUid' => [ - 'description' => 'The ID of the Alibaba Cloud account.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '165820696622****', - ], - 'Tags' => [ - 'description' => 'The tag.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tags.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. At most 10 tag keys are returned.'."\n" - ."\n" - .'The tag key can be up to 64 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'example' => 'Test', - ], - 'Value' => [ - 'description' => 'The tag value. At most 10 tag values are returned.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'example' => 'Test', - ], - ], - ], - ], - 'RelatedLoadBalancerIds' => [ - 'description' => 'The NLB instances.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'A list of NLB instances.'."\n", - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - ], - 'ServerCount' => [ - 'description' => 'The number of server groups associated with the NLB instances.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'IpVersionAffinityMode' => [ - 'type' => 'string', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **100**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 200 => [ + 'schema' => [ + 'title' => 'RpcResponse', + 'description' => 'Removes backend servers from a server group.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'ServerGroupId' => ['description' => 'The server group ID.'."\n", 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => 'The specific resource is conflict.'], + ['errorCode' => 'IncorrectStatus.serverGroup', 'errorMessage' => 'The status of servergroup [%s] is incorrect.', 'description' => 'The current operation cannot be performed on the server group as its status is unavailable. Please check if the server group is currently undergoing any other operations.'."\n"], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'IdempotenceSignatureMismatch', 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', 'description' => 'The requested idempotent token is the same as the previous one, but the signature is different.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.%s', - 'errorMessage' => 'Authentication is failed for %s.', - ], - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], + [ + ['errorCode' => 'ResourceNotFound.BackendServer', 'errorMessage' => 'The specified resource of BackendServer is not found.', 'description' => 'The specified backend server resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => 'The specified resource of serverGroup is not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n sgp-atstuj3rtoptyui****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'RemoveServersFromServerGroup', + 'summary' => 'Deletes server groups from a Network Load Balancer (NLB) instance.', + 'changeSet' => [ + ['createdAt' => '2024-02-04T05:53:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-29T06:32:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:43.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T05:42:12.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-22T04:15:31.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-09-20T16:36:31.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:17.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveServersFromServerGroup'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:RemoveServersFromServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B28E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroups\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"ServerGroupName\\": \\"NLB_ServerGroup\\",\\n \\"ServerGroupType\\": \\"Instance\\",\\n \\"AddressIPVersion\\": \\"ipv4\\",\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"Scheduler\\": \\"Wrr\\",\\n \\"Protocol\\": \\"TCP\\",\\n \\"HealthCheck\\": {\\n \\"HealthCheckEnabled\\": false,\\n \\"HealthCheckType\\": \\"TCP\\",\\n \\"HealthCheckConnectPort\\": 200,\\n \\"HealthyThreshold\\": 2,\\n \\"UnhealthyThreshold\\": 3,\\n \\"HealthCheckConnectTimeout\\": 200,\\n \\"HealthCheckInterval\\": 10,\\n \\"HealthCheckDomain\\": \\"$SERVER_IP\\",\\n \\"HealthCheckUrl\\": \\"/test/index.html\\",\\n \\"HealthCheckHttpCode\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HttpCheckMethod\\": \\"GET\\",\\n \\"HealthCheckReq\\": \\"hello\\",\\n \\"HealthCheckExp\\": \\"ok\\",\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.0\\"\\n },\\n \\"ConnectionDrainEnabled\\": false,\\n \\"ConnectionDrainTimeout\\": 200,\\n \\"PreserveClientIpEnabled\\": true,\\n \\"AnyPortEnabled\\": false,\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"ServerGroupStatus\\": \\"Available\\",\\n \\"AliUid\\": 0,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"RelatedLoadBalancerIds\\": [\\n \\"nlb-83ckzc8d4xlp8o****\\"\\n ],\\n \\"ServerCount\\": 2,\\n \\"IpVersionAffinityMode\\": \\"Affinity\\"\\n }\\n ],\\n \\"TotalCount\\": 1,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n 54B28E3D-DF70-471B-AA93-08E683A1B45\\n \\n cn-hangzhou\\n sgp-atstuj3rtoptyui****\\n NLB_ServerGroup\\n Instance\\n ipv4\\n vpc-bp15zckdt37pq72zv****\\n Wrr\\n TCP\\n \\n false\\n TCP\\n 200\\n 2\\n 3\\n 200\\n 200\\n $SERVER_IP\\n /test/index.html\\n http2xx\\n GET\\n \\n false\\n 200\\n true\\n false\\n rg-atstuj3rtop****\\n Available\\n \\n Test\\n Test\\n \\n nlb-83ckzc8d4xlp8o****\\n 2\\n \\n 1\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 20\\n","errorExample":""}]', - 'title' => 'ListServerGroups', - 'description' => "\n", ], - 'ListServerGroupServers' => [ - 'summary' => 'Queries servers in a server group of a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SetHdMonitorRegionConfig' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9365,236 +6388,188 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', - 'abilityTreeCode' => '141867', - 'abilityTreeNodes' => [ - 'FEATUREslb3GOGI0', - ], + 'abilityTreeCode' => '207971', + 'abilityTreeNodes' => ['FEATUREslbNC4CZR'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'ServerGroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the server group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sgp-atstuj3rtoptyui****', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~2399192~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'ServerIds', - 'in' => 'formData', - 'style' => 'repeatList', + 'name' => 'LogProject', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The name of the Log Service project.'."\n", 'type' => 'string', 'required' => true, 'example' => 'hdmonitor-cn-hangzhou-223794579283657556'], + ], + [ + 'name' => 'MetricStore', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The name of the MetricStore in Simple Log Service.', 'type' => 'string', 'required' => true, 'example' => 'hdmonitor-cn-hangzhou-metricStore-1'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The IDs of the backend servers. You can specify up to 40 backend servers in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the backend server. You can specify up to 40 backend servers in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'i-bp67acfmxazb4p****', + 'title' => 'RpcResponse', + 'description' => 'RpcResponse'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~2399192~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'LogProject' => ['description' => 'The name of the Log Service project.'."\n", 'type' => 'string', 'example' => 'hdmonitor-cn-hangzhou-223794579283657556', 'title' => ''], + 'MetricStore' => ['description' => 'The name of the MetricStore in Simple Log Service.', 'type' => 'string', 'example' => 'hdmonitor-cn-hangzhou-metricStore-1', 'title' => ''], ], - 'required' => false, - 'maxItems' => 100, ], ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], [ - 'name' => 'ServerIps', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The IP addresses of the backend servers. You can specify up to 40 backend servers in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The IP address of the backend server. You can specify up to 40 backend servers in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.6.3', + ['errorCode' => 'EnableHDMonitor.Fail', 'errorMessage' => 'EnableHDMonitor Fail.', 'description' => 'Set HD monitoring error'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LogProject\\": \\"hdmonitor-cn-hangzhou-223794579283657556\\",\\n \\"MetricStore\\": \\"hdmonitor-cn-hangzhou-metricStore-1\\"\\n}","type":"json"}]', + 'title' => 'SetHdMonitorRegionConfig', + 'summary' => 'Configures storage for fine-grained monitoring.', + 'description' => 'This operation is used to configure a data warehouse for the fine-grained monitoring feature. If a listener in the current region has fine-grained monitoring enabled, you must disable fine-grained monitoring before you can configure a warehouse.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SetHdMonitorRegionConfig'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:SetHdMonitorRegionConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'All Resource', 'arn' => '*'], ], - 'required' => false, - 'maxItems' => 100, ], ], + ], + ], + 'StartListener' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '141893', + 'abilityTreeNodes' => ['FEATUREslbC68LB1', 'FEATUREslb4PUXNB', 'FEATUREslbGDCN1S', 'FEATUREslbUZZGGD'], + ], + 'parameters' => [ [ - 'name' => 'NextToken', + 'name' => 'ListenerId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The pagination token used to specify a particular page of results. Valid values:'."\n" - ."\n" - .'* Left this parameter empty if this is the first query or the only query.'."\n" - .'* Set this parameter to the value of NextToken obtained from the previous query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['title' => '', 'description' => 'The listener ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn908w4nbw****@80'], ], [ - 'name' => 'MaxResults', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'The number of entries to return in each call. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'The operation to query servers.'."\n", + 'title' => 'RpcResponse', + 'description' => 'The operation to enable a listener.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'Servers' => [ - 'description' => 'The backend servers.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'ServerId' => [ - 'title' => '服务器id', - 'description' => 'The ID of the server group.'."\n", - 'type' => 'string', - 'example' => 'i-bp67acfmxazb4p****', - ], - 'ServerType' => [ - 'title' => '服务器类型', - 'description' => 'The type of backend server. Valid values:'."\n" - ."\n" - .'* **Ecs**: Elastic Compute Service (ECS) instance'."\n" - .'* **Eni**: elastic network interface (ENI)'."\n" - .'* **Eci**: elastic container instance'."\n" - .'* **Ip**: IP address'."\n", - 'type' => 'string', - 'example' => 'Ecs', - ], - 'ServerIp' => [ - 'title' => '服务器ip', - 'description' => 'The IP address of the backend server.'."\n", - 'type' => 'string', - 'example' => '192.168.2.1', - ], - 'Port' => [ - 'title' => '服务器端口', - 'description' => 'The port that is used by the backend server. Valid values: **1** to **65535**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Weight' => [ - 'title' => '后端权重', - 'description' => 'The weight of the backend server.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'ServerGroupId' => [ - 'description' => 'The ID of the server group.'."\n", - 'type' => 'string', - 'example' => 'sgp-atstuj3rtoptyui****', - ], - 'Description' => [ - 'title' => '服务器描述信息', - 'description' => 'The description of the backend server.'."\n", - 'type' => 'string', - 'example' => 'ECS', - ], - 'ZoneId' => [ - 'title' => '服务器对应的zoneId', - 'description' => 'The zone ID of the server.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-a', - ], - 'Status' => [ - 'title' => '服务器的状态', - 'description' => 'The status of the backend server. Valid values:'."\n" - ."\n" - .'* **Adding**'."\n" - .'* **Available**'."\n" - .'* **Configuring**'."\n" - .'* **Removing**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'NextToken' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If this is your first query or no next query is to be sent, ignore this parameter.'."\n" - .'* If a next query is to be sent, set the parameter to the value of NextToken that is returned from the last call.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], + ['errorCode' => 'IncorrectStatus.listener', 'errorMessage' => 'The status of listener [%s] is incorrect.', 'description' => 'The current operation cannot be performed on the listener as its status is unavailable. Please check if the listener is currently undergoing any other operations.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', - ], + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"Servers\\": [\\n {\\n \\"ServerId\\": \\"i-bp67acfmxazb4p****\\",\\n \\"ServerType\\": \\"Ecs\\",\\n \\"ServerIp\\": \\"192.168.2.1\\",\\n \\"Port\\": 80,\\n \\"Weight\\": 100,\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"Description\\": \\"ECS\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"Status\\": \\"Available\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n \\n ecs-bp67acfmxazb4p****\\n Ecs\\n 192.168.2.1\\n 80\\n 100\\n sgp-atstuj3rtoptyui****\\n ECS\\n cn-hangzhou-a\\n Available\\n \\n 10\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 20\\n","errorExample":""}]', - 'title' => 'ListServerGroupServers', - ], - 'DetachCommonBandwidthPackageFromLoadBalancer' => [ - 'summary' => 'Disassociates a Network Load Balancer (NLB) instance from an Internet Shared Bandwidth instance.', - 'methods' => [ - 'post', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'StartListener', + 'summary' => 'Enables a Network Load Balancer (NLB) listener.', + 'changeSet' => [ + ['createdAt' => '2024-10-16T03:28:50.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-02-29T07:14:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-09T11:30:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-02T06:52:05.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:00.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartListener'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:StartListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], ], + ], + 'StartShiftLoadBalancerZones' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9602,260 +6577,228 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'LoadBalancerId', + 'name' => 'ZoneMappings', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the NLB instance.'."\n", - 'type' => 'string', + 'description' => 'The mappings between zones and vSwitches.'."\n" + ."\n" + .'> You can remove only one IP address (or zone) in each call.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The zones and the vSwitches in the zones.'."\n" + ."\n" + .'> You can remove only one IP address (or zone) in each call.'."\n", + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => 'The ID of the vSwitch in the zone. By default, each zone uses one vSwitch and one subnet.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vsw-bp1rmcrwg3erh1fh8****', 'title' => ''], + 'ZoneId' => ['description' => 'The zone ID of the NLB instance.'."\n" + ."\n" + .'> You can remove only one IP address (or zone) in each call.'."\n" + ."\n" + .'You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a', 'title' => ''], + ], + 'required' => false, + 'title' => '', + ], 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', + 'maxItems' => 1, + 'minItems' => 1, + 'title' => '', ], ], [ - 'name' => 'BandwidthPackageId', + 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cbwp-bp1pzf0ym72pu3y76****', - ], + 'schema' => ['description' => 'The NLB instance ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => 'response', + 'title' => 'RpcResponse', + 'description' => 'RpcResponse'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.%s', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'ResourceNotAssociated.loadbalancer', - 'errorMessage' => 'Thre resource is not associated with loadbalancer.', - ], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => 'The specified resource of loadbalancer is being configured, please try again later.'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], + 403 => [ + ['errorCode' => 'Forbidden.%s', 'errorMessage' => 'Authentication is failed for %s.', 'description' => ''], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'DetachCommonBandwidthPackageFromLoadBalancer', - ], - 'AttachCommonBandwidthPackageToLoadBalancer' => [ - 'summary' => 'Associates an Internet Shared Bandwidth instance with a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '141865', - 'abilityTreeNodes' => [ - 'FEATUREslb12YEWG', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + 'title' => 'StartShiftLoadBalancerZones', + 'summary' => 'Removes the elastic IP address (EIP) or virtual IP address (VIP) used in a zone from the DNS record.', + 'description' => '> If the NLB instance is deployed in only one zone, you cannot remove the EIP or VIP from the DNS record.'."\n", + 'changeSet' => [ + ['createdAt' => '2024-01-22T09:55:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:26.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartShiftLoadBalancerZones'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:StartShiftLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], ], ], - 'parameters' => [ + ], + 'StopListener' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'LoadBalancerId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the NLB instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'BandwidthPackageId', + 'name' => 'ListenerId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cbwp-bp1pzf0ym72pu3y76****', - ], + 'schema' => ['title' => '', 'description' => 'The listener ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn908w4nbw****@80'], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs a dry run without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'response', - 'description' => 'response', + 'title' => 'RpcResponse', + 'description' => 'The operation to disable a listener.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.IntranetLoadBalancer', - 'errorMessage' => 'The operation is not allowed because of IntranetLoadBalancer.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is already associated.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.loadbalancer', - 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.listener', 'errorMessage' => 'The status of listener [%s] is incorrect.', 'description' => 'The current operation cannot be performed on the listener as its status is unavailable. Please check if the listener is currently undergoing any other operations.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.BandwidthPackageId', - 'errorMessage' => 'The specified resource of BandwidthPackageId is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.CommonBandwidthPackage', - 'errorMessage' => 'The specified resource of CommonBandwidthPackage is not found.', + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], + [ + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'StopListener', + 'summary' => 'Stops a listener of a Network Load Balancer (NLB) instance.', + 'changeSet' => [ + ['createdAt' => '2024-03-21T04:00:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-29T07:14:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-09T11:30:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:26.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-02T06:52:05.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-07-04T03:05:33.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:00.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StopListener'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:StopListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'AttachCommonBandwidthPackageToLoadBalancer', ], - 'CreateSecurityPolicy' => [ - 'summary' => 'Creates a custom security policy for a TCP/SSL listener.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'TagResources' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9865,278 +6808,147 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', - 'abilityTreeCode' => '141883', - 'abilityTreeNodes' => [ - 'FEATUREslbAZREFH', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '141891', + 'abilityTreeNodes' => ['FEATUREslbTUH0QC'], ], 'parameters' => [ [ - 'name' => 'TlsVersions', + 'name' => 'ResourceId', 'in' => 'formData', - 'style' => 'repeatList', + 'style' => 'flat', 'schema' => [ - 'description' => 'The Transport Layer Security (TLS) versions supported by the security policy. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.'."\n", + 'description' => 'The IDs of the resources. You can specify up to 50 resource IDs in each call.'."\n", 'type' => 'array', - 'items' => [ - 'description' => 'A TLS version supported by the security policy. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**. All four versions can be specified for a security policy.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TLSv1.0', - ], + 'items' => ['description' => 'The ID of the resource. You can specify up to 50 resource IDs in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nlb-nrnrxwd15en27r****', 'title' => ''], 'required' => true, - 'maxItems' => 4, + 'maxItems' => 50, 'minItems' => 1, + 'title' => '', ], ], [ - 'name' => 'SecurityPolicyName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the security policy.'."\n" - ."\n" - .'It must be 1 to 200 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TLSCipherPolicy', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the resource group to which the security policy belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-atstuj3rtop****', - ], - ], - [ - 'name' => 'Ciphers', + 'name' => 'Tag', 'in' => 'formData', - 'style' => 'repeatList', + 'style' => 'flat', 'schema' => [ - 'description' => 'The cipher suites supported by the security policy. Valid values of this parameter vary based on the value of TlsVersions. You can specify up to 32 cipher suites.'."\n" - ."\n" - .'TLSv1.0 and TLSv1.1 support the following cipher suites:'."\n" - ."\n" - .'* **ECDHE-ECDSA-AES128-SHA**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA**'."\n" - .'* **ECDHE-RSA-AES128-SHA**'."\n" - .'* **ECDHE-RSA-AES256-SHA**'."\n" - .'* **AES128-SHA**'."\n" - .'* **AES256-SHA**'."\n" - .'* **DES-CBC3-SHA**'."\n" - ."\n" - .'TLSv1.2 supports the following cipher suites:'."\n" - ."\n" - .'* **ECDHE-ECDSA-AES128-SHA**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA**'."\n" - .'* **ECDHE-RSA-AES128-SHA**'."\n" - .'* **ECDHE-RSA-AES256-SHA**'."\n" - .'* **AES128-SHA**'."\n" - .'* **AES256-SHA**'."\n" - .'* **DES-CBC3-SHA**'."\n" - .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" - .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" - .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" - .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" - .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" - .'* **ECDHE-RSA-AES128-SHA256**'."\n" - .'* **ECDHE-RSA-AES256-SHA384**'."\n" - .'* **AES128-GCM-SHA256**'."\n" - .'* **AES256-GCM-SHA384**'."\n" - .'* **AES128-SHA256**'."\n" - .'* **AES256-SHA256**'."\n" - ."\n" - .'TLSv1.3 supports the following cipher suites:'."\n" - ."\n" - .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" - .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" - .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" - .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" - .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", + 'description' => 'The tags.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The cipher suites supported by the security policy. Valid values of this parameter vary based on the value of TlsVersions. You can specify up to 32 cipher suites.'."\n" - ."\n" - .'TLSv1.0 and TLSv1.1 support the following cipher suites:'."\n" - ."\n" - .'* **ECDHE-ECDSA-AES128-SHA**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA**'."\n" - .'* **ECDHE-RSA-AES128-SHA**'."\n" - .'* **ECDHE-RSA-AES256-SHA**'."\n" - .'* **AES128-SHA**'."\n" - .'* **AES256-SHA**'."\n" - .'* **DES-CBC3-SHA**'."\n" - ."\n" - .'TLSv1.2 supports the following cipher suites:'."\n" - ."\n" - .'* **ECDHE-ECDSA-AES128-SHA**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA**'."\n" - .'* **ECDHE-RSA-AES128-SHA**'."\n" - .'* **ECDHE-RSA-AES256-SHA**'."\n" - .'* **AES128-SHA**'."\n" - .'* **AES256-SHA**'."\n" - .'* **DES-CBC3-SHA**'."\n" - .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" - .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" - .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" - .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" - .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" - .'* **ECDHE-RSA-AES128-SHA256**'."\n" - .'* **ECDHE-RSA-AES256-SHA384**'."\n" - .'* **AES128-GCM-SHA256**'."\n" - .'* **AES256-GCM-SHA384**'."\n" - .'* **AES128-SHA256**'."\n" - .'* **AES256-SHA256**'."\n" - ."\n" - .'TLSv1.3 supports the following cipher suites:'."\n" - ."\n" - .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" - .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" - .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" - .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" - .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", - 'type' => 'string', + 'description' => 'The tag.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the tag. The tag key can be up to 64 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`. The tag key can contain letters, digits, and the following special characters: \\_ . : / = + - @'."\n" + ."\n" + .'You can specify up to 20 tags in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''], + 'Value' => ['description' => 'The value of the tag. The tag value can be up to 128 characters in length, cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`. The tag value can contain letters, digits, and the following special characters: \\_ . : / = + - @'."\n" + ."\n" + .'You can specify up to 20 tags in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''], + ], 'required' => false, - 'example' => 'ECDHE-ECDSA-AES128-SHA', + 'title' => '', ], 'required' => true, - 'maxItems' => 32, + 'maxItems' => 20, + 'minItems' => 1, + 'title' => '', ], ], [ - 'name' => 'DryRun', + 'name' => 'ResourceType', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The type of the resources. Valid values:'."\n" + ."\n" + .'* **loadbalancer**: the Network Load Balancer (NLB) instance'."\n" + .'* **securitypolicy**: the security policy'."\n" + .'* **servergroup**: the server group'."\n", 'type' => 'string', 'required' => true, 'example' => 'loadbalancer', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'RegionId', 'in' => 'formData', - 'allowEmptyValue' => true, - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. It must be 1 to 64 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`. It can contain letters, digits, underscores (\\_), periods (.), colons (:), forward slashes (/), equal signs (=), plus signs (+), minus signs (-), and at signs (@).'."\n" - ."\n" - .'You can add up to 20 tags for the security policy in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'KeyTest', - ], - 'Value' => [ - 'description' => 'The value of the tag. It must be 1 to 128 characters in length, cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`. It can contain letters, digits, underscores (\\_), periods (.), colons (:), forward slashes (/), equal signs (=), plus signs (+), minus signs (-), and at signs (@).'."\n" - ."\n" - .'You can add up to 20 tags for the security policy in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ValueTest', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The ID of the region where the resources are deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse', + 'title' => 'RpcResponse', + 'description' => 'Add tags to resources.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', - ], - 'SecurityPolicyId' => [ - 'description' => 'The ID of the TLS security policy.'."\n", - 'type' => 'string', - 'example' => 'tls-bp14bb1e7dll4f****', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], + [ + ['errorCode' => 'ResourceNotFound.securitypolicy', 'errorMessage' => 'The specified resource of securitypolicy is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'TagResources', + 'summary' => 'Adds tags to specified resources.', + 'changeSet' => [ + ['createdAt' => '2024-09-12T13:36:50.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-02-22T08:02:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-11T05:39:27.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-09-05T02:00:43.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-06-17T06:19:00.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TagResources'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:TagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicyId\\": \\"sp-wuytp9pa******\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n D7A8875F-373A-5F48-8484-25B07A61F2AF\\n tls-bp14bb1e7dll4f****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'CreateSecurityPolicy', ], - 'DeleteSecurityPolicy' => [ - 'summary' => 'Deletes a custom TLS security policy from a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UntagResources' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10146,107 +6958,139 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'delete', + 'abilityTreeCode' => '141866', + 'abilityTreeNodes' => ['FEATUREslbTUH0QC'], ], 'parameters' => [ [ - 'name' => 'SecurityPolicyId', + 'name' => 'ResourceId', + 'in' => 'formData', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The ID of the resource. You can specify at most 50 resource IDs in each call.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the resource. You can specify at most 50 resource IDs in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nlb-nrnrxwd15en27r****', 'title' => ''], + 'required' => true, + 'maxItems' => 50, + 'minItems' => 1, + 'title' => '', + ], + ], + [ + 'name' => 'TagKey', + 'in' => 'formData', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The keys of the tags that you want to remove. You can remove at most 20 tags in each call.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The key of the tag that you want to remove. You can remove at most 20 tags in each call.'."\n" + ."\n" + .'> If you do not specify the **TagKey** parameter, all tags on the specified resource are removed.'."\n", 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''], + 'required' => false, + 'maxItems' => 20, + 'minItems' => 1, + 'title' => '', + ], + ], + [ + 'name' => 'All', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to remove all tags from the specified resource. Valid values:'."\n" + ."\n" + .'* **true**: removes all tags from the specified resource.'."\n" + .'* **false** (default): does not remove all tags from the specified resource.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ResourceType', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the TLS security policy.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'tls-bp14bb1e7dll4f****', - ], + 'schema' => ['description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* **loadbalancer**: a Network Load Balancer (NLB) instance'."\n" + .'* **securitypolicy**: a security policy'."\n" + .'* **servergroup**: a server group'."\n", 'type' => 'string', 'required' => true, 'example' => 'loadbalancer', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the resource.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse', + 'title' => 'RpcResponse', + 'description' => 'Removes tags.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceInUse.SecurityPolicy', - 'errorMessage' => 'The specified resource of SecurityPolicy is in use.', - ], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.securitypolicy', - 'errorMessage' => 'The specified resource of securitypolicy is not found.', + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'UntagResources', + 'summary' => 'Removes tags from resources.', + 'changeSet' => [ + ['createdAt' => '2024-09-12T13:36:50.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-06-17T06:19:31.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UntagResources'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:UntagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n D7A8875F-373A-5F48-8484-25B07A61F2AF\\n","errorExample":""}]', - 'title' => 'DeleteSecurityPolicy', ], - 'UpdateSecurityPolicyAttribute' => [ - 'summary' => 'Modifies the configurations of a security policy for a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateListenerAttribute' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10256,675 +7100,467 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'abilityTreeCode' => '141876', - 'abilityTreeNodes' => [ - 'FEATUREslbGDCN1S', - ], + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '141874', + 'abilityTreeNodes' => ['FEATUREslbC68LB1', 'FEATUREslb4PUXNB', 'FEATUREslbGDCN1S', 'FEATUREslbUZZGGD'], ], 'parameters' => [ [ - 'name' => 'TlsVersions', + 'name' => 'ListenerId', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The supported TLS versions. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**. You can specify up to four TLS versions.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The supported TLS version. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**. You can specify up to four TLS versions.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TLSv1.0', - ], - 'required' => false, - 'maxItems' => 4, - 'minItems' => 1, - ], + 'schema' => ['title' => '', 'description' => 'The listener ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'lsn-bp1bpn0kn908w4nbw****@443'], + ], + [ + 'name' => 'ListenerDescription', + 'in' => 'formData', + 'schema' => ['title' => '', 'description' => 'The name of the listener.'."\n" + ."\n" + .'The name must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).'."\n", 'type' => 'string', 'required' => false, 'example' => 'tcpssl_443'], + ], + [ + 'name' => 'ServerGroupId', + 'in' => 'formData', + 'schema' => ['title' => '', 'description' => 'The server group ID.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If the listener uses **TCP**, you can specify server groups whose protocol is **TCP** or **TCP_UDP**. **UDP** server groups are not supported.'."\n" + ."\n" + .'* If the listener uses **UDP**, you can specify server groups whose protocol is **UDP** or **TCP_UDP**. **TCP** server groups are not supported.'."\n" + ."\n" + .'* If the listener uses **TCPSSL**, you can specify server groups whose protocol is **TCP** and whose **client IP preservation is disabled**. **TCP** server groups for which **client IP preservation is enabled** and server groups whose protocol is **UDP** or **TCP_UDP** are not supported.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sgp-ppdpc14gdm3x4o****'], ], [ 'name' => 'SecurityPolicyId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the TLS security policy.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'tls-bp14bb1e7dll4f****', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the security policy.'."\n" + ."\n" + .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tls_cipher_policy_1_1'], ], [ - 'name' => 'SecurityPolicyName', + 'name' => 'CertificateIds', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The name of the security policy.'."\n" + 'title' => '', + 'description' => 'The server certificate. Only one server certificate is supported.'."\n" ."\n" - .'The name must be 1 to 200 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n", - 'type' => 'string', + .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The server certificate. Only one server certificate is supported.'."\n" + ."\n" + .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", 'type' => 'string', 'required' => false, 'example' => '123157******', 'title' => ''], 'required' => false, - 'example' => 'TLSCipherPolicy', + 'maxItems' => 10, + 'example' => '', ], ], [ - 'name' => 'Ciphers', + 'name' => 'CaCertificateIds', 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The cipher suites supported by the security policy. Valid values of this parameter vary based on the value of TlsVersions. You can specify up to 32 cipher suites.'."\n" - ."\n" - .'TLSv1.0 and TLSv1.1 support the following cipher suites:'."\n" - ."\n" - .'* **ECDHE-ECDSA-AES128-SHA**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA**'."\n" - .'* **ECDHE-RSA-AES128-SHA**'."\n" - .'* **ECDHE-RSA-AES256-SHA**'."\n" - .'* **AES128-SHA**'."\n" - .'* **AES256-SHA**'."\n" - .'* **DES-CBC3-SHA**'."\n" - ."\n" - .'TLSv1.2 supports the following cipher suites:'."\n" - ."\n" - .'* **ECDHE-ECDSA-AES128-SHA**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA**'."\n" - .'* **ECDHE-RSA-AES128-SHA**'."\n" - .'* **ECDHE-RSA-AES256-SHA**'."\n" - .'* **AES128-SHA**'."\n" - .'* **AES256-SHA**'."\n" - .'* **DES-CBC3-SHA**'."\n" - .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" - .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" - .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" - .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" - .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" - .'* **ECDHE-RSA-AES128-SHA256**'."\n" - .'* **ECDHE-RSA-AES256-SHA384**'."\n" - .'* **AES128-GCM-SHA256**'."\n" - .'* **AES256-GCM-SHA384**'."\n" - .'* **AES128-SHA256**'."\n" - .'* **AES256-SHA256**'."\n" - ."\n" - .'TLSv1.3 supports the following cipher suites:'."\n" + 'title' => '', + 'description' => 'The CA certificate. You can specify only one CA certificate.'."\n" ."\n" - .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" - .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" - .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" - .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" - .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", + .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", 'type' => 'array', - 'items' => [ - 'description' => 'The cipher suites supported by the security policy. Valid values of this parameter vary based on the value of TlsVersions. You can specify up to 32 cipher suites.'."\n" - ."\n" - .'TLSv1.0 and TLSv1.1 support the following cipher suites:'."\n" - ."\n" - .'* **ECDHE-ECDSA-AES128-SHA**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA**'."\n" - .'* **ECDHE-RSA-AES128-SHA**'."\n" - .'* **ECDHE-RSA-AES256-SHA**'."\n" - .'* **AES128-SHA**'."\n" - .'* **AES256-SHA**'."\n" - .'* **DES-CBC3-SHA**'."\n" - ."\n" - .'TLSv1.2 supports the following cipher suites:'."\n" - ."\n" - .'* **ECDHE-ECDSA-AES128-SHA**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA**'."\n" - .'* **ECDHE-RSA-AES128-SHA**'."\n" - .'* **ECDHE-RSA-AES256-SHA**'."\n" - .'* **AES128-SHA**'."\n" - .'* **AES256-SHA**'."\n" - .'* **DES-CBC3-SHA**'."\n" - .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" - .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" - .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" - .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" - .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" - .'* **ECDHE-RSA-AES128-SHA256**'."\n" - .'* **ECDHE-RSA-AES256-SHA384**'."\n" - .'* **AES128-GCM-SHA256**'."\n" - .'* **AES256-GCM-SHA384**'."\n" - .'* **AES128-SHA256**'."\n" - .'* **AES256-SHA256**'."\n" - ."\n" - .'TLSv1.3 supports the following cipher suites:'."\n" - ."\n" - .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" - .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" - .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" - .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" - .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ECDHE-ECDSA-AES128-SHA', - ], + 'items' => ['description' => 'The CA certificate. You can specify only one CA certificate.'."\n" + ."\n" + .'> This parameter takes effect only for listeners that use SSL over TCP.'."\n", 'type' => 'string', 'required' => false, 'example' => '139a00******', 'title' => ''], 'required' => false, - 'maxItems' => 32, + 'maxItems' => 10, + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'CaEnabled', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'Specifies whether to enable mutual authentication. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'IdleTimeout', + 'in' => 'formData', + 'schema' => ['description' => 'The timeout period for idle connections. Unit: seconds'."\n" + ."\n" + .'* If the listener uses **TCP** or **TCPSSL**, you can set this parameter to a value ranging from **10** to **900**. Default value: **900**'."\n" + .'* If the listener uses **UDP**, you can set this parameter to a value ranging from **10** to **20**. Default value: **20**'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3600', 'minimum' => '10', 'example' => '900', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'Modifies the attributes of a security policy.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', - ], - 'SecurityPolicyId' => [ - 'description' => 'The ID of the TLS security policy.'."\n", - 'type' => 'string', - 'example' => 'tls-bp14bb1e7dll4f****', - ], - 'JobId' => [ - 'description' => 'The ID of the asynchronous task.'."\n", - 'type' => 'string', - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalParam.PreserveClientIpSwitch', - 'errorMessage' => 'The param of PreserveClientIpSwitch is illegal.', - ], - [ - 'errorCode' => 'UpdateSecurityPolicyFailed', - 'errorMessage' => 'The operation failed because of Security Policy is not changed.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.securitypolicy', - 'errorMessage' => 'The specified resource of securitypolicy is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicyId\\": \\"sp-wuytp9pa******\\\\n\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n D7A8875F-373A-5F48-8484-25B07A61F2AF\\n tls-bp14bb1e7dll4f****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'UpdateSecurityPolicyAttribute', - ], - 'ListSecurityPolicy' => [ - 'summary' => 'Queries the TLS security policies set for a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '141862', - 'abilityTreeNodes' => [ - 'FEATUREslbAZREFH', + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], - ], - 'parameters' => [ [ - 'name' => 'SecurityPolicyIds', + 'name' => 'ProxyProtocolEnabled', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The IDs of the TLS security policies. You can specify at most 20 policy IDs in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the TLS security policy. You can specify at most 20 policy IDs in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tls-bp14bb1e7dll4f****', - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'Specifies whether to use the Proxy protocol to pass the client IP address to the backend server. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'SecurityPolicyNames', + 'name' => 'SecSensorEnabled', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The names of the TLS security policies. You can specify at most 20 policy names.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The name of the TLS security policy. You can specify at most 20 policy names.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TLSCipherPolicy', - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'Specifies whether to enable fine-grained monitoring. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify up to 10 tag keys.'."\n" - ."\n" - .'The tag key can be up to 64 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify up to 10 tag values.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Test', - ], - ], - 'required' => false, - ], - 'required' => false, - ], + 'name' => 'AlpnEnabled', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to enable Application-Layer Protocol Negotiation (ALPN). Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'AlpnPolicy', 'in' => 'formData', 'schema' => [ - 'description' => 'The resource group ID.'."\n", + 'description' => 'The name of the ALPN policy. The following are the possible values:'."\n" + ."\n" + .'* **HTTP1Only**: Negotiate only HTTP/1.\\*. The ALPN preference list is HTTP/1.1, HTTP/1.0.'."\n" + .'* **HTTP2Only**: Negotiate only HTTP/2. The ALPN preference list is HTTP/2.'."\n" + .'* **HTTP2Optional**: Prefer HTTP/1.\\* over HTTP/2. The ALPN preference list is HTTP/1.1, HTTP/1.0, HTTP/2.'."\n" + .'* **HTTP2Preferred**: Prefer HTTP/2 over HTTP/1.\\*. The ALPN preference list is HTTP/2, HTTP/1.1, HTTP/1.0.'."\n" + ."\n" + .'> This parameter is required if AlpnEnabled is set to true.'."\n", 'type' => 'string', 'required' => false, - 'example' => 'rg-atstuj3rtop****', + 'example' => 'HTTP1Only', + 'enum' => ['HTTP1Only', 'HTTP2Only', 'HTTP2Preferred', 'HTTP2Optional'], + 'title' => '', ], ], [ - 'name' => 'NextToken', + 'name' => 'Cps', 'in' => 'formData', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The maximum number of new connections per second supported by the listener in each zone (virtual IP address). Valid values: **0** to **1000000**. **0** indicates that the number of connections is unlimited.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10000', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'Mss', 'in' => 'formData', - 'schema' => [ - 'description' => 'The number of entries to return per page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => 'The size of the largest TCP packet segment. Unit: bytes. Valid values: **0** to **1500**. **0** indicates that the maximum segment size (MSS) remains unchanged. This parameter is supported only by TCP listeners and listeners that use SSL over TCP.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '344', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ProxyProtocolV2Config', 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', + 'description' => 'Specifies that the Proxy protocol passes the VpcId, PrivateLinkEpId, and PrivateLinkEpsId parameters to backend servers.'."\n", + 'type' => 'object', + 'properties' => [ + 'Ppv2VpcIdEnabled' => ['description' => 'Specifies whether to use the Proxy protocol to pass the VpcId parameter to backend servers. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + 'Ppv2PrivateLinkEpIdEnabled' => ['description' => 'Specifies whether to use the Proxy protocol to pass the PrivateLinkEpId parameter to backend servers. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + 'Ppv2PrivateLinkEpsIdEnabled' => ['description' => 'Specifies whether to use the Proxy protocol to pass the PrivateLinkEpsId parameter to backend servers. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], 'required' => false, - 'example' => 'cn-hangzhou', + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'The details about the queried TLS security policies.'."\n", + 'title' => 'RpcResponse', + 'description' => 'Updates listener configurations.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', - ], - 'SecurityPolicies' => [ - 'description' => 'The TLS security policies.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The TLS security policy.'."\n", - 'type' => 'object', - 'properties' => [ - 'SecurityPolicyId' => [ - 'title' => 'tls策略ID', - 'description' => 'The ID of the TLS security policy.'."\n", - 'type' => 'string', - 'example' => 'tls-bp14bb1e7dll4f****', - ], - 'SecurityPolicyName' => [ - 'title' => '名称', - 'description' => 'The name of the TLS security policy.'."\n", - 'type' => 'string', - 'example' => 'TLSCipherPolicy', - ], - 'TlsVersion' => [ - 'title' => 'tls版本', - 'description' => 'The supported versions of the TLS protocol. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.'."\n", - 'type' => 'string', - 'example' => 'TLSv1.0', - ], - 'Ciphers' => [ - 'title' => '加密套件', - 'description' => 'The cipher suites supported by the security policy. Valid values of this parameter vary based on the value of TlsVersions. A security policy supports up to 32 cipher suites.'."\n" - ."\n" - .'TLSv1.0 and TLSv1.1 support the following cipher suites:'."\n" - ."\n" - .'* **ECDHE-ECDSA-AES128-SHA**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA**'."\n" - .'* **ECDHE-RSA-AES128-SHA**'."\n" - .'* **ECDHE-RSA-AES256-SHA**'."\n" - .'* **AES128-SHA**'."\n" - .'* **AES256-SHA**'."\n" - .'* **DES-CBC3-SHA**'."\n" - ."\n" - .'TLSv1.2 supports the following cipher suites:'."\n" - ."\n" - .'* **ECDHE-ECDSA-AES128-SHA**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA**'."\n" - .'* **ECDHE-RSA-AES128-SHA**'."\n" - .'* **ECDHE-RSA-AES256-SHA**'."\n" - .'* **AES128-SHA**'."\n" - .'* **AES256-SHA**'."\n" - .'* **DES-CBC3-SHA**'."\n" - .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" - .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" - .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" - .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" - .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" - .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" - .'* **ECDHE-RSA-AES128-SHA256**'."\n" - .'* **ECDHE-RSA-AES256-SHA384**'."\n" - .'* **AES128-GCM-SHA256**'."\n" - .'* **AES256-GCM-SHA384**'."\n" - .'* **AES128-SHA256**'."\n" - .'* **AES256-SHA256**'."\n" - ."\n" - .'TLSv1.3 supports the following cipher suites:'."\n" - ."\n" - .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" - .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" - .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" - .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" - .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", - 'type' => 'string', - 'example' => 'ECDHE-ECDSA-AES128-SHA', - ], - 'RegionId' => [ - 'title' => '业务location', - 'description' => 'The region ID of the NLB instance.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Tags' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify up to 10 tag keys.'."\n" - ."\n" - .'The tag key can be up to 64 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'example' => 'Test', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify up to 10 tag values.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'example' => 'Test', - ], - ], - ], - ], - 'RelatedListeners' => [ - 'description' => 'The listeners that are associated with the NLB instance.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The listeners that are associated with the NLB instance.'."\n", - 'type' => 'object', - 'properties' => [ - 'ListenerId' => [ - 'description' => 'The listener ID.'."\n", - 'type' => 'string', - 'example' => 'lsn-bp1bpn0kn908w4nbw****@443', - ], - 'ListenerPort' => [ - 'description' => 'The listener port.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '443', - ], - 'ListenerProtocol' => [ - 'description' => 'The listener protocol. Valid value: **TCPSSL**.'."\n", - 'type' => 'string', - 'example' => 'TCPSSL', - ], - 'LoadBalancerId' => [ - 'description' => 'The NLB instance ID.'."\n", - 'type' => 'string', - 'example' => 'nlb-83ckzc8d4xlp8o****', - ], - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The resource group ID.'."\n", - 'type' => 'string', - 'example' => 'rg-atstuj3rtop****', - ], - 'SecurityPolicyStatus' => [ - 'description' => 'The status of the TLS security policy. Valid values:'."\n" - ."\n" - .'* **Configuring**'."\n" - .'* **Available**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If NextToken is empty, no next page exists.'."\n" - .'* If a value is returned for NextToken, specify the value in the next request to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], + ['errorCode' => 'Mismatch.VpcId', 'errorMessage' => 'The VpcId is mismatched for %s and %s.', 'description' => 'The VpcId is mismatched for %s and %s.'], + ['errorCode' => 'Conflict.Port', 'errorMessage' => 'The Port [%s] is conflict.', 'description' => 'The specified port conflicts with an existing port'], + ['errorCode' => 'ResourceNotFound.Certificate', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.listener', 'errorMessage' => 'The status of listener [%s] is incorrect.', 'description' => 'The current operation cannot be performed on the listener as its status is unavailable. Please check if the listener is currently undergoing any other operations.'], + ['errorCode' => 'IdempotenceSignatureMismatch', 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', 'description' => 'The requested idempotent token is the same as the previous one, but the signature is different.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], + ['errorCode' => 'ResourceAlreadyAssociated.Certificate', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => ''], + ['errorCode' => 'IllegalParamSize.certificateIds', 'errorMessage' => 'The param size of certificateIds or caCertificateIds is illegal.', 'description' => 'you can only have one certificate id. check whether the id is entered repeatedly.'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'IllegalParam.IdleTimeout', 'errorMessage' => 'The param of IdleTimeout is illegal.', 'description' => 'The parameter connection idle timeout configuration is invalid.'], + ['errorCode' => 'OperationDenied.RegionNotSupportHDMonitor', 'errorMessage' => 'The operation is not allowed because of RegionNotSupportHDMonitor.', 'description' => 'The current region does not support second-level monitoring.'], + ['errorCode' => 'ResourceNotEnough.CaCertificateApiCount', 'errorMessage' => 'The specified resource of CaCertificateApiCount is not enough.', 'description' => ''], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], + [ + ['errorCode' => 'ResourceNotFound.listener', 'errorMessage' => 'The specified resource %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.HdMonitorConfigNotExist', 'errorMessage' => 'The specified resource of HdMonitorConfigNotExist is not found.', 'description' => 'HdMonitorConfig does not exist, check the input parameters.'], + ['errorCode' => 'ResourceNotFound.CaCertificate', 'errorMessage' => 'The specified resource of CaCertificate is not found.', 'description' => 'Ca certificate does not exist, please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.securitypolicy', 'errorMessage' => 'The specified resource of securitypolicy is not found.', 'description' => ''], + ], + ], + 'title' => 'UpdateListenerAttribute', + 'summary' => 'Updates the attributes of a listener, such as the name and the idle connection timeout period.', + 'changeSet' => [ + ['createdAt' => '2025-02-14T14:58:50.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-08-27T11:23:19.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-02-29T07:14:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-22T08:02:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-04T05:53:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-30T03:05:03.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-01-29T06:32:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-24T07:05:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-11-27T08:27:56.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:43.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:27.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-04-04T06:19:08.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-26T03:48:09.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-06T07:08:22.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-29T09:24:43.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-18T09:43:00.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T07:55:41.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:26.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateListenerAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateListenerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nlb:SecurityPolicyId', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"SecurityPolicyId\\": \\"sp-wuytp9pa******\\\\n\\",\\n \\"SecurityPolicyName\\": \\"TLSCipherPolicy\\",\\n \\"TlsVersion\\": \\"TLSv1.0\\",\\n \\"Ciphers\\": \\"ECDHE-ECDSA-AES128-SHA\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@443\\",\\n \\"ListenerPort\\": 443,\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"SecurityPolicyStatus\\": \\"Available\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n D7A8875F-373A-5F48-8484-25B07A61F2AF\\n \\n tls-bp14bb1e7dll4f****\\n TLSCipherPolicy\\n TLSv1.0\\n ECDHE-ECDSA-AES128-SHA\\n cn-hangzhou\\n \\n Test\\n Test\\n \\n \\n lsn-bp1bpn0kn908w4nbw****\\n 443\\n TCPSSL\\n nlb-83ckzc8d4xlp8o****\\n \\n rg-atstuj3rtop****\\n Available\\n \\n 10\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 20\\n","errorExample":""}]', - 'title' => 'ListSecurityPolicy', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', ], - 'ListSystemSecurityPolicy' => [ - 'summary' => 'Queries the default TLS policy.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateLoadBalancerAddressTypeConfig' => [ + 'summary' => 'Changes the network type of the IPv4 address for a Network Load Balancer (NLB) instance.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '141880', + 'abilityTreeNodes' => ['FEATUREslb12YEWG', 'FEATUREslb4N3NIV'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'LoadBalancerId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the NLB instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], + ], + [ + 'name' => 'AddressType', 'in' => 'formData', 'schema' => [ - 'description' => 'The region ID of the NLB instance.'."\n" + 'description' => 'The new network type. Valid values:'."\n" ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", + .'* **Internet**: The nodes of an Internet-facing NLB instance have public IP addresses. The DNS name of an Internet-facing NLB instance is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing NLB instances can route requests from clients over the Internet.'."\n" + .'* **Intranet**: The nodes of an internal-facing NLB instance have only private IP addresses. The DNS name of an internal-facing NLB instance is publicly resolvable to the private IP addresses of the nodes. Therefore, internal-facing NLB instances can route requests only from clients with access to the virtual private cloud (VPC) for the NLB instance.'."\n", 'type' => 'string', + 'required' => true, + 'example' => 'Internet', + 'enum' => [], + 'title' => '', + ], + ], + [ + 'name' => 'ZoneMappings', + 'in' => 'formData', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The mappings between zones and vSwitches. You can specify up to 10 zones.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The mapping between the zone and a vSwitch in the zone.'."\n", + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => 'The ID of the vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone of an NLB instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vsw-bp10ttov87felojcn****', 'title' => ''], + 'ZoneId' => ['description' => 'The zone ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou-a', 'title' => ''], + 'AllocationId' => ['title' => '', 'description' => 'The ID of the elastic IP address (EIP).'."\n", 'type' => 'string', 'required' => false, 'example' => 'eip-bp1aedxso6u80u0qf****'], + 'EipType' => ['description' => 'The type of the EIP. Valid values:'."\n" + ."\n" + .'* **Common**: an EIP'."\n" + .'* **Anycast**: an Anycast EIP'."\n" + ."\n" + .'> This parameter is required only if **AddressType** is set to **Internet**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Common', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'cn-hangzhou', + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => 'Perform a dry run without actually making the request. Valid values are:'."\n" + ."\n" + .'* **true**: Perform only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the check, an error message specifying the issue is returned. If the request passes, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): Check the request and perform the operation. If the request passes the check, a 2xx HTTP status code is returned, and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'The operation to query the default TLS policy.'."\n", + 'title' => 'response', + 'description' => 'Changes the network type of the IPv4 address of an NLB instance.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5C057647-284B-5C67-A07E-4B8F3DABA9F9', - ], - 'SecurityPolicies' => [ - 'description' => 'A list of TLS security policies.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'A list of TLS security policies.'."\n", - 'type' => 'object', - 'properties' => [ - 'SecurityPolicyId' => [ - 'title' => 'tls策略ID', - 'description' => 'The ID of the TLS security policy.'."\n", - 'type' => 'string', - 'example' => 'sp-3fdab6dkkke10s****', - ], - 'SecurityPolicyName' => [ - 'title' => '名称', - 'description' => 'The name of the TLS security policy.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'TlsVersion' => [ - 'title' => 'tls版本', - 'description' => 'The TLS version.'."\n", - 'type' => 'string', - 'example' => 'TLSv1.0', - ], - 'Ciphers' => [ - 'title' => '加密套件', - 'description' => 'The cipher suite.'."\n", - 'type' => 'string', - 'example' => 'ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES128-SHA256,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES256-SHA384,AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA256,AES256-SHA256,ECDHE-ECDSA-AES128-SHA,ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES256-SHA,AES128-SHA,AES256-SHA,DES-CBC3-SHA', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], + 'example' => '', ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5C057647-284B-5C67-A07E-4B8F3DABA9F9\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_0\\",\\n \\"SecurityPolicyName\\": \\"test\\",\\n \\"TlsVersion\\": \\"TLSv1.0,TLSv1.1,TLSv1.2\\",\\n \\"Ciphers\\": \\"ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES128-SHA256,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES256-SHA384,AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA256,AES256-SHA256,ECDHE-ECDSA-AES128-SHA,ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES256-SHA,AES128-SHA,AES256-SHA,DES-CBC3-SHA\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => 'ListSystemSecurityPolicy', - ], - 'MoveResourceGroup' => [ - 'summary' => 'Modify the group of resource.', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'DuplicatedParam.AllocationId', 'errorMessage' => 'The param of AllocationId is duplicated.', 'description' => ''], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => 'The specified resource of loadbalancer is being configured, please try again later.'], + ['errorCode' => 'OperationDenied.EipAlreadyInBandwidthPackage', 'errorMessage' => 'The operation is not allowed because of EipAlreadyInBandwidthPackage.', 'description' => ''], + ['errorCode' => 'ResourceInConfiguring.%s', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => ''], + ['errorCode' => 'OperationDenied.AddressTypeNotChanged', 'errorMessage' => 'The operation is not allowed because of AddressTypeNotChanged.', 'description' => ''], + ['errorCode' => 'Mismatch.ZoneIdAndVswitchId', 'errorMessage' => 'The ZoneIdAndVswitchId is mismatched for %s and %s.', 'description' => ''], + ['errorCode' => 'TagInvokeError', 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', 'description' => ''], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], + ['errorCode' => 'Throttling.User', 'errorMessage' => 'Request was denied due to api flow control.', 'description' => 'Request was denied due to api flow control.'], + ], + 403 => [ + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], + [ + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.AnycastInstance', 'errorMessage' => 'The specified resource of AnycastInstance is not found.', 'description' => ''], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'UpdateLoadBalancerAddressTypeConfig', + 'description' => '* Make sure that an NLB instance is created. For more information, see [CreateLoadBalancer](~~445868~~).'."\n" + ."\n" + .'* You can call the [GetLoadBalancerAttribute](~~445873~~) operation to query the **AddressType** value of an NLB instance after you change the network type.'."\n" + ."\n" + .'* **UpdateLoadBalancerAddressTypeConfig** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetJobStatus](~~445904~~) operation to query the task status:'."\n" + ."\n" + .' * If the task is in the **Succeeded** state, the network type of the IPv4 address of the NLB instance is changed.'."\n" + .' * If the task is in the **Processing** state, the network type of the IPv4 address of the NLB instance is being changed. In this case, you can perform only query operations.'."\n", + 'changeSet' => [ + ['createdAt' => '2025-01-16T01:51:39.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-04T05:53:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-22T09:55:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-30T04:13:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-12T02:58:38.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:43.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-27T09:41:40.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-06-17T07:55:41.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:17.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerAddressTypeConfig'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerAddressTypeConfig', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nlb:AddressType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], ], + ], + 'UpdateLoadBalancerAttribute' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10934,353 +7570,417 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '179098', - 'abilityTreeNodes' => [ - 'FEATUREslbZQW9H1', - ], + 'abilityTreeCode' => '141877', + 'abilityTreeNodes' => ['FEATUREslb12YEWG', 'FEATUREslb4N3NIV'], ], 'parameters' => [ [ - 'name' => 'NewResourceGroupId', + 'name' => 'LoadBalancerId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the new resource group.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'rg-aekzjcnrv3vvqhq', - ], + 'schema' => ['description' => 'The NLB instance ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-wb7r6dlwetvt5j****', 'title' => ''], ], [ - 'name' => 'ResourceType', + 'name' => 'LoadBalancerName', 'in' => 'formData', - 'schema' => [ - 'description' => 'The type of resource. Valid values:'."\n" - ."\n" - .'* **loadbalancer**: a Network Load Balancer (NLB) instance'."\n" - .'* **securitypolicy**: a security policy'."\n" - .'* **servergroup**: a server group'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'loadbalancer', - ], + 'schema' => ['description' => 'The NLB instance name.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'NLB1', 'title' => ''], ], [ - 'name' => 'ResourceId', + 'name' => 'CrossZoneEnabled', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the resource.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'nlb-nrnrxwd15en27r****', - ], + 'schema' => ['description' => 'Specifies whether to enable cross-zone load balancing for the NLB instance. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the resource.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-beijing', 'title' => ''], + ], + [ + 'name' => 'Cps', + 'in' => 'formData', + 'schema' => ['description' => 'The maximum number of new connections per second in each zone supported by the NLB instance (virtual IP address). Valid values: **1** to **1000000**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse', + 'title' => 'response', + 'description' => 'Updates the attributes, including the name, of an NLB instance.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', - ], - 'Success' => [ - 'description' => 'Indicates whether the request was successful. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'HttpStatusCode' => [ - 'description' => 'The HTTP status code returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Data' => [ - 'description' => 'The data returned.'."\n", - 'type' => 'object', - 'properties' => [ - 'ResourceId' => [ - 'description' => 'The ID of the resource. You can specify up to 50 resource IDs in each call.'."\n", - 'type' => 'string', - 'example' => 'nlb-nrnrxwd15en27r****', - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '7294679F-08DE-16D4-8E5D-1625685DC10B', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => 'aab74cfa-3bc4-48fc-80fc-0101da5a****', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.resourceType', - 'errorMessage' => 'The param of resourceType is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.StatusCheckFail.ResourceGroup', - 'errorMessage' => 'The operation failed because of StatusCheckFail.ResourceGroup.', - ], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => 'The specified resource of loadbalancer is being configured, please try again later.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], + ['errorCode' => 'IllegalParam.loadBalancerName', 'errorMessage' => 'Param loadBalancerName is illegal.', 'description' => 'The instance name is invalid. Check the parameters.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ResourceGroup', - 'errorMessage' => 'The param of resourceGroup not existed.', - ], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7294679F-08DE-16D4-8E5D-1625685DC10B\\",\\n \\"JobId\\": \\"aab74cfa-3bc4-48fc-80fc-0101da5a****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7294679F-08DE-16D4-8E5D-1625685DC10B\\n aab74cfa-3bc4-48fc-80fc-0101da5a****\\n","errorExample":""}]', + 'title' => 'UpdateLoadBalancerAttribute', + 'summary' => 'Updates the attributes, including the name, of a Network Load Balancer (NLB) instance.', + 'changeSet' => [ + ['createdAt' => '2024-01-24T07:05:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-20T10:18:20.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:42.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:27.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-04T03:05:33.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-29T09:24:43.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:17.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Success\\": true,\\n \\"HttpStatusCode\\": 200,\\n \\"Data\\": {\\n \\"ResourceId\\": \\"nlb-nrnrxwd15en27r****\\"\\n }\\n}","type":"json"}]', - 'title' => 'MoveResourceGroup', ], - 'GetJobStatus' => [ - 'summary' => 'Queries the result of an asynchronous operation performed on a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateLoadBalancerProtection' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'title' => 'add 必选', - 'description' => 'The ID of the asynchronous job.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', - ], + 'name' => 'DeletionProtectionEnabled', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to enable deletion protection. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'DeletionProtectionReason', + 'in' => 'formData', + 'schema' => ['description' => 'The reason why deletion protection is enabled. The reason must be 2 to 128 characters in length, can contain letters, digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.'."\n" + ."\n" + .'> This parameter takes effect only when **DeletionProtectionEnabled** is set to **true**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Instance_Is_Bound_By_Acceleration_Instance', 'title' => ''], + ], + [ + 'name' => 'ModificationProtectionStatus', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to enable the configuration read-only mode. Valid values:'."\n" + ."\n" + .'* **NonProtection**: disables the configuration read-only mode. In this case, you cannot set the **ModificationProtectionReason** parameter. If you specify **ModificationProtectionReason**, the value is cleared.'."\n" + .'* **ConsoleProtection**: enables the configuration read-only mode. In this case, you can specify **ModificationProtectionReason**.'."\n" + ."\n" + .'> If you set this parameter to **ConsoleProtection**, you cannot use the NLB console to modify configurations of the NLB instance. However, you can call API operations to modify the instance configurations.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ConsoleProtection', 'title' => ''], + ], + [ + 'name' => 'ModificationProtectionReason', + 'in' => 'formData', + 'schema' => ['description' => 'The reason why the configuration read-only mode is enabled. The reason must be 2 to 128 characters in length, can contain letters, digits, periods (.), underscores (\\_), and hyphens (-), and must start with a letter.'."\n" + ."\n" + .'> This parameter takes effect only when **Status** is set to **ConsoleProtection**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ConsoleProtection', 'title' => ''], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the NLB instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends a request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'in' => 'formData', + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'RpcResponse', + 'title' => 'response', + 'description' => 'Modifies deletion protection settings.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', - ], - 'Status' => [ - 'description' => 'The state of the task. Valid values:'."\n" - ."\n" - .'* **Succeeded**: The task is successful.'."\n" - .'* **processing**: The ticket is being executed.'."\n", - 'type' => 'string', - 'example' => 'Succeeded', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], + ['errorCode' => 'ResourceInConfiguring.%s', 'errorMessage' => 'The specified resource of %s is being configured, please try again later.', 'description' => ''], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], + ['errorCode' => 'IdempotenceSignatureMismatch', 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.', 'description' => 'The requested idempotent token is the same as the previous one, but the signature is different.'], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => 'The specific resource is conflict.'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => 'The specified resource of loadbalancer is being configured, please try again later.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], + ['errorCode' => 'IllegalParam.deletionProtectionReason', 'errorMessage' => 'The param of deletionProtectionReason is illegal.', 'description' => 'The parameter deletionProtectionReason is invalid. Check whether the parameter must be 2-128 English or Chinese characters in length. It must start with an uppercase or lowercase letter or a Chinese character and can contain digits, periods (.), underscores (_), and hyphens (-).'], + ['errorCode' => 'IllegalParam.modificationProtectionReason', 'errorMessage' => 'The param of modificationProtectionReason is illegal.', 'description' => 'The parameter modificationProtectionReason is invalid, please refer to the document to modify.'], + ['errorCode' => 'ResourceInCreating.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', 'description' => 'The specified resource of loadbalancer is creating, please try again later.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.JobId', - 'errorMessage' => 'The specified resource of JobId is not found.', - ], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"Status\\": \\"Succeeded\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n Succeeded\\n","errorExample":""}]', - 'title' => 'GetJobStatus', - ], - 'ListAsynJobs' => [ - 'summary' => 'Queries the results of multiple asynchronous operations performed on a Network Load Balancer (NLB) instance.', - 'methods' => [ - 'get', - 'post', + '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' => 'UpdateLoadBalancerProtection', + 'summary' => 'Enables or disables the deletion protection feature.', + 'description' => '> You can call the [GetLoadBalancerAttribute](~~445873~~) operation to query the details about deletion protection and the configuration read-only mode.'."\n", + 'changeSet' => [ + ['createdAt' => '2022-11-30T09:13:22.000Z', 'description' => 'OpenAPI offline'], ], - 'schemes' => [ - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerProtection'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerProtection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], ], + ], + 'UpdateLoadBalancerZones' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '259936', - 'abilityTreeNodes' => [ - 'FEATUREslbZQW9H1', - ], + 'abilityTreeNodes' => ['FEATUREslbC68LB1'], ], 'parameters' => [ [ - 'name' => 'JobIds', - 'in' => 'query', - 'style' => 'flat', + 'name' => 'LoadBalancerId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the NLB instance.', 'type' => 'string', 'required' => true, 'example' => 'nlb-83ckzc8d4xlp8o****', 'title' => ''], + ], + [ + 'name' => 'ZoneMappings', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The task IDs.'."\n", + 'description' => 'The mappings between the zones and the vSwitches. You can specify up to 10 zones.', 'type' => 'array', 'items' => [ - 'description' => 'The ID of the asynchronous job.'."\n", - 'type' => 'string', + 'description' => 'The mapping between the zone and the vSwitch. You can specify up to 10 zones.', + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => 'The ID of the vSwitch in the zone. By default, each zone uses one vSwitch and one subnet.', 'type' => 'string', 'required' => true, 'example' => 'vsw-bp1rmcrwg3erh1fh8****', 'title' => ''], + 'ZoneId' => ['description' => 'The zone ID. You can call the [DescribeZones](~~443890~~) operation to query the most recent zone list.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-a', 'title' => ''], + 'PrivateIPv4Address' => ['description' => 'The private IP address.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '192.168.36.16'], + 'AllocationId' => ['description' => 'The ID of the elastic IP address (EIP) or Anycast EIP.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'eip-bp1aedxso6u80u0qf****'], + 'EipType' => ['description' => 'The type of the EIP. Valid values:'."\n" + ."\n" + .'- **Common**: an EIP'."\n" + ."\n" + .'- **Anycast**: an Anycast EIP'."\n" + ."\n" + .'> For regions that support Anycast EIPs, see [Limits](~~470000~~).This parameter is required if **AddressType** is set to **Internet**.', 'type' => 'string', 'required' => false, 'example' => 'Common', 'title' => ''], + ], 'required' => false, - 'example' => 'bfb728bf-53a8-4886-84cb-829******', + 'title' => '', + 'example' => '', ], - 'required' => false, + 'required' => true, + 'maxItems' => 10, + 'minItems' => 1, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'- **false** (default): validates the request and performs the request. If the request passes the validation, an HTTP 2xx status code is returned and the operation is performed.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not set this parameter, the value of **RequestId** is used.\\*\\*\\*\\* The value of **RequestId** is different for each request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => 'response', + 'description' => 'response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'Id of the request'."\n", - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF3******', - ], - 'Jobs' => [ - 'description' => 'The queried tasks.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The queried task.'."\n", - 'type' => 'object', - 'properties' => [ - 'Id' => [ - 'description' => 'The task ID.'."\n", - 'type' => 'string', - 'example' => '365F4154-92F6-4AE4-92F8-7FF34B5****', - ], - 'Status' => [ - 'description' => 'The status of the task. Valid values:'."\n" - ."\n" - .'* Succeeded: The task is successful.'."\n" - .'* Failed: The task fails.'."\n" - .'* Processing: The task is being processed.'."\n", - 'type' => 'string', - 'example' => 'Succeeded', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'string', - 'example' => '1000', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], + ['errorCode' => 'ResourceInCreating.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.', 'description' => 'The specified resource of loadbalancer is creating, please try again later.'], + ['errorCode' => 'OperationDenied.ProtectedPrivateIPv4AddressChanged', 'errorMessage' => 'The operation is not allowed because of ProtectedPrivateIPv4AddressChanged.', 'description' => ''], + ['errorCode' => 'OperationFailed.vSwitchNotSupportIpv6', 'errorMessage' => 'The operation failed because of vSwitchNotSupportIpv6.', 'description' => ''], + ['errorCode' => 'OperationDenied.%s', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => ''], + ['errorCode' => 'OperationDenied.ZoneVSwitchChanged', 'errorMessage' => 'The operation is not allowed because of ZoneVSwitchChanged.', 'description' => 'The existing zone does not allow changes to the virtual switch.'], + ['errorCode' => 'InvalidZones', 'errorMessage' => 'The current zone list is illegal.', 'description' => 'The Availability Zone used in Zone maping is illegal.'], + ['errorCode' => 'ResourceInConfiguring.loadbalancer', 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.', 'description' => 'The specified resource of loadbalancer is being configured, please try again later.'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'ResourceNotEnough.VSwitchIp', 'errorMessage' => 'The specified resource of VSwitchIp is not enough.', 'description' => 'The specified virtual switch (vSwitch) IP resources are insufficient.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'UnauthorizedZone', 'errorMessage' => 'The specified zone of %s is not authorized.', 'description' => ''], ], [ - [ - 'errorCode' => 'ResourceNotFound.JobId', - 'errorMessage' => 'The specified resource of JobId is not found.', - ], + ['errorCode' => 'ResourceNotFound.loadBalancer', 'errorMessage' => 'The specified resource of loadbalancer is not found.', 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource of vSwitch is not found.', 'description' => 'The specified vSwitch resource was not found. Please check the input parameters.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'UpdateLoadBalancerZones', + 'summary' => 'Modifies the zones and zone attributes of a Network Load Balancer (NLB) instance.', + 'description' => 'When you call this operation, make sure that you specify all the zones of the NLB instance, including the existing zones and new zones. If you do not specify the existing zones, the existing zones are removed.'."\n" + ."\n" + .'Prerequisites'."\n" + ."\n" + .'- An NLB instance is created. For more information, see [CreateLoadBalancer](~~445868~~).'."\n" + ."\n" + .'- You can call the [GetLoadBalancerAttribute](~~445873~~) operation to query the zones and zone attributes of an NLB instance.'."\n" + ."\n" + .'- **UpdateLoadBalancerZones** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetJobStatus](~~445904~~) operation query to query the status of a task:'."\n" + ."\n" + .' - If the task is in the **Succeeded** state, the zones and zone attributes are modified.'."\n" + ."\n" + .' - If the task is in the **Processing** state, the zones and zone attributes are being modified. In this case, you can perform only query operations.', + 'changeSet' => [ + ['createdAt' => '2024-04-02T06:33:42.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-22T09:55:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-30T04:13:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:42.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:28.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2022-12-27T09:41:40.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:26.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerZones'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"Jobs\\": [\\n {\\n \\"Id\\": \\"365F4154-92F6-4AE4-92F8-7FF34B5****\\",\\n \\"Status\\": \\"Succeeded\\"\\n }\\n ],\\n \\"TotalCount\\": \\"1000\\"\\n}","type":"json"}]', - 'title' => 'ListAsynJobs', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","type":"json"}]', ], - 'TagResources' => [ - 'summary' => 'Adds tags to specified resources.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateSecurityPolicyAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11289,177 +7989,212 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeCode' => '141891', - 'abilityTreeNodes' => [ - 'FEATUREslbTUH0QC', - ], + 'operationType' => 'update', + 'abilityTreeCode' => '141876', + 'abilityTreeNodes' => ['FEATUREslbGDCN1S'], ], 'parameters' => [ [ - 'name' => 'ResourceId', + 'name' => 'TlsVersions', 'in' => 'formData', - 'style' => 'flat', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The IDs of the resources. You can specify up to 50 resource IDs in each call.'."\n", + 'description' => 'The supported TLS versions. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**. You can specify up to four TLS versions.'."\n", 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the resource. You can specify up to 50 resource IDs in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nlb-nrnrxwd15en27r****', - ], - 'required' => true, - 'maxItems' => 50, + 'items' => ['description' => 'The supported TLS version. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**. You can specify up to four TLS versions.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TLSv1.0', 'title' => ''], + 'required' => false, + 'maxItems' => 4, 'minItems' => 1, + 'title' => '', ], ], [ - 'name' => 'Tag', + 'name' => 'SecurityPolicyId', 'in' => 'formData', - 'style' => 'flat', + 'schema' => ['description' => 'The ID of the TLS security policy.'."\n", 'type' => 'string', 'required' => true, 'example' => 'tls-bp14bb1e7dll4f****', 'title' => ''], + ], + [ + 'name' => 'SecurityPolicyName', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the security policy.'."\n" + ."\n" + .'The name must be 1 to 200 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n", 'type' => 'string', 'required' => false, 'example' => 'TLSCipherPolicy', 'title' => ''], + ], + [ + 'name' => 'Ciphers', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags.'."\n", + 'description' => 'The cipher suites supported by the security policy. Valid values of this parameter vary based on the value of TlsVersions. You can specify up to 32 cipher suites.'."\n" + ."\n" + .'TLSv1.0 and TLSv1.1 support the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + ."\n" + .'TLSv1.2 supports the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-SHA384**'."\n" + .'* **AES128-GCM-SHA256**'."\n" + .'* **AES256-GCM-SHA384**'."\n" + .'* **AES128-SHA256**'."\n" + .'* **AES256-SHA256**'."\n" + ."\n" + .'TLSv1.3 supports the following cipher suites:'."\n" + ."\n" + .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" + .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" + .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", 'type' => 'array', - 'items' => [ - 'description' => 'The tag.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. The tag key can be up to 64 characters in length, cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`. The tag key can contain letters, digits, and the following special characters: \\_ . : / = + - @'."\n" - ."\n" - .'You can specify up to 20 tags in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => 'The value of the tag. The tag value can be up to 128 characters in length, cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`. The tag value can contain letters, digits, and the following special characters: \\_ . : / = + - @'."\n" - ."\n" - .'You can specify up to 20 tags in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 20, - 'minItems' => 1, + 'items' => ['description' => 'The cipher suites supported by the security policy. Valid values of this parameter vary based on the value of TlsVersions. You can specify up to 32 cipher suites.'."\n" + ."\n" + .'TLSv1.0 and TLSv1.1 support the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + ."\n" + .'TLSv1.2 supports the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-SHA384**'."\n" + .'* **AES128-GCM-SHA256**'."\n" + .'* **AES256-GCM-SHA384**'."\n" + .'* **AES128-SHA256**'."\n" + .'* **AES256-SHA256**'."\n" + ."\n" + .'TLSv1.3 supports the following cipher suites:'."\n" + ."\n" + .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" + .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" + .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", 'type' => 'string', 'required' => false, 'example' => 'ECDHE-ECDSA-AES128-SHA', 'title' => ''], + 'required' => false, + 'maxItems' => 32, + 'title' => '', ], ], [ - 'name' => 'ResourceType', + 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The type of the resources. Valid values:'."\n" - ."\n" - .'* **loadbalancer**: the Network Load Balancer (NLB) instance'."\n" - .'* **securitypolicy**: the security policy'."\n" - .'* **servergroup**: the server group'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'loadbalancer', - ], + 'schema' => ['description' => 'The ID of the region where the NLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: validates the request without performing the operation. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the validation, the corresponding error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): validates the request and performs the operation. If the request passes the validation, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'The client token used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" - ."\n" - .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** is different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the region where the resources are deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not set this parameter, the value of **RequestId** is used.**** The value of **RequestId** is different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'Add tags to resources.'."\n", + 'title' => 'RpcResponse', + 'description' => 'Modifies the attributes of a security policy.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', 'title' => ''], + 'SecurityPolicyId' => ['description' => 'The ID of the TLS security policy.'."\n", 'type' => 'string', 'example' => 'tls-bp14bb1e7dll4f****', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', - ], + ['errorCode' => 'IllegalParam.PreserveClientIpSwitch', 'errorMessage' => 'The param of PreserveClientIpSwitch is illegal.', 'description' => ''], + ['errorCode' => 'UpdateSecurityPolicyFailed', 'errorMessage' => 'The operation failed because of Security Policy is not changed.', 'description' => ''], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.securitypolicy', 'errorMessage' => 'The specified resource of securitypolicy is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => 'The specified resource of serverGroup is not found. Please check the input parameters.'], ], - [ - [ - 'errorCode' => 'ResourceNotFound.securitypolicy', - 'errorMessage' => 'The specified resource of securitypolicy is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicyId\\": \\"tls-bp14bb1e7dll4f****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n D7A8875F-373A-5F48-8484-25B07A61F2AF\\n tls-bp14bb1e7dll4f****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'UpdateSecurityPolicyAttribute', + 'summary' => 'Modifies the configurations of a security policy for a Network Load Balancer (NLB) instance.', + 'changeSet' => [ + ['createdAt' => '2023-09-05T02:00:42.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T04:15:26.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-02T06:52:05.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:26.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateSecurityPolicyAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateSecurityPolicyAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'TagResources', ], - 'UntagResources' => [ - 'summary' => 'Removes tags from resources.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateServerGroupAttribute' => [ + 'summary' => 'Updates the configuration of a Network Load Balancer (NLB) server group.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11468,557 +8203,2184 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'abilityTreeCode' => '141866', - 'abilityTreeNodes' => [ - 'FEATUREslbTUH0QC', - ], + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '141878', + 'abilityTreeNodes' => ['FEATUREslbVDXH6N'], ], 'parameters' => [ [ - 'name' => 'ResourceId', + 'name' => 'ServerGroupId', 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'description' => 'The ID of the resource. You can specify at most 50 resource IDs in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the resource. You can specify at most 50 resource IDs in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nlb-nrnrxwd15en27r****', - ], - 'required' => true, - 'maxItems' => 50, - 'minItems' => 1, - ], + 'schema' => ['description' => 'The ID of the server group.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'sgp-atstuj3rtoptyui****'], ], [ - 'name' => 'TagKey', + 'name' => 'ServerGroupName', 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'description' => 'The keys of the tags that you want to remove. You can remove at most 20 tags in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The key of the tag that you want to remove. You can remove at most 20 tags in each call.'."\n" - ."\n" - .'> If you do not specify the **TagKey** parameter, all tags on the specified resource are removed.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'required' => false, - 'maxItems' => 20, - 'minItems' => 1, - ], + 'schema' => ['description' => 'The new name of the server group.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length, start with a letter or a Chinese character, and can contain digits, periods (.), underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'NLB_ServerGroup1', 'title' => ''], ], [ - 'name' => 'All', + 'name' => 'ConnectionDrainEnabled', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to remove all tags from the specified resource. Valid values:'."\n" - ."\n" - .'* **true**: removes all tags from the specified resource.'."\n" - .'* **false** (default): does not remove all tags from the specified resource.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to enable connection draining. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'ResourceType', + 'name' => 'ConnectionDrainTimeout', 'in' => 'formData', - 'schema' => [ - 'description' => 'The type of the resource. Valid values:'."\n" - ."\n" - .'* **loadbalancer**: a Network Load Balancer (NLB) instance'."\n" - .'* **securitypolicy**: a security policy'."\n" - .'* **servergroup**: a server group'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'loadbalancer', - ], + 'schema' => ['description' => 'The timeout period of connection draining. Unit: seconds. Valid values: **0** to **900**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '10'], ], [ - 'name' => 'DryRun', + 'name' => 'Scheduler', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'- **Wrr**: weighted round-robin. Backend servers with higher weights receive more requests than backend servers with lower weights.'."\n" + ."\n" + .'- **Wlc**: weighted least connections. Requests are distributed to backend servers based on their weights and the number of connections. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n" + ."\n" + .'- **rr**: round-robin. Requests are distributed to backend servers in sequence.'."\n" + ."\n" + .'- **sch**: source IP hash. Requests from the same source IP address are distributed to the same backend server.'."\n" + ."\n" + .'- **tch**: four-tuple hash. Requests are distributed to backend servers based on a hash of the four-tuple, which consists of the source IP address, destination IP address, source port, and destination port. This ensures that requests from the same flow are distributed to the same backend server.'."\n" + ."\n" + .'- **qch**: QUIC ID hash. Requests with the same QUIC ID are distributed to the same backend server.'."\n" + ."\n" + .'> You can set the scheduling algorithm to qch only when the backend protocol is UDP.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Wrr'], ], [ - 'name' => 'ClientToken', + 'name' => 'IpVersionAffinityMode', 'in' => 'formData', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'Specifies whether to enable client IP address preservation. Valid values:'."\n" ."\n" - .'You can use the client to generate the token. Ensure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" + .'- **true**'."\n" ."\n" - .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", + .'- **false**'."\n" + ."\n" + .'> If **PreserveClientIpEnabled** is set to **false** and the server group is associated with a **TCPSSL** listener, you cannot change the value of this parameter to **true**.', 'type' => 'string', + 'enum' => ['NonAffinity', 'Affinity'], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'example' => 'Affinity', + 'title' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'PreserveClientIpEnabled', + 'in' => 'formData', + 'schema' => ['description' => 'The health check configurations.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'HealthCheckConfig', 'in' => 'formData', + 'style' => 'flat', 'schema' => [ - 'description' => 'The region ID of the resource.'."\n" + 'title' => '', + 'description' => 'The ID of the region where the NLB instance is deployed.'."\n" ."\n" - .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', + .'You can call the operation to query the most recent region list.', + 'type' => 'object', + 'properties' => [ + 'HealthCheckEnabled' => ['description' => 'Specifies whether to enable the health check feature. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'], + 'HealthCheckType' => ['description' => 'The health check protocol. Valid values:'."\n" + ."\n" + .'- **TCP**'."\n" + ."\n" + .'- **HTTP**'."\n" + ."\n" + .'- **UDP**', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'TCP'], + 'HealthCheckConnectPort' => ['description' => 'The port that is used for health checks on backend servers. Valid values: **0** to **65535**. If you set the value to **0**, the port of a backend server is used for health checks.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '0'], + 'HealthyThreshold' => ['description' => 'The number of consecutive health checks that a backend server must pass before it is declared healthy. In this case, the health check status is changed from **failed** to **success**. Valid values: **2** to **10**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '3'], + 'UnhealthyThreshold' => ['description' => 'The number of consecutive health checks that a backend server must fail before it is declared unhealthy. In this case, the health check status is changed from **success** to **failed**. Valid values: **2** to **10**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '3'], + 'HealthCheckConnectTimeout' => ['description' => 'The maximum timeout period of a health check response. Unit: seconds. Valid values: 1 to **300**. Default value: **5**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '100'], + 'HealthCheckInterval' => ['description' => 'The interval at which health checks are performed. Unit: seconds. Default value: **5**.'."\n" + ."\n" + .'- If HealthCheckType is set to **TCP** or **HTTP**, the value must be in the range of **1** to **50**.'."\n" + ."\n" + .'- If HealthCheckType is set to **UDP**, the value must be in the range of **1** to **300**. Make sure that the interval is greater than or equal to the response timeout period. This prevents UDP probes from being marked as unresponsive due to timeouts.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '5'], + 'HealthCheckDomain' => ['description' => 'The domain name that is used for health checks. Valid values:'."\n" + ."\n" + .'- **$SERVER\\_IP**: the private IP address of a backend server.'."\n" + ."\n" + .'- **domain**: a specific domain name. The domain name must be 1 to 80 characters in length and can contain lowercase letters, digits, hyphens (-), and periods (.).'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '$SERVER_IP'], + 'HealthCheckUrl' => ['description' => 'The path that is used for health checks.'."\n" + ."\n" + .'The path must be 1 to 80 characters in length. It can contain letters, digits, and the following special characters: `-/.%?#&=`. It can also contain the following extended characters: `_;~!()*[]@$^:\',+`. The path must start with a forward slash (/).'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '/test/index.html'], + 'HealthCheckHttpCode' => [ + 'title' => '', + 'description' => 'The HTTP status codes that indicate a healthy backend server. You can specify multiple HTTP status codes. Separate them with commas (,).'."\n" + .'Valid values: **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', + 'type' => 'array', + 'items' => ['description' => 'The HTTP status codes that indicate a healthy backend server. You can specify multiple HTTP status codes. Separate them with commas (,).'."\n" + .'Valid values: **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', 'type' => 'string', 'required' => false, 'example' => 'http_2xx', 'title' => ''], + 'required' => false, + 'example' => '', + ], + 'HttpCheckMethod' => [ + 'description' => 'The HTTP method that is used for health checks. Valid values: **GET** and **HEAD**.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', + 'type' => 'string', + 'enum' => [], + 'required' => false, + 'example' => 'GET', + 'title' => '', + ], + 'HealthCheckReq' => ['description' => 'The request string for UDP health checks. The string can contain only letters and digits and must be at most 512 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'hello', 'title' => ''], + 'HealthCheckExp' => ['description' => 'The response string for UDP health checks. The string can contain only letters and digits and must be at most 512 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'ok', 'title' => ''], + 'HealthCheckHttpVersion' => [ + 'description' => 'The version of the HTTP protocol that is used for health checks. Valid values: **HTTP1.0** and **HTTP1.1**.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheckType** is set to **HTTP**.', + 'type' => 'string', + 'enum' => ['HTTP1.0', 'HTTP1.1'], + 'required' => false, + 'example' => 'HTTP1.0', + 'title' => '', + ], + ], 'required' => false, - 'example' => 'cn-hangzhou', + 'example' => '', ], ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run but does not update the server group. The system checks the required parameters, the request format, and business limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'- **false** (default): sends a normal request. If the request passes the check, an HTTP 2xx status code is returned and the operation is performed.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'formData', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'boolean', 'default' => ' false', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'formData', + 'schema' => ['description' => 'Traffic scheduling policy for dual-stack NLB instances:'."\n" + ."\n" + .'- NonAffinity (default): Forwards requests to healthy backend servers based on the configured scheduling algorithm, regardless of the source IP protocol version (IPv4 or IPv6).'."\n" + ."\n" + .'- Affinity: Forwards requests based on source IP protocol affinity. IPv4 requests are forwarded exclusively to IPv4 backend servers, and IPv6 requests are forwarded exclusively to IPv6 backend servers.'."\n" + ."\n" + .'> This parameter only applies when the **AddressIPVersion** is set to **DualStack**.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'Removes tags.'."\n", + 'title' => 'RpcResponse', + 'description' => 'The configurations of the server group.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'ServerGroupId' => ['description' => 'The ID of the server group.', 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.', 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'IllegalParam.healthCheckDomain', 'errorMessage' => 'The parameter of healthCheckConfig.healthCheckDomain is illegal.', 'description' => 'The healthCheckDomain in the health check configuration is invalid. Check the input parameters.'], + ['errorCode' => 'IlleagalParam.healthCheckUrl', 'errorMessage' => 'The parameter of healthCheckUrl in healthCheckConfig is illegal.', 'description' => 'The URL of the health check used in the health check setting is invalid.'], + ['errorCode' => 'OperationDenied.UidNotAllowQuic29', 'errorMessage' => 'The operation is not allowed because of uid not allow quic29 version.', 'description' => ''], + ['errorCode' => 'IllegalParam', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'Request validation has been passed with DryRun flag set.'], + ['errorCode' => 'IllegalParam.ServerGroupName', 'errorMessage' => 'The param of ServerGroupName is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.PreserveClientIpSwitch', 'errorMessage' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.', 'description' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], ], [ - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => 'The specified resource of serverGroup is not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","type":"json"}]', + 'title' => 'UpdateServerGroupAttribute', + 'changeSet' => [ + ['createdAt' => '2025-04-09T11:20:39.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-06-25T08:31:02.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-03-14T12:28:48.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-28T06:05:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T03:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-09T11:30:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-07T05:50:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-27T09:30:42.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-09-26T07:58:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-18T01:54:37.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-08-05T09:50:28.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-29T09:24:43.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-27T08:29:13.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T07:55:41.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-06-17T06:19:17.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateServerGroupAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateServerGroupAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', - 'title' => 'UntagResources', ], - 'ListTagResources' => [ - 'summary' => 'Queries the tags of a resource.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateServerGroupServersAttribute' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '141863', - 'abilityTreeNodes' => [ - 'FEATUREslbS3YPBZ', - 'FEATUREslb01BKVK', - ], + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeNodes' => ['FEATUREslb3GOGI0', 'FEATUREslbBEALOE', 'FEATUREslb3DZO9R', 'FEATUREslbWFW5HS', 'FEATUREslbBYQ1MP', 'FEATUREslbYU1H2O'], ], 'parameters' => [ [ - 'name' => 'ResourceType', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The type of the resource. Valid values:'."\n" - ."\n" - .'* **loadbalancer**: the Network Load Balancer (NLB) instance'."\n" - .'* **securitypolicy**: the security policy'."\n" - .'* **servergroup**: the server group'."\n" - .'* **listener**: the listener'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'loadbalancer', - ], - ], - [ - 'name' => 'ResourceId', + 'name' => 'ServerGroupId', 'in' => 'formData', - 'style' => 'flat', - 'schema' => [ - 'description' => 'The IDs of the resources.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the resource.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nlb-nrnrxwd15en27r****', - ], - 'required' => false, - 'maxItems' => 50, - 'minItems' => 1, - ], + 'schema' => ['description' => 'The server group ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'sgp-atstuj3rtoptyui****', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'Servers', 'in' => 'formData', - 'style' => 'flat', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags'."\n", + 'description' => 'The backend servers. You can specify at most 200 backend servers in each call.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The tag.'."\n", + 'description' => 'The backend servers. You can specify at most 200 backend servers in each call.'."\n", 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. The tag key can be up to 128 characters in length, cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => 'The value of the tag. The tag value can be up to 128 characters in length, cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`.'."\n", + 'ServerId' => ['title' => '', 'description' => 'The backend server ID.'."\n" + ."\n" + .'* If the server group is of the **Instance** type, set this parameter to the IDs of servers of the **Ecs**, **Eni**, or **Eci** type.'."\n" + .'* If the server group is of the **Ip** type, set this parameter to IP addresses.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ecs-bp67acfmxazb4p****'], + 'ServerType' => [ + 'title' => '', + 'description' => 'The type of the backend server. Valid values:'."\n" + ."\n" + .'* **Ecs**: Elastic Compute Service (ECS) instance'."\n" + .'* **Eni**: elastic network interface (ENI)'."\n" + .'* **Eci**: elastic container instance'."\n" + .'* **Ip**: IP address'."\n", 'type' => 'string', - 'required' => false, - 'example' => 'product', + 'required' => true, + 'example' => 'Ecs', + 'enum' => [], ], + 'ServerIp' => ['title' => '', 'description' => 'The IP addresses of servers. If the server group type is **Ip**, set the ServerId parameter to IP addresses.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.6.6'], + 'Port' => ['title' => '', 'description' => 'The port used by the backend server. Valid values: **1** to **65535**.'."\n" + ."\n" + .'> This parameter cannot be modified.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '443'], + 'Weight' => ['title' => '', 'description' => 'The weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If the value is set to **0**, no requests are forwarded to the server.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + 'Description' => ['title' => '', 'description' => 'The description of the backend server.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at sings (@), underscores (\\_), and hyphens (-).'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], ], 'required' => false, + 'title' => '', ], - 'required' => false, - 'maxItems' => 20, - 'minItems' => 1, + 'required' => true, + 'maxItems' => 200, + 'title' => '', ], ], [ - 'name' => 'NextToken', + 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The pagination token used to specify a particular page of results. Valid values:'."\n" - ."\n" - .'* Leave this parameter empty for the first query or the only query.'."\n" - .'* Set this parameter to the value of NextToken obtained from the previous query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The region ID of the NLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'DryRun', 'in' => 'formData', - 'schema' => [ - 'description' => 'The number of entries to return in each call. Valid values: **1** to **50**. Default value: **50**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'formData', - 'schema' => [ - 'description' => 'You can call the [DescribeRegions](~~443657~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate this value. Ensure that the value is unique among all requests. Only ASCII characters are allowed.'."\n" + ."\n" + .'> If you do not specify this parameter, the value of **RequestId** is used.**** **RequestId** of each request is different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'RpcResponse', - 'description' => 'Queries the tags of a resource.'."\n", + 'title' => 'RpcResponse', + 'description' => 'Updates the configurations of backend servers in a server group.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'TagResources' => [ - 'description' => 'The details about the resource and its tags, including the resource ID, the resource type, and the keys and values of the tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'ResourceId' => [ - 'description' => 'The resource ID.'."\n", - 'type' => 'string', - 'example' => 'nlb-nrnrxwd15en27r****', - ], - 'ResourceType' => [ - 'description' => 'The type of resource. Valid values:'."\n" - ."\n" - .'* **loadbalancer**: an NLB instance'."\n" - .'* **securitypolicy**: a security policy'."\n" - .'* **servergroup**: a server group'."\n", - 'type' => 'string', - 'example' => 'loadbalancer', - ], - 'RegionNo' => [ - 'description' => 'The region information.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'AliUid' => [ - 'description' => 'The UID of the Alibaba Cloud account.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1429****39299349', - ], - 'TagKey' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'env', - ], - 'TagValue' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'product', - ], - 'Scope' => [ - 'description' => 'The visible range of the tags.'."\n", - 'type' => 'string', - 'example' => 'public', - ], - 'Category' => [ - 'description' => 'The type of the tag. Valid values:'."\n" - ."\n" - .'* **Custom**'."\n" - .'* **System**'."\n" - .'* **All**'."\n", - 'type' => 'string', - 'example' => 'All', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'ServerGroupId' => ['description' => 'The server group ID.'."\n", 'type' => 'string', 'example' => 'sgp-atstuj3rtoptyui****', 'title' => ''], + 'JobId' => ['description' => 'The ID of the asynchronous task.'."\n", 'type' => 'string', 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****', 'title' => ''], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.serverGroup', 'errorMessage' => 'The status of servergroup [%s] is incorrect.', 'description' => 'The current operation cannot be performed on the server group as its status is unavailable. Please check if the server group is currently undergoing any other operations.'."\n"], + ['errorCode' => 'Conflict.Lock', 'errorMessage' => 'The Lock [%s] is conflict.', 'description' => 'The specific resource is conflict.'], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => ''], + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The parameter of %s is missing.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden.%s', 'errorMessage' => 'Authentication is failed for %s.', 'description' => ''], + ['errorCode' => 'Forbidden.NoPermission', 'errorMessage' => 'Authentication is failed for NoPermission.', 'description' => 'Authentication is failed for NoPermission.'], + ], + [ + ['errorCode' => 'ResourceNotFound.BackendServer', 'errorMessage' => 'The specified resource of BackendServer is not found.', 'description' => 'The specified backend server resource was not found. Please check the input parameters.'], + ['errorCode' => 'ResourceNotFound.serverGroup', 'errorMessage' => 'The specified resource of serverGroup is not found.', 'description' => 'The specified resource of serverGroup is not found. Please check the input parameters.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n sgp-atstuj3rtoptyui****\\n 72dcd26b-f12d-4c27-b3af-18f6aed5****\\n","errorExample":""}]', + 'title' => 'UpdateServerGroupServersAttribute', + 'summary' => 'Modifies the weights and descriptions of backend servers in a server group of a Network Load Balancer (NLB) instance.', + 'description' => '**UpdateServerGroupServersAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background.'."\n" + ."\n" + .'1. You can call the [ListServerGroups](~~445895~~) operation to query the status of a server group.'."\n" + ."\n" + .' * If a server group is in the **Configuring** state, the server group is being modified.'."\n" + .' * If a server group is in the **Available** state, the server group is running.'."\n" + ."\n" + .'2. You can call the [ListServerGroupServers](~~445896~~) operation to query the status of a backend server.'."\n" + ."\n" + .' * If a backend server is in the **Configuring** state, it indicates that the backend server is being modified.'."\n" + .' * If a backend server is in the **Available** state, it indicates that the backend server is running.', + 'changeSet' => [ + ['createdAt' => '2024-01-22T09:55:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:58:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-05T02:00:42.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-22T05:42:12.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-22T04:15:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-26T03:48:09.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-17T06:19:00.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateServerGroupServersAttribute'], + ], + 'product' => ['code' => 'nlb', 'title' => '网络型负载均衡NLB'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateServerGroupServersAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', - ], - [ - 'errorCode' => 'IllegalParam.resourceType', - 'errorMessage' => 'The param of resourceType is illegal.', - ], - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The parameter of %s is missing.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.NoPermission', - 'errorMessage' => 'Authentication is failed for NoPermission.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.securitypolicy', - 'errorMessage' => 'The specified resource of securitypolicy is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.loadBalancer', - 'errorMessage' => 'The specified resource of loadbalancer is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.listener', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.serverGroup', - 'errorMessage' => 'The specified resource of serverGroup is not found.', - ], - ], + ], + ], + 'endpoints' => [ + ['regionId' => 'cn-wulanchabu', 'regionName' => 'China (Ulanqab)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-wulanchabu.aliyuncs.com', 'endpoint' => 'nlb.cn-wulanchabu.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-wulanchabu.aliyuncs.com'], + ['regionId' => 'cn-beijing', 'regionName' => 'China (Beijing)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-beijing.aliyuncs.com', 'endpoint' => 'nlb.cn-beijing.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-zhengzhou-jva', 'regionName' => 'Zhengzhou (China Unicom Joint Venture)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-zhengzhou-jva.aliyuncs.com', 'endpoint' => 'nlb.cn-zhengzhou-jva.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-zhengzhou-jva.aliyuncs.com'], + ['regionId' => 'cn-qingdao', 'regionName' => 'China (Qingdao)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-qingdao.aliyuncs.com', 'endpoint' => 'nlb.cn-qingdao.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-qingdao.aliyuncs.com'], + ['regionId' => 'cn-wuhan-lr', 'regionName' => 'China (Wuhan - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-wuhan-lr.aliyuncs.com', 'endpoint' => 'nlb.cn-wuhan-lr.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-wuhan-lr.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-shanghai.aliyuncs.com', 'endpoint' => 'nlb.cn-shanghai.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-hongkong', 'regionName' => 'China (Hong Kong)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-hongkong.aliyuncs.com', 'endpoint' => 'nlb.cn-hongkong.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-hongkong.aliyuncs.com'], + ['regionId' => 'cn-heyuan', 'regionName' => 'China (Heyuan)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-heyuan.aliyuncs.com', 'endpoint' => 'nlb.cn-heyuan.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-heyuan.aliyuncs.com'], + ['regionId' => 'cn-zhangjiakou', 'regionName' => 'China (Zhangjiakou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-zhangjiakou.aliyuncs.com', 'endpoint' => 'nlb.cn-zhangjiakou.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-zhangjiakou.aliyuncs.com'], + ['regionId' => 'cn-shenzhen', 'regionName' => 'China (Shenzhen)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-shenzhen.aliyuncs.com', 'endpoint' => 'nlb.cn-shenzhen.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'cn-nanjing', 'regionName' => 'China (Nanjing - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-nanjing.aliyuncs.com', 'endpoint' => 'nlb.cn-nanjing.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-nanjing.aliyuncs.com'], + ['regionId' => 'ap-northeast-2', 'regionName' => 'South Korea (Seoul)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.ap-northeast-2.aliyuncs.com', 'endpoint' => 'nlb.ap-northeast-2.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-northeast-2.aliyuncs.com'], + ['regionId' => 'ap-northeast-1', 'regionName' => 'Japan (Tokyo)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.ap-northeast-1.aliyuncs.com', 'endpoint' => 'nlb.ap-northeast-1.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'cn-fuzhou', 'regionName' => 'China (Fuzhou - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-fuzhou.aliyuncs.com', 'endpoint' => 'nlb.cn-fuzhou.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-fuzhou.aliyuncs.com'], + ['regionId' => 'cn-chengdu', 'regionName' => 'China (Chengdu)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-chengdu.aliyuncs.com', 'endpoint' => 'nlb.cn-chengdu.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-chengdu.aliyuncs.com'], + ['regionId' => 'cn-guangzhou', 'regionName' => 'China (Guangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-guangzhou.aliyuncs.com', 'endpoint' => 'nlb.cn-guangzhou.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-guangzhou.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.ap-southeast-1.aliyuncs.com', 'endpoint' => 'nlb.ap-southeast-1.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-3', 'regionName' => 'Malaysia (Kuala Lumpur)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.ap-southeast-3.aliyuncs.com', 'endpoint' => 'nlb.ap-southeast-3.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-southeast-3.aliyuncs.com'], + ['regionId' => 'ap-southeast-5', 'regionName' => 'Indonesia (Jakarta)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.ap-southeast-5.aliyuncs.com', 'endpoint' => 'nlb.ap-southeast-5.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-southeast-5.aliyuncs.com'], + ['regionId' => 'ap-southeast-6', 'regionName' => 'Philippines (Manila)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.ap-southeast-6.aliyuncs.com', 'endpoint' => 'nlb.ap-southeast-6.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-southeast-6.aliyuncs.com'], + ['regionId' => 'ap-southeast-7', 'regionName' => 'Thailand (Bangkok)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.ap-southeast-7.aliyuncs.com', 'endpoint' => 'nlb.ap-southeast-7.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-southeast-7.aliyuncs.com'], + ['regionId' => 'cn-hangzhou', 'regionName' => 'China (Hangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nlb.cn-hangzhou.aliyuncs.com', 'endpoint' => 'nlb.cn-hangzhou.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-hangzhou.aliyuncs.com'], + ['regionId' => 'us-east-1', 'regionName' => 'US (Virginia)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'nlb.us-east-1.aliyuncs.com', 'endpoint' => 'nlb.us-east-1.aliyuncs.com', 'vpc' => 'nlb-vpc.us-east-1.aliyuncs.com'], + ['regionId' => 'eu-west-1', 'regionName' => 'UK (London)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'nlb.eu-west-1.aliyuncs.com', 'endpoint' => 'nlb.eu-west-1.aliyuncs.com', 'vpc' => 'nlb-vpc.eu-west-1.aliyuncs.com'], + ['regionId' => 'eu-west-2', 'regionName' => 'France (Paris)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'nlb.eu-west-2.aliyuncs.com', 'endpoint' => 'nlb.eu-west-2.aliyuncs.com', 'vpc' => 'nlb-vpc.eu-west-2.aliyuncs.com'], + ['regionId' => 'us-west-1', 'regionName' => 'US (Silicon Valley)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'nlb.us-west-1.aliyuncs.com', 'endpoint' => 'nlb.us-west-1.aliyuncs.com', 'vpc' => 'nlb-vpc.us-west-1.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'regionName' => 'Germany (Frankfurt)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'nlb.eu-central-1.aliyuncs.com', 'endpoint' => 'nlb.eu-central-1.aliyuncs.com', 'vpc' => 'nlb-vpc.eu-central-1.aliyuncs.com'], + ['regionId' => 'na-south-1', 'regionName' => 'Mexico', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'nlb.na-south-1.aliyuncs.com', 'endpoint' => 'nlb.na-south-1.aliyuncs.com', 'vpc' => 'nlb-vpc.na-south-1.aliyuncs.com'], + ['regionId' => 'me-east-1', 'regionName' => 'UAE (Dubai)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'nlb.me-east-1.aliyuncs.com', 'endpoint' => 'nlb.me-east-1.aliyuncs.com', 'vpc' => 'nlb-vpc.me-east-1.aliyuncs.com'], + ['regionId' => 'me-central-1', 'regionName' => 'Saudi Arabia (Riyadh)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'nlb.me-central-1.aliyuncs.com', 'endpoint' => 'nlb.me-central-1.aliyuncs.com', 'vpc' => 'nlb-vpc.me-central-1.aliyuncs.com'], + ['regionId' => 'ap-south-1', 'regionName' => 'India (Mumbai) Closed', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'nlb.ap-south-1.aliyuncs.com', 'endpoint' => 'nlb.ap-south-1.aliyuncs.com', 'vpc' => 'nlb-vpc.ap-south-1.aliyuncs.com'], + ['regionId' => 'cn-heyuan-acdr-1', 'regionName' => 'Heyuan ACDR Auto', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'nlb.cn-heyuan-acdr-1.aliyuncs.com', 'endpoint' => 'nlb.cn-heyuan-acdr-1.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-heyuan-acdr-1.aliyuncs.com'], + ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => 'China South 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'nlb.cn-shenzhen-finance-1.aliyuncs.com', 'endpoint' => 'nlb.cn-shenzhen-finance-1.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-shenzhen-finance-1.aliyuncs.com'], + ['regionId' => 'cn-beijing-finance-1', 'regionName' => 'China North 2 Finance (Preview)', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'nlb.cn-beijing-finance-1.aliyuncs.com', 'endpoint' => 'nlb.cn-beijing-finance-1.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-beijing-finance-1.aliyuncs.com'], + ['regionId' => 'cn-shanghai-finance-1', 'regionName' => 'China East 2 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'nlb.cn-shanghai-finance-1.aliyuncs.com', 'endpoint' => 'nlb.cn-shanghai-finance-1.aliyuncs.com', 'vpc' => 'nlb-vpc.cn-shanghai-finance-1.aliyuncs.com'], + ], + 'errorCodes' => [ + ['code' => 'Conflict.%s', 'message' => 'The %s [%s] is conflict.', 'http_code' => 400, 'description' => ''], + ['code' => 'Conflict.Lock', 'message' => 'The Lock [%s] is conflict.', 'http_code' => 400, 'description' => 'The specific resource is conflict.'], + ['code' => 'Conflict.Port', 'message' => 'The Port [%s] is conflict.', 'http_code' => 400, 'description' => 'The specified port conflicts with an existing port'], + ['code' => 'Conflict.SecurityGroup', 'message' => 'The SecurityGroup [%s] is conflict.', 'http_code' => 400, 'description' => 'The specific resource is conflict.'], + ['code' => 'DescribeHDMonitor.Fail', 'message' => 'DescribeHDMonitor Fail.', 'http_code' => 404, 'description' => 'Failed to query second-level monitoring configuration.'], + ['code' => 'DryRunOperation', 'message' => 'Request validation has been passed with DryRun flag set.', 'http_code' => 400, 'description' => 'Request validation has been passed with DryRun flag set.'], + ['code' => 'DuplicatedParam.%s', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => ''], + ['code' => 'DuplicatedParam.AllocationId', 'message' => 'The param of AllocationId is duplicated.', 'http_code' => 400, 'description' => ''], + ['code' => 'DuplicatedParam.listener', 'message' => 'The param of any port listener is duplicated.', 'http_code' => 400, 'description' => 'Only one listener of the anyport type can be created. Check the input parameters.'], + ['code' => 'DuplicatedParam.Server', 'message' => 'The param of Server is duplicated.', 'http_code' => 400, 'description' => 'The param of Server is duplicated.'], + ['code' => 'EnableHDMonitor.Fail', 'message' => 'EnableHDMonitor Fail.', 'http_code' => 404, 'description' => 'Set HD monitoring error'], + ['code' => 'EnableHdMonitorFail', 'message' => 'OperationDenied.HdMonitorListenerExist.', 'http_code' => 400, 'description' => 'There are listener with high defination monitor enabled'], + ['code' => 'Forbidden.%s', 'message' => 'Authentication is failed for %s.', 'http_code' => 403, 'description' => ''], + ['code' => 'Forbidden.NoPermission', 'message' => 'Authentication is failed for NoPermission.', 'http_code' => 403, 'description' => 'Authentication is failed for NoPermission.'], + ['code' => 'Forbidden.SecurityGroup', 'message' => 'Authentication is failed for SecurityGroup.', 'http_code' => 403, 'description' => 'Authentication is failed for SecurityGroup.'], + ['code' => 'HealthCheckConfig.healthCheckUrl', 'message' => 'The healthCheckUrl used in the healthCheckConfig is illegal.', 'http_code' => 400, 'description' => 'The healthCheckUrl used in the healthCheckConfig is illegal.'], + ['code' => 'healthCheckConfig.healthCheckUrl', 'message' => 'The healthCheckUrl used in the healthCheckConfig is illegal. refer to the correct use example to modify the url format: the length needs to be 1~80 characters, and only letters, numbers, characters -/.%?#&= and extended characters _;~!()*[]@$^:\',+ can be used. It must start with a forward slash (/).', 'http_code' => 400, 'description' => 'The healthCheckUrl used in the healthCheckConfig is illegal.'], + ['code' => 'IdempotenceSignatureMismatch', 'message' => 'The idempotence token of request is same with the prev one, but the signature is different.', 'http_code' => 400, 'description' => 'The requested idempotent token is the same as the previous one, but the signature is different.'], + ['code' => 'IlleagalParam.healthCheckUrl', 'message' => 'The param of healthCheckUrl in healthCheckConfig is illegal.', 'http_code' => 400, 'description' => 'the url of the health check used in the health check setting is invalid.'], + ['code' => 'IlleagalParam.healthCheckUrl', 'message' => 'The parameter of healthCheckUrl in healthCheckConfig is illegal.', 'http_code' => 400, 'description' => 'The URL of the health check used in the health check setting is invalid.'], + ['code' => 'IllegalParam', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => ''], + ['code' => 'IllegalParam.%s', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => ''], + ['code' => 'IllegalParam.AcceptLanguage', 'message' => 'The param of AcceptLanguage[%s] is illegal from bundle %s', 'http_code' => 400, 'description' => ''], + ['code' => 'IllegalParam.AnyPortListenerConflictWithNonAnyPortServerGroup', 'message' => 'The param of AnyPortListenerConflictWithNonAnyPortServerGroup is illegal.', 'http_code' => 400, 'description' => ''], + ['code' => 'IllegalParam.AnyPortServerGroupConflictWithHealthCheckConfig', 'message' => 'The param of AnyPortServerGroupConflictWithHealthCheckConfig is illegal.', 'http_code' => 400, 'description' => ''], + ['code' => 'IllegalParam.ConnectionDrainTimeout', 'message' => 'The param of ConnectionDrainTimeout is illegal.', 'http_code' => 400, 'description' => 'The parameter ConnectionDrainTimeout is invalid. Check the input parameters.'], + ['code' => 'IllegalParam.DeletionProtectionConfig', 'message' => 'DeletionProtectionConfig reason is illegal.', 'http_code' => 400, 'description' => 'The reason parameter for changing the delete protection status is invalid.'], + ['code' => 'IllegalParam.deletionProtectionReason', 'message' => 'The param of deletionProtectionReason is illegal.', 'http_code' => 400, 'description' => 'The parameter deletionProtectionReason is invalid. Check whether the parameter must be 2-128 English or Chinese characters in length. It must start with an uppercase or lowercase letter or a Chinese character and can contain digits, periods (.), underscores (_), and hyphens (-).'], + ['code' => 'IllegalParam.description', 'message' => 'The parameter description of server is illegal.', 'http_code' => 400, 'description' => 'The server description does not meet the input requirements, please modify according to the details in the error.'], + ['code' => 'IllegalParam.healthCheckDomain', 'message' => 'The parameter of healthCheckConfig.healthCheckDomain is illegal.', 'http_code' => 400, 'description' => 'The healthCheckDomain in the health check configuration is invalid. Check the input parameters.'], + ['code' => 'IllegalParam.healthCheckDomain', 'message' => 'The parameter of healthCheckUrl is illegal.', 'http_code' => 400, 'description' => 'The parameter healthCheckUrl is illegal.'], + ['code' => 'IllegalParam.IdleTimeout', 'message' => 'The param of IdleTimeout is illegal.', 'http_code' => 400, 'description' => 'The parameter connection idle timeout configuration is invalid.'], + ['code' => 'IllegalParam.IP', 'message' => 'The param of IP is illegal.', 'http_code' => 400, 'description' => 'The parameter IP is invalid. Please check the input value of the parameter IP.'], + ['code' => 'IllegalParam.ListenerDescription', 'message' => 'The parameter ListenerDescription of listener is illegal.', 'http_code' => 400, 'description' => 'The listener description does not meet the input requirements. Modify the listener description based on the details in the error.'], + ['code' => 'IllegalParam.loadBalancerName', 'message' => 'Param loadBalancerName is illegal.', 'http_code' => 400, 'description' => 'The instance name is invalid. Check the parameters.'], + ['code' => 'IllegalParam.loadBalancerName', 'message' => 'The parameter loadBalancerName of listener is illegal.', 'http_code' => 400, 'description' => 'The NLB instance name does not meet the input requirements, please modify according to the details in the error.'], + ['code' => 'IllegalParam.loadBalancerNames', 'message' => 'The size of the loadBalancerNames parameter must be between 1 and 10.', 'http_code' => 400, 'description' => 'The size of the loadBalancerNames parameter must be between 1 and 10.'], + ['code' => 'IllegalParam.LoadBalancerType', 'message' => 'The LoadBalancerType value is invalid.', 'http_code' => 400, 'description' => ''], + ['code' => 'IllegalParam.ModificationProtectionConfig', 'message' => 'ModificationProtectionConfig reason is illegal.', 'http_code' => 400, 'description' => 'ModificationProtectionConfig reason is illegal.'], + ['code' => 'IllegalParam.modificationProtectionReason', 'message' => 'The param of modificationProtectionReason is illegal.', 'http_code' => 400, 'description' => 'The parameter modificationProtectionReason is invalid, please refer to the document to modify.'], + ['code' => 'IllegalParam.MssConflictWithUdpAndGeneve', 'message' => 'The param of MssConflictWithUdpAndGeneve is illegal.', 'http_code' => 400, 'description' => 'When the Mss value is not null, the listenerProtocol cannot be udp or GENEVE.'], + ['code' => 'IllegalParam.NonAnyPortListenerConflictWithAnyPortServerGroup', 'message' => 'The param of NonAnyPortListenerConflictWithAnyPortServerGroup is illegal.', 'http_code' => 400, 'description' => 'The listening port configuration conflicts with the full port forwarding switch.'], + ['code' => 'IllegalParam.Port', 'message' => 'The param of Port is illegal.', 'http_code' => 400, 'description' => 'The port range in the request is invalid. Check the input parameters.'], + ['code' => 'IllegalParam.PreserveClientIpSwitch', 'message' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.', 'http_code' => 400, 'description' => 'The server group associated with the tcpssl listener does not support enabling PreserveClientIp.'], + ['code' => 'IllegalParam.resourceType', 'message' => 'The param of resourceType is illegal.', 'http_code' => 400, 'description' => 'The parameter resourceType is invalid. Please check the input value of the parameter resourceType.'], + ['code' => 'IllegalParam.RSPortConflictWithServerGroup', 'message' => 'The param of RSPortConflictWithServerGroup is illegal.', 'http_code' => 400, 'description' => 'The parameter RSPort conflicts with the ServerGroup.'], + ['code' => 'IllegalParam.ServerGroupId', 'message' => 'The param of ServerGroupId is illegal.', 'http_code' => 400, 'description' => 'The parameter ServerGroupId is invalid. Check the input parameters.'], + ['code' => 'IllegalParam.ServerGroupName', 'message' => 'The param of ServerGroupName is illegal.', 'http_code' => 400, 'description' => ''], + ['code' => 'IllegalParamFormat.ParseCreateRsPoolRequestFailed', 'message' => 'The param format of CreateRsPoolRequest is illegal.', 'http_code' => 400, 'description' => 'The param format of CreateRsPoolRequest is illegal.'], + ['code' => 'IllegalParamSize.certificateIds', 'message' => 'The param size of certificateIds or caCertificateIds is illegal.', 'http_code' => 400, 'description' => 'you can only have one certificate id. check whether the id is entered repeatedly.'], + ['code' => 'IncorrectBusinessStatus.CommonBandwidthPackage', 'message' => 'The business status of CommonBandwidthPackage is incorrect.', 'http_code' => 400, 'description' => 'The shared bandwidth package used in the request parameter is locked. Check whether the fee is overdue.'], + ['code' => 'IncorrectStatus.%s', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => ''], + ['code' => 'IncorrectStatus.certificate', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => ''], + ['code' => 'IncorrectStatus.Eni', 'message' => 'Eni status is invalid.', 'http_code' => 400, 'description' => 'The ENI status is invalid.'], + ['code' => 'IncorrectStatus.listener', 'message' => 'The status of listener [%s] is incorrect.', 'http_code' => 400, 'description' => 'The current operation cannot be performed on the listener as its status is unavailable. Please check if the listener is currently undergoing any other operations.'], + ['code' => 'IncorrectStatus.listener', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => ''], + ['code' => 'IncorrectStatus.loadbalancer', 'message' => 'The status of loadbalancer [%s] is incorrect.', 'http_code' => 400, 'description' => 'The current operation cannot be performed on the load balancer as its status is unavailable. Please check if the load balancer is currently undergoing any other operations.'], + ['code' => 'IncorrectStatus.loadbalancer', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => ''], + ['code' => 'IncorrectStatus.serverGroup', 'message' => 'The status of servergroup [%s] is incorrect.', 'http_code' => 400, 'description' => 'The current operation cannot be performed on the server group as its status is unavailable. Please check if the server group is currently undergoing any other operations.'."\n"], + ['code' => 'IncorrectStatus.ZoneId', 'message' => 'The zoneId status of eni [%s] is incorrect.', 'http_code' => 400, 'description' => 'The zone status of the ENI cannot be operated. Wait for the preceding operation to complete.'], + ['code' => 'InvalidParameter', 'message' => 'Invalid parameter, please check the parameter input.', 'http_code' => 400, 'description' => 'Invalid parameter, please check the parameter input.'], + ['code' => 'InvalidZones', 'message' => 'The current zone list is illegal.', 'http_code' => 400, 'description' => 'The Availability Zone used in Zone maping is illegal.'], + ['code' => 'loadBalancerNames', 'message' => 'size must be between 1 and 10', 'http_code' => 400, 'description' => 'Parameter size must be between 1-10.'], + ['code' => 'Mismatch.%s', 'message' => 'The %s is mismatched for %s and %s.', 'http_code' => 400, 'description' => ''], + ['code' => 'Mismatch.Protocol', 'message' => 'The Protocol is mismatched for %s and %s.', 'http_code' => 400, 'description' => 'The protocols of the listener and server group do not match.'], + ['code' => 'Mismatch.ServerType', 'message' => 'The ServerType is mismatched for %s and %s.', 'http_code' => 400, 'description' => ''], + ['code' => 'Mismatch.vpc', 'message' => 'The Vpc is mismatched for %s and %s.', 'http_code' => 400, 'description' => ''], + ['code' => 'Mismatch.VpcId', 'message' => 'The VpcId is mismatched for %s and %s.', 'http_code' => 400, 'description' => 'The VpcId is mismatched for %s and %s.'], + ['code' => 'Mismatch.VswitchIdAndPrivateIPv4Address', 'message' => 'The VSwitch ID and IPv4Address are mismatched.', 'http_code' => 400, 'description' => 'The VSwitch ID does not match the IPV4 address because the specified IPV4 address is already assigned or is not in the specified CIDR, check the input parameters.'], + ['code' => 'Mismatch.ZoneIdAndVswitchId', 'message' => 'The ZoneIdAndVswitchId is mismatched for %s and %s.', 'http_code' => 400, 'description' => ''], + ['code' => 'MissingParam.%s', 'message' => 'The parameter of %s is missing.', 'http_code' => 400, 'description' => ''], + ['code' => 'MissingParam.Certificate', 'message' => 'The param of certificate is missing.', 'http_code' => 400, 'description' => 'The parameter Certificate is missing.'], + ['code' => 'MissingParam.IP', 'message' => 'The parameter of IP is missing.', 'http_code' => 400, 'description' => 'The entered ip parameter is missing. Check the input parameter.'], + ['code' => 'MissingParam.IP', 'message' => 'The param of IP is missing.', 'http_code' => 400, 'description' => 'The entered IP parameter is missing. Check your input parameter.'], + ['code' => 'MissingParam.ServerGroupId', 'message' => 'The param of ServerGroupId is missing.', 'http_code' => 400, 'description' => 'The parameter ServerGroupId is missing, please check the input parameters.'], + ['code' => 'OperationDenied.%s', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationDenied.AddressTypeNotChanged', 'message' => 'The operation is not allowed because of AddressTypeNotChanged.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationDenied.CaCertificateUsed', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''], + ['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 DeletionProtectionEnabled.', 'http_code' => 400, 'description' => 'The operation is not allowed because of DeletionProtectionEnabled.'], + ['code' => 'OperationDenied.EipAlreadyInBandwidthPackage', 'message' => 'The operation is not allowed because of EipAlreadyInBandwidthPackage.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationDenied.IntranetLoadBalancer', 'message' => 'The operation is not allowed because of IntranetLoadBalancer.', 'http_code' => 400, 'description' => 'The operation is not allowed because of IntranetLoadBalancer.'], + ['code' => 'OperationDenied.Ipv6IntranetInstance', 'message' => 'The operation is not allowed because of Ipv6IntranetInstance.', 'http_code' => 400, 'description' => 'the private ipv6 server load balancer instance does not support the current operation.'], + ['code' => 'OperationDenied.NonDualStackInstance', 'message' => 'The operation is not allowed because of NonDualStackInstance.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationDenied.OnlyPayByTrafficSupported', 'message' => 'The operation is not allowed because of OnlyPayByTrafficSupported.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationDenied.OnlyPostPaidSupported', 'message' => 'The operation is not allowed because of OnlyPostPaidSupported.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationDenied.ProtectedPrivateIPv4AddressChanged', 'message' => 'The operation is not allowed because of ProtectedPrivateIPv4AddressChanged.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationDenied.Protocol', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationDenied.RegionNotSupportAnycast', 'message' => 'The operation is not allowed because of RegionNotSupportAnycast.', 'http_code' => 400, 'description' => 'The current region does not support AnyCast.'], + ['code' => 'OperationDenied.RegionNotSupportHDMonitor', 'message' => 'The operation is not allowed because of RegionNotSupportHDMonitor.', 'http_code' => 400, 'description' => 'The current region does not support second-level monitoring.'], + ['code' => 'OperationDenied.ServerGroupNotSupportIpv6', 'message' => 'The operation is not allowed because of ServerGroupNotSupportIpv6.', 'http_code' => 400, 'description' => 'The operation failed because the server group does not support IPV6.'], + ['code' => 'OperationDenied.ServiceLinkedRoleNotExist', 'message' => 'The operation is not allowed because of ServiceLinkedRoleNotExist.', 'http_code' => 400, 'description' => 'The operation is not allowed because of ServiceLinkedRoleNotExist.Please check if the necessary permissions are granted in RAM for the NLB.'], + ['code' => 'OperationDenied.VpcNotSupportIpv6', 'message' => 'The operation is not allowed because of VpcNotSupportIpv6.', 'http_code' => 400, 'description' => 'The VPC you are using does not support Ipv6.'], + ['code' => 'OperationDenied.ZoneVSwitchChanged', 'message' => 'The operation is not allowed because of ZoneVSwitchChanged.', 'http_code' => 400, 'description' => 'The existing zone does not allow changes to the virtual switch.'], + ['code' => 'OperationFailed.%s', 'message' => 'The operation failed because of %s.', 'http_code' => 400, 'description' => 'Failed to call the API operation due to %.'], + ['code' => 'OperationFailed.CreateOrderError', 'message' => 'Operation failed because CreateOrderError.', 'http_code' => 400, 'description' => 'The operation failed because the order creation failed.'], + ['code' => 'OperationFailed.DefaultCertificateNotFound', 'message' => 'The operation failed because of %s.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationFailed.DuplicateZones.', 'message' => 'The operation failed because of Can not Specify duplicate zones.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationFailed.GetXipFailed', 'message' => 'Operation failed because GetXipFailed.', 'http_code' => 400, 'description' => 'The operation failed because the instance is still being created.'], + ['code' => 'OperationFailed.NotExist.ResourceGroup', 'message' => 'Operation failed because ResourceGroup not exist.', 'http_code' => 400, 'description' => 'The specified resource group does not exist.'], + ['code' => 'OperationFailed.StatusCheckFail.ResourceGroup', 'message' => 'The operation failed because of StatusCheckFail.ResourceGroup.', 'http_code' => 400, 'description' => 'The operation failed because the resource group status check failed.'], + ['code' => 'OperationFailed.UnpaidBill', 'message' => 'The operation failed because of UnpaidBill.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationFailed.vSwitchNotSupportIpv6', 'message' => 'The operation failed because of vSwitchNotSupportIpv6.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationFailed.ZoneAlreadyExist', 'message' => 'The operation failed because of ZoneAlreadyExist.', 'http_code' => 400, 'description' => 'The zone specified in the parameter already exists. Check the input parameters.'], + ['code' => 'QuotaExceeded.%s', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => ''], + ['code' => 'QuotaExceeded.QuotaInsufficient', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota is insufficient, currently used %s/%s. Please modify the quota size in the quota center.'], + ['code' => 'ResourceAlreadyAssociated.%s', 'message' => 'The specified resource of %s is already associated.', 'http_code' => 400, 'description' => ''], + ['code' => 'ResourceAlreadyAssociated.AllocationId', 'message' => 'The specified resource of %s is already associated.', 'http_code' => 400, 'description' => ''], + ['code' => 'ResourceAlreadyAssociated.Certificate', 'message' => 'The specified resource %s is already associated.', 'http_code' => 400, 'description' => ''], + ['code' => 'ResourceAlreadyAssociated.loadbalancer', 'message' => 'The specified resource of loadbalancer is already associated.', 'http_code' => 400, 'description' => 'the specified load balancer has been bound to the shared bandwidth package.'], + ['code' => 'ResourceInConfiguring.%s', 'message' => 'The specified resource of %s is being configured, please try again later.', 'http_code' => 400, 'description' => ''], + ['code' => 'ResourceInConfiguring.loadbalancer', 'message' => 'The specified resource of loadbalancer is being configured, please try again later.', 'http_code' => 400, 'description' => 'The specified resource of loadbalancer is being configured, please try again later.'], + ['code' => 'ResourceInConfiguring.VswitchId', 'message' => 'The specified resource of VswitchId is being configured, please try again later.', 'http_code' => 400, 'description' => 'The specified resource of VswitchId is being configured, please try again later.'], + ['code' => 'ResourceInCreating.%s', 'message' => 'The specified resource of %s is creating, please try again later.', 'http_code' => 400, 'description' => ''], + ['code' => 'ResourceInCreating.loadbalancer', 'message' => 'The specified resource of loadbalancer is creating, please try again later.', 'http_code' => 400, 'description' => 'The specified resource of loadbalancer is creating, please try again later.'], + ['code' => 'ResourceInUse.%s', 'message' => 'The specified resource of %s is in use.', 'http_code' => 400, 'description' => ''], + ['code' => 'ResourceInUse.IP', 'message' => 'The specified resource of IP is in use.', 'http_code' => 400, 'description' => ''], + ['code' => 'ResourceInUse.SecurityPolicy', 'message' => 'The specified resource of SecurityPolicy is in use.', 'http_code' => 400, 'description' => 'The SecurityPolicy is changing, please try again later.'], + ['code' => 'ResourceInUse.ServerGroup', 'message' => 'The specified resource of ServerGroup is in use.', 'http_code' => 400, 'description' => 'The specified server group resource is being used. Please try again later.'], + ['code' => 'ResourceNotAssociated.Certificate', 'message' => 'The specified resource %s is not associated.', 'http_code' => 400, 'description' => ''], + ['code' => 'ResourceNotAssociated.loadbalancer', 'message' => 'Thre resource is not associated with loadbalancer.', 'http_code' => 400, 'description' => 'The current bandwidth package is not associated with the lb in the parameter. Check the input parameter.'], + ['code' => 'ResourceNotEnough.%s', 'message' => 'The specified resource of %s is not enough.', 'http_code' => 400, 'description' => ''], + ['code' => 'ResourceNotEnough.VSwitchIp', 'message' => 'The specified resource of VSwitchIp is not enough.', 'http_code' => 400, 'description' => 'The specified virtual switch (vSwitch) IP resources are insufficient.'], + ['code' => 'ResourceNotFound.%s', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => ''], + ['code' => 'ResourceNotFound.AllocationId', 'message' => 'The specified resource of AllocationId is not found.', 'http_code' => 404, 'description' => 'The specified AllocationId does not exist. Check the input parameters.'], + ['code' => 'ResourceNotFound.AnycastInstance', 'message' => 'The specified resource of AnycastInstance is not found.', 'http_code' => 404, 'description' => ''], + ['code' => 'ResourceNotFound.BackendServer', 'message' => 'The specified resource of BackendServer is not found.', 'http_code' => 404, 'description' => 'The specified backend server resource was not found. Please check the input parameters.'], + ['code' => 'ResourceNotFound.BandwidthPackageId', 'message' => 'The specified resource of BandwidthPackageId is not found.', 'http_code' => 404, 'description' => ''], + ['code' => 'ResourceNotFound.CaCertificate', 'message' => 'The specified resource of CaCertificate is not found.', 'http_code' => 404, 'description' => 'Ca certificate does not exist, please check the input parameters.'], + ['code' => 'ResourceNotFound.Certificate', 'message' => 'The specified resource %s is not found.', 'http_code' => 400, 'description' => ''], + ['code' => 'ResourceNotFound.CommonBandwidthPackage', 'message' => 'The specified resource of CommonBandwidthPackage is not found.', 'http_code' => 404, 'description' => 'The shared bandwidth package resource does not exist. Check the input parameters.'], + ['code' => 'ResourceNotFound.Eci', 'message' => 'The specified resource of Eci is not found.', 'http_code' => 404, 'description' => 'The specified ECI (Elastic Container Instance) resource was not found. Please check the input parameters.'], + ['code' => 'ResourceNotFound.Ecs', 'message' => 'The specified resource of Ecs is not found.', 'http_code' => 404, 'description' => 'The specified ECS (Elastic Compute Service) resource was not found. Please check the input parameters.'], + ['code' => 'ResourceNotFound.Eni', 'message' => 'The specified resource Eni is not found.', 'http_code' => 404, 'description' => 'The specified ENI instance is not found. Check the input parameters.'], + ['code' => 'ResourceNotFound.HdMonitorConfigNotExist', 'message' => 'The specified resource of HdMonitorConfigNotExist is not found.', 'http_code' => 404, 'description' => 'HdMonitorConfig does not exist, check the input parameters.'], + ['code' => 'ResourceNotFound.Ipv6Gateway', 'message' => 'The specified resource of Ipv6Gateway is not found.', 'http_code' => 404, 'description' => ''], + ['code' => 'ResourceNotFound.JobId', 'message' => 'The specified resource of JobId is not found.', 'http_code' => 404, 'description' => 'The specified JobId resource was not found. Please check the input parameters.'], + ['code' => 'ResourceNotFound.listener', 'message' => 'The specified resource %s is not found.', 'http_code' => 404, 'description' => ''], + ['code' => 'ResourceNotFound.loadBalancer', 'message' => 'The specified resource of loadbalancer is not found.', 'http_code' => 404, 'description' => 'The specified load balancer resource was not found. Please check the input parameters.'], + ['code' => 'ResourceNotFound.ResourceGroup', 'message' => 'The param of resourceGroup not existed.', 'http_code' => 404, 'description' => 'The resource group does not exist.'], + ['code' => 'ResourceNotFound.SecurityGroup', 'message' => 'The specified resource of SecurityGroup is not found.', 'http_code' => 404, 'description' => 'The specified SecurityGroup resource was not found. Please check the input parameters.'], + ['code' => 'ResourceNotFound.securitypolicy', 'message' => 'The specified resource of securitypolicy is not found.', 'http_code' => 404, 'description' => ''], + ['code' => 'ResourceNotFound.serverGroup', 'message' => 'The specified resource of serverGroup is not found.', 'http_code' => 404, 'description' => 'The specified resource of serverGroup is not found. Please check the input parameters.'], + ['code' => 'ResourceNotFound.Vpc', 'message' => 'The specified resource of Vpc is not found.', 'http_code' => 404, 'description' => 'The specified VPC resource was not found. Please check the input parameters.'], + ['code' => 'ResourceNotFound.VSwitch', 'message' => 'The specified resource of vSwitch is not found.', 'http_code' => 404, 'description' => 'The specified vSwitch resource was not found. Please check the input parameters.'], + ['code' => 'SystemBusy', 'message' => 'System is busy, please try again later.', 'http_code' => 400, 'description' => ''], + ['code' => 'TagInvokeError', 'message' => 'resourceType:%s ,error msg:%s', 'http_code' => 400, 'description' => ''], + ['code' => 'TagInvokeError', 'message' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.', 'http_code' => 400, 'description' => ''], + ['code' => 'Throttling.User', 'message' => 'Request was denied due to api flow control.', 'http_code' => 400, 'description' => 'Request was denied due to api flow control.'], + ['code' => 'UnauthorizedRegion', 'message' => 'The specified region of %s is not authorized.', 'http_code' => 403, 'description' => ''], + ['code' => 'UnauthorizedZone', 'message' => 'The specified zone of %s is not authorized.', 'http_code' => 403, 'description' => ''], + ['code' => 'UpdateSecurityPolicyFailed', 'message' => 'The operation failed because of Security Policy is not changed.', 'http_code' => 400, 'description' => ''], + ], + 'changeSet' => [ + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UpdateLoadBalancerAddressTypeConfig'], + ], + 'createdAt' => '2025-01-16T01:51:50.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'StartListener'], + ], + 'createdAt' => '2024-10-16T03:29:00.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'TagResources'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'UntagResources'], + ], + 'createdAt' => '2024-09-12T13:37:15.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateLoadBalancer'], + ], + 'createdAt' => '2024-09-06T06:41:21.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateLoadBalancer'], + ], + 'createdAt' => '2024-09-04T08:31:59.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateListener'], + ['description' => 'Request parameters changed', 'api' => 'UpdateListenerAttribute'], + ], + 'createdAt' => '2024-08-27T11:23:36.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'GetListenerHealthStatus'], + ], + 'createdAt' => '2024-08-16T10:10:58.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListListenerCertificates'], + ], + 'createdAt' => '2024-08-14T07:43:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateServerGroup'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'ListServerGroups'], + ['description' => 'Request parameters changed', 'api' => 'UpdateServerGroupAttribute'], + ], + 'createdAt' => '2024-06-25T08:31:15.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Error codes changed', 'api' => 'DeleteListener'], + ['description' => 'Error codes changed', 'api' => 'UpdateLoadBalancerZones'], + ], + 'createdAt' => '2024-04-02T06:34:00.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'LoadBalancerLeaveSecurityGroup'], + ['description' => 'Error codes changed', 'api' => 'StopListener'], + ], + 'createdAt' => '2024-03-21T04:01:14.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'UpdateServerGroupAttribute'], + ], + 'createdAt' => '2024-03-14T12:29:06.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateAdditionalCertificatesWithListener'], + ['description' => 'Error codes changed', 'api' => 'CancelShiftLoadBalancerZones'], + ['description' => 'Error codes changed', 'api' => 'CreateServerGroup'], + ['description' => 'Error codes changed', 'api' => 'DeleteSecurityPolicy'], + ['description' => 'Error codes changed', 'api' => 'EnableLoadBalancerIpv6Internet'], + ['description' => 'Error codes changed', 'api' => 'ListListeners'], + ['description' => 'Error codes changed', 'api' => 'StartListener'], + ['description' => 'Error codes changed', 'api' => 'StopListener'], + ['description' => 'Error codes changed', 'api' => 'UpdateListenerAttribute'], + ], + 'createdAt' => '2024-02-29T07:14:54.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateAdditionalCertificatesWithListener'], + ['description' => 'Error codes changed', 'api' => 'AttachCommonBandwidthPackageToLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'CreateServerGroup'], + ['description' => 'Error codes changed', 'api' => 'DeleteListener'], + ['description' => 'Error codes changed', 'api' => 'DisableLoadBalancerIpv6Internet'], + ['description' => 'Error codes changed', 'api' => 'GetLoadBalancerAttribute'], + ['description' => 'Error codes changed', 'api' => 'TagResources'], + ['description' => 'Error codes changed', 'api' => 'UpdateListenerAttribute'], + ], + 'createdAt' => '2024-02-22T08:02:36.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'CreateServerGroup'], + ['description' => 'Error codes changed', 'api' => 'GetListenerAttribute'], + ['description' => 'Error codes changed', 'api' => 'LoadBalancerLeaveSecurityGroup'], + ['description' => 'Error codes changed', 'api' => 'RemoveServersFromServerGroup'], + ['description' => 'Error codes changed', 'api' => 'UpdateListenerAttribute'], + ['description' => 'Error codes changed', 'api' => 'UpdateLoadBalancerAddressTypeConfig'], + ], + 'createdAt' => '2024-02-04T05:53:21.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Response parameters changed', 'api' => 'GetLoadBalancerAttribute'], + ], + 'createdAt' => '2024-02-04T03:50:10.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'GetLoadBalancerAttribute'], + ], + 'createdAt' => '2024-02-04T03:20:04.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateListener'], + ['description' => 'Request parameters changed', 'api' => 'UpdateListenerAttribute'], + ], + 'createdAt' => '2024-01-30T03:05:17.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Error codes changed', 'api' => 'AssociateAdditionalCertificatesWithListener'], + ['description' => 'Error codes changed', 'api' => 'AttachCommonBandwidthPackageToLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'DetachCommonBandwidthPackageFromLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'DisableLoadBalancerIpv6Internet'], + ['description' => 'Error codes changed', 'api' => 'GetJobStatus'], + ['description' => 'Error codes changed', 'api' => 'ListLoadBalancers'], + ['description' => 'Error codes changed', 'api' => 'RemoveServersFromServerGroup'], + ], + 'createdAt' => '2024-01-29T06:32:57.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'CreateServerGroup'], + ['description' => 'Error codes changed', 'api' => 'DeleteServerGroup'], + ['description' => 'Error codes changed', 'api' => 'UpdateListenerAttribute'], + ['description' => 'Error codes changed', 'api' => 'UpdateLoadBalancerAttribute'], + ], + 'createdAt' => '2024-01-24T07:05:27.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'CreateSecurityPolicy'], + ['description' => 'Error codes changed', 'api' => 'DeleteSecurityPolicy'], + ['description' => 'Error codes changed', 'api' => 'DescribeRegions'], + ['description' => 'Error codes changed', 'api' => 'StartShiftLoadBalancerZones'], + ['description' => 'Error codes changed', 'api' => 'UpdateLoadBalancerAddressTypeConfig'], + ['description' => 'Error codes changed', 'api' => 'UpdateLoadBalancerZones'], + ['description' => 'Error codes changed', 'api' => 'UpdateServerGroupServersAttribute'], + ], + 'createdAt' => '2024-01-22T09:55:21.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UpdateServerGroupAttribute'], + ], + 'createdAt' => '2023-12-28T06:06:01.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'UpdateLoadBalancerAttribute'], + ], + 'createdAt' => '2023-12-20T10:18:34.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateAdditionalCertificatesWithListener'], + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'CreateServerGroup'], + ['description' => 'Error codes changed', 'api' => 'DeleteServerGroup'], + ['description' => 'Error codes changed', 'api' => 'DisassociateAdditionalCertificatesWithListener'], + ['description' => 'Error codes changed', 'api' => 'EnableLoadBalancerIpv6Internet'], + ['description' => 'Error codes changed', 'api' => 'GetLoadBalancerAttribute'], + ['description' => 'Error codes changed', 'api' => 'StopListener'], + ['description' => 'Error codes changed', 'api' => 'TagResources'], + ['description' => 'Error codes changed', 'api' => 'UntagResources'], + ], + 'createdAt' => '2023-12-18T03:25:01.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ListListeners'], + ], + 'createdAt' => '2023-12-12T10:04:22.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetListenerAttribute'], + ], + 'createdAt' => '2023-12-12T07:39:16.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'GetListenerAttribute'], + ['description' => 'Response parameters changed', 'api' => 'ListListeners'], + ['description' => 'Request parameters changed', 'api' => 'UpdateListenerAttribute'], + ], + 'createdAt' => '2023-11-27T08:28:11.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Error codes changed', 'api' => 'AttachCommonBandwidthPackageToLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'CreateServerGroup'], + ['description' => 'Error codes changed', 'api' => 'DeleteListener'], + ['description' => 'Error codes changed', 'api' => 'DeleteLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'ListTagResources'], + ['description' => 'Error codes changed', 'api' => 'LoadBalancerJoinSecurityGroup'], + ['description' => 'Error codes changed', 'api' => 'UpdateLoadBalancerAddressTypeConfig'], + ['description' => 'Error codes changed', 'api' => 'UpdateLoadBalancerZones'], + ], + 'createdAt' => '2023-10-30T04:13:22.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CancelShiftLoadBalancerZones'], + ['description' => 'Error codes changed', 'api' => 'LoadBalancerJoinSecurityGroup'], + ], + 'createdAt' => '2023-10-12T07:29:39.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'GetListenerAttribute'], + ['description' => 'Error codes changed', 'api' => 'GetListenerHealthStatus'], + ], + 'createdAt' => '2023-10-10T08:16:59.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateLoadBalancer'], + ], + 'createdAt' => '2023-10-09T11:55:47.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'DescribeZones'], + ['description' => 'Error codes changed', 'api' => 'GetListenerHealthStatus'], + ['description' => 'Error codes changed', 'api' => 'ListServerGroupServers'], + ['description' => 'Error codes changed', 'api' => 'ListTagResources'], + ['description' => 'Error codes changed', 'api' => 'StartListener'], + ['description' => 'Error codes changed', 'api' => 'StopListener'], + ['description' => 'Error codes changed', 'api' => 'UpdateServerGroupAttribute'], + ], + 'createdAt' => '2023-10-09T11:30:21.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Error codes changed', 'api' => 'CreateServerGroup'], + ['description' => 'Error codes changed', 'api' => 'UpdateServerGroupAttribute'], + ], + 'createdAt' => '2023-10-07T05:50:39.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateServerGroup'], + ['description' => 'Response parameters changed', 'api' => 'ListServerGroups'], + ['description' => 'Request parameters changed', 'api' => 'UpdateServerGroupAttribute'], + ], + 'createdAt' => '2023-09-27T09:30:52.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Error codes changed', 'api' => 'AssociateAdditionalCertificatesWithListener'], + ['description' => 'Error codes changed', 'api' => 'CancelShiftLoadBalancerZones'], + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'CreateServerGroup'], + ['description' => 'Error codes changed', 'api' => 'DeleteListener'], + ['description' => 'Error codes changed', 'api' => 'DescribeRegions'], + ['description' => 'Error codes changed', 'api' => 'DescribeZones'], + ], + 'createdAt' => '2023-09-26T07:59:12.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ListLoadBalancers'], + ], + 'createdAt' => '2023-09-19T03:04:48.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateServerGroup'], + ['description' => 'Response parameters changed', 'api' => 'ListServerGroups'], + ['description' => 'Request parameters changed', 'api' => 'UpdateServerGroupAttribute'], + ], + 'createdAt' => '2023-09-18T01:54:50.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListServerGroupServers'], + ], + 'createdAt' => '2023-09-13T12:02:18.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Error codes changed', 'api' => 'GetListenerHealthStatus'], + ['description' => 'Error codes changed', 'api' => 'ListLoadBalancers'], + ], + 'createdAt' => '2023-09-13T03:48:47.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'DeleteListener'], + ['description' => 'Error codes changed', 'api' => 'GetListenerAttribute'], + ['description' => 'Error codes changed', 'api' => 'ListTagResources'], + ['description' => 'Error codes changed', 'api' => 'LoadBalancerJoinSecurityGroup'], + ['description' => 'Error codes changed', 'api' => 'UpdateLoadBalancerAddressTypeConfig'], + ], + 'createdAt' => '2023-09-12T02:58:49.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListServerGroupServers'], + ], + 'createdAt' => '2023-09-11T06:35:01.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'TagResources'], + ], + 'createdAt' => '2023-09-11T05:39:35.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateLoadBalancer'], + ], + 'createdAt' => '2023-09-08T06:25:35.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Error codes changed', 'api' => 'AttachCommonBandwidthPackageToLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'CreateSecurityPolicy'], + ['description' => 'Error codes changed', 'api' => 'CreateServerGroup'], + ['description' => 'Error codes changed', 'api' => 'DeleteListener'], + ['description' => 'Error codes changed', 'api' => 'DeleteLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'DeleteSecurityPolicy'], + ['description' => 'Error codes changed', 'api' => 'DeleteServerGroup'], + ], + 'createdAt' => '2023-09-05T02:01:01.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Request parameters changed', 'api' => 'RemoveServersFromServerGroup'], + ['description' => 'Request parameters changed', 'api' => 'UpdateServerGroupServersAttribute'], + ], + 'createdAt' => '2023-08-22T05:42:21.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Error codes changed', 'api' => 'AssociateAdditionalCertificatesWithListener'], + ['description' => 'Error codes changed', 'api' => 'AttachCommonBandwidthPackageToLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'CancelShiftLoadBalancerZones'], + ['description' => 'Error codes changed', 'api' => 'CreateListener'], + ['description' => 'Error codes changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'CreateSecurityPolicy'], + ['description' => 'Error codes changed', 'api' => 'CreateServerGroup'], + ['description' => 'Error codes changed', 'api' => 'DeleteLoadBalancer'], + ['description' => 'Error codes changed', 'api' => 'DeleteSecurityPolicy'], + ], + 'createdAt' => '2023-08-22T04:15:45.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListTagResources'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"nlb-nrnrxwd15en27r****\\",\\n \\"ResourceType\\": \\"loadbalancer\\",\\n \\"RegionNo\\": \\"cn-hangzhou\\",\\n \\"AliUid\\": 0,\\n \\"TagKey\\": \\"env\\",\\n \\"TagValue\\": \\"product\\",\\n \\"Scope\\": \\"public\\",\\n \\"Category\\": \\"All\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","type":"json"}]', - 'title' => 'ListTagResources', + 'createdAt' => '2023-07-04T09:26:01.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateListener'], + ['description' => 'Request parameters changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Request parameters changed', 'api' => 'CreateSecurityPolicy'], + ['description' => 'Request parameters changed', 'api' => 'CreateServerGroup'], + ], + 'createdAt' => '2023-06-30T07:50:34.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateListener'], + ['description' => 'Request parameters changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Request parameters changed', 'api' => 'CreateSecurityPolicy'], + ['description' => 'Request parameters changed', 'api' => 'CreateServerGroup'], + ['description' => 'Response parameters changed', 'api' => 'GetListenerAttribute'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListListeners'], + ['description' => 'Error codes changed', 'api' => 'ListTagResources'], + ], + 'createdAt' => '2023-06-29T02:29:54.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'ListListenerCertificates'], + ], + 'createdAt' => '2023-06-07T11:42:00.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetLoadBalancerAttribute'], + ['description' => 'Response parameters changed', 'api' => 'ListLoadBalancers'], + ], + 'createdAt' => '2023-06-07T06:59:02.000Z', + 'description' => '', ], - ], - 'endpoints' => [ [ - 'regionId' => 'cn-qingdao', - 'endpoint' => 'nlb.cn-qingdao.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListListenerCertificates'], + ], + 'createdAt' => '2023-04-11T07:38:18.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'nlb.cn-beijing.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetLoadBalancerAttribute'], + ['description' => 'Response parameters changed', 'api' => 'ListLoadBalancers'], + ], + 'createdAt' => '2023-04-04T06:22:25.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-zhangjiakou', - 'endpoint' => 'nlb.cn-zhangjiakou.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'UpdateListenerAttribute'], + ], + 'createdAt' => '2023-04-04T06:19:15.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-zhengzhou-jva', - 'endpoint' => 'nlb.cn-zhengzhou-jva.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DisableLoadBalancerIpv6Internet'], + ['description' => 'Response parameters changed', 'api' => 'EnableLoadBalancerIpv6Internet'], + ], + 'createdAt' => '2023-03-30T07:22:11.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-wulanchabu', - 'endpoint' => 'nlb.cn-wulanchabu.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateListener'], + ], + 'createdAt' => '2023-03-30T07:06:58.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou', - 'endpoint' => 'nlb.cn-hangzhou.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'UpdateLoadBalancerAddressTypeConfig'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'UpdateLoadBalancerZones'], + ], + 'createdAt' => '2022-12-27T09:42:06.000Z', + 'description' => '开放 anycasteip', ], [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'nlb.cn-shanghai.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'LoadBalancerJoinSecurityGroup'], + ['description' => 'Request parameters changed', 'api' => 'LoadBalancerLeaveSecurityGroup'], + ], + 'createdAt' => '2022-12-14T09:48:13.000Z', + 'description' => 'ram 增加', ], [ - 'regionId' => 'cn-nanjing', - 'endpoint' => 'nlb.cn-nanjing.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateServerGroup'], + ], + 'createdAt' => '2022-12-09T03:33:50.000Z', + 'description' => 'bugfix', ], [ - 'regionId' => 'cn-fuzhou', - 'endpoint' => 'nlb.cn-fuzhou.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetLoadBalancerAttribute'], + ], + 'createdAt' => '2022-12-08T15:21:34.000Z', + 'description' => 'bug', ], [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'nlb.cn-shenzhen.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetLoadBalancerAttribute'], + ], + 'createdAt' => '2022-11-30T09:16:09.000Z', + 'description' => 'nlb支持删除保护和修改保护', ], [ - 'regionId' => 'cn-heyuan', - 'endpoint' => 'nlb.cn-heyuan.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Response parameters changed', 'api' => 'ListLoadBalancers'], + ['description' => 'OpenAPI offline', 'api' => 'UpdateLoadBalancerProtection'], + ], + 'createdAt' => '2022-11-30T09:13:53.000Z', + 'description' => 'nlb支持删除保护和修改保护', ], [ - 'regionId' => 'cn-guangzhou', - 'endpoint' => 'nlb.cn-guangzhou.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateListener'], + ], + 'createdAt' => '2022-11-03T13:06:42.000Z', + 'description' => 'bugfix', ], [ - 'regionId' => 'cn-chengdu', - 'endpoint' => 'nlb.cn-chengdu.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateListener'], + ['description' => 'Request parameters changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Request parameters changed', 'api' => 'CreateServerGroup'], + ['description' => 'Response parameters changed', 'api' => 'GetListenerAttribute'], + ['description' => 'OpenAPI offline', 'api' => 'GetListenerHealthStatus'], + ['description' => 'Response parameters changed', 'api' => 'GetLoadBalancerAttribute'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListLoadBalancers'], + ['description' => 'Request parameters changed', 'api' => 'ListSecurityPolicy'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListServerGroups'], + ['description' => 'Request parameters changed', 'api' => 'UpdateListenerAttribute'], + ], + 'createdAt' => '2022-10-17T02:12:09.000Z', + 'description' => 'nlb init', ], [ - 'regionId' => 'cn-wuhan-lr', - 'endpoint' => 'nlb.cn-wuhan-lr.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AttachCommonBandwidthPackageToLoadBalancer'], + ['description' => 'Request parameters changed', 'api' => 'CreateListener'], + ['description' => 'Request parameters changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Request parameters changed', 'api' => 'CreateServerGroup'], + ['description' => 'OpenAPI offline', 'api' => 'DisableLoadBalancerIpv6Internet'], + ['description' => 'OpenAPI offline', 'api' => 'EnableLoadBalancerIpv6Internet'], + ['description' => 'Response parameters changed', 'api' => 'GetLoadBalancerAttribute'], + ['description' => 'Response parameters changed', 'api' => 'ListLoadBalancers'], + ], + 'createdAt' => '2022-10-17T02:12:07.000Z', + 'description' => '发布测试', ], [ - 'regionId' => 'cn-hongkong', - 'endpoint' => 'nlb.cn-hongkong.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ListListeners'], + ], + 'createdAt' => '2022-09-26T08:13:58.000Z', + 'description' => 'listListener 参数类型修改', ], [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'nlb.ap-northeast-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Response parameters changed', 'api' => 'ListServerGroups'], + ], + 'createdAt' => '2022-09-21T13:24:02.000Z', + 'description' => '内部参数调整', ], [ - 'regionId' => 'ap-northeast-2', - 'endpoint' => 'nlb.ap-northeast-2.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Request parameters changed', 'api' => 'RemoveServersFromServerGroup'], + ], + 'createdAt' => '2022-09-20T16:36:41.000Z', + 'description' => 'anyport', ], [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'nlb.ap-southeast-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateServerGroup'], + ], + 'createdAt' => '2022-09-20T16:17:35.000Z', + 'description' => 'anyport', ], [ - 'regionId' => 'ap-southeast-3', - 'endpoint' => 'nlb.ap-southeast-3.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetListenerAttribute'], + ['description' => 'Response parameters changed', 'api' => 'GetListenerAttribute'], + ], + 'createdAt' => '2022-09-13T07:31:06.000Z', + 'description' => 'ProxyProtocolEnabled SecSensorEnabled 类型修改', ], [ - 'regionId' => 'ap-southeast-5', - 'endpoint' => 'nlb.ap-southeast-5.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ListLoadBalancers'], + ], + 'createdAt' => '2022-08-05T09:52:31.000Z', + 'description' => 'init', ], [ - 'regionId' => 'ap-southeast-6', - 'endpoint' => 'nlb.ap-southeast-6.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'UpdateServerGroupAttribute'], + ], + 'createdAt' => '2022-08-05T09:50:49.000Z', + 'description' => 'init', ], [ - 'regionId' => 'us-east-1', - 'endpoint' => 'nlb.us-east-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateLoadBalancer'], + ], + 'createdAt' => '2022-08-04T04:08:44.000Z', + 'description' => 'init', ], [ - 'regionId' => 'us-west-1', - 'endpoint' => 'nlb.us-west-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListLoadBalancers'], + ], + 'createdAt' => '2022-08-03T10:23:47.000Z', + 'description' => 'init', ], [ - 'regionId' => 'eu-west-1', - 'endpoint' => 'nlb.eu-west-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DisableLoadBalancerIpv6Internet'], + ['description' => 'Request parameters changed', 'api' => 'EnableLoadBalancerIpv6Internet'], + ], + 'createdAt' => '2022-08-03T07:32:39.000Z', + 'description' => 'init', ], [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'nlb.eu-central-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'AttachCommonBandwidthPackageToLoadBalancer'], + ['description' => 'Response parameters changed', 'api' => 'CreateListener'], + ['description' => 'Request parameters changed', 'api' => 'CreateSecurityPolicy'], + ['description' => 'Response parameters changed', 'api' => 'DeleteSecurityPolicy'], + ['description' => 'Response parameters changed', 'api' => 'DeleteServerGroup'], + ['description' => 'Request parameters changed', 'api' => 'DetachCommonBandwidthPackageFromLoadBalancer'], + ['description' => 'Response parameters changed', 'api' => 'GetLoadBalancerAttribute'], + ['description' => 'Request parameters changed', 'api' => 'StartListener'], + ['description' => 'Request parameters changed', 'api' => 'StopListener'], + ['description' => 'Request parameters changed', 'api' => 'UpdateSecurityPolicyAttribute'], + ], + 'createdAt' => '2022-08-02T06:52:34.000Z', + 'description' => '初始化', ], [ - 'regionId' => 'ap-south-1', - 'endpoint' => 'nlb.ap-south-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DeleteListener'], + ['description' => 'Response parameters changed', 'api' => 'DeleteLoadBalancer'], + ['description' => 'Response parameters changed', 'api' => 'DescribeRegions'], + ['description' => 'Response parameters changed', 'api' => 'DescribeZones'], + ['description' => 'Response parameters changed', 'api' => 'GetJobStatus'], + ['description' => 'Response parameters changed', 'api' => 'ListListenerCertificates'], + ['description' => 'Response parameters changed', 'api' => 'ListSecurityPolicy'], + ['description' => 'Response parameters changed', 'api' => 'ListServerGroupServers'], + ['description' => 'Response parameters changed', 'api' => 'UpdateListenerAttribute'], + ['description' => 'Response parameters changed', 'api' => 'UpdateServerGroupServersAttribute'], + ], + 'createdAt' => '2022-07-26T03:49:37.000Z', + 'description' => '隐藏返回中不对客户展示的字段', ], [ - 'regionId' => 'me-east-1', - 'endpoint' => 'nlb.me-east-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetListenerHealthStatus'], + ], + 'createdAt' => '2022-07-08T10:17:38.000Z', + 'description' => 'init', ], [ - 'regionId' => 'cn-shanghai-finance-1', - 'endpoint' => 'nlb.cn-shanghai-finance-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateListener'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Response parameters changed', 'api' => 'GetListenerAttribute'], + ['description' => 'Response parameters changed', 'api' => 'GetLoadBalancerAttribute'], + ['description' => 'Response parameters changed', 'api' => 'ListListeners'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListLoadBalancers'], + ['description' => 'Request parameters changed', 'api' => 'UpdateListenerAttribute'], + ], + 'createdAt' => '2022-07-06T07:08:46.000Z', + 'description' => 'init', ], [ - 'regionId' => 'cn-shenzhen-finance-1', - 'endpoint' => 'nlb.cn-shenzhen-finance-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DetachCommonBandwidthPackageFromLoadBalancer'], + ['description' => 'Request parameters changed', 'api' => 'DisableLoadBalancerIpv6Internet'], + ['description' => 'Request parameters changed', 'api' => 'EnableLoadBalancerIpv6Internet'], + ['description' => 'Response parameters changed', 'api' => 'GetListenerAttribute'], + ['description' => 'Response parameters changed', 'api' => 'ListListeners'], + ['description' => 'Request parameters changed', 'api' => 'StopListener'], + ['description' => 'Request parameters changed', 'api' => 'UpdateLoadBalancerAttribute'], + ], + 'createdAt' => '2022-07-04T03:05:57.000Z', + 'description' => 'init', ], [ - 'regionId' => 'ap-southeast-7', - 'endpoint' => 'nlb.ap-southeast-7.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AddServersToServerGroup'], + ['description' => 'Request parameters changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Response parameters changed', 'api' => 'GetLoadBalancerAttribute'], + ['description' => 'Response parameters changed', 'api' => 'ListLoadBalancers'], + ], + 'createdAt' => '2022-07-02T08:43:29.000Z', + 'description' => 'init', ], [ - 'regionId' => 'cn-beijing-finance-1', - 'endpoint' => 'nlb.cn-beijing-finance-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetListenerAttribute'], + ['description' => 'Response parameters changed', 'api' => 'ListListeners'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListSecurityPolicy'], + ], + 'createdAt' => '2022-06-18T09:53:19.000Z', + 'description' => 'nlb构建', ], [ - 'regionId' => 'me-central-1', - 'endpoint' => 'nlb.me-central-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateListener'], + ['description' => 'Response parameters changed', 'api' => 'GetListenerAttribute'], + ['description' => 'Response parameters changed', 'api' => 'ListListeners'], + ['description' => 'Request parameters changed', 'api' => 'UpdateListenerAttribute'], + ], + 'createdAt' => '2022-06-18T09:43:32.000Z', + 'description' => '初始化', ], [ - 'regionId' => 'cn-heyuan-acdr-1', - 'endpoint' => 'nlb.cn-heyuan-acdr-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateListener'], + ['description' => 'Request parameters changed', 'api' => 'CreateLoadBalancer'], + ['description' => 'Request parameters changed', 'api' => 'CreateServerGroup'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListServerGroups'], + ['description' => 'Request parameters changed', 'api' => 'UpdateListenerAttribute'], + ['description' => 'Request parameters changed', 'api' => 'UpdateLoadBalancerAddressTypeConfig'], + ['description' => 'Request parameters changed', 'api' => 'UpdateServerGroupAttribute'], + ], + 'createdAt' => '2022-06-17T07:56:23.000Z', + 'description' => '变更', ], [ - 'regionId' => 'na-south-1', - 'endpoint' => 'nlb.na-south-1.aliyuncs.com', + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'AddServersToServerGroup'], + ['description' => 'OpenAPI offline', 'api' => 'AttachCommonBandwidthPackageToLoadBalancer'], + ['description' => 'OpenAPI offline', 'api' => 'CreateListener'], + ['description' => 'OpenAPI offline', 'api' => 'CreateLoadBalancer'], + ['description' => 'OpenAPI offline', 'api' => 'CreateSecurityPolicy'], + ['description' => 'OpenAPI offline', 'api' => 'CreateServerGroup'], + ['description' => 'OpenAPI offline', 'api' => 'DeleteListener'], + ['description' => 'OpenAPI offline', 'api' => 'DeleteLoadBalancer'], + ['description' => 'OpenAPI offline', 'api' => 'DeleteSecurityPolicy'], + ['description' => 'OpenAPI offline', 'api' => 'DeleteServerGroup'], + ], + 'createdAt' => '2022-06-17T06:20:06.000Z', + 'description' => '不需要', + ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTagResources'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetListenerAttribute'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UntagResources'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListServerGroupServers'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerZones'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteSecurityPolicy'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DetachCommonBandwidthPackageFromLoadBalancer'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListServerGroups'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'MoveResourceGroup'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetListenerHealthStatus'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListSystemSecurityPolicy'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SetHdMonitorRegionConfig'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateListenerAttribute'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateLoadBalancer'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateServerGroupAttribute'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateServerGroup'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeZones'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteServerGroup'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddServersToServerGroup'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteLoadBalancer'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListListeners'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'LoadBalancerJoinSecurityGroup'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisassociateAdditionalCertificatesWithListener'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableLoadBalancerIpv6Internet'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteListener'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateAdditionalCertificatesWithListener'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetLoadBalancerAttribute'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListSecurityPolicy'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AttachCommonBandwidthPackageToLoadBalancer'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLoadBalancers'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListListenerCertificates'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateSecurityPolicyAttribute'], + ['threshold' => '-1', 'countWindow' => 1, 'regionId' => '*'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerAttribute'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveServersFromServerGroup'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerAddressTypeConfig'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRegions'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateSecurityPolicy'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelShiftLoadBalancerZones'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableLoadBalancerIpv6Internet'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StopListener'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateListener'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateLoadBalancerProtection'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeHdMonitorRegionConfig'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TagResources'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'LoadBalancerLeaveSecurityGroup'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateServerGroupServersAttribute'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartShiftLoadBalancerZones'], + ['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartListener'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJobStatus'], + ], + 'product' => ['code' => 'nlb', 'title' => 'Nlb'], + ], + 'ram' => [ + 'productCode' => 'NLB', + 'productName' => 'Server Load Balancer', + 'ramCodes' => ['nlb'], + 'ramLevel' => 'RESOURCE', + 'ramConditions' => [ + [ + 'name' => 'nlb:ListenerProtocol', + 'schema' => [ + 'type' => 'String', + 'description' => 'Network Load Balancer Listener Protocol', + 'enums' => ['TCP', 'UDP', 'TCPSSL'], + ], + ], + [ + 'name' => 'nlb:AddressType', + 'schema' => [ + 'type' => 'String', + 'description' => 'Network Load Balancer Address Type', + 'enums' => ['Internet', 'Intranet'], + ], + ], + [ + 'name' => 'nlb:SecurityPolicyId', + 'schema' => ['type' => 'String', 'description' => 'Network Load Balancer Security Policy'], + ], + ], + 'ramActions' => [ + [ + 'apiName' => 'ListTagResources', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServergroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], + ], + ], + [ + 'apiName' => 'ListListeners', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListListeners', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'Listener', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:listener/*'], + ], + ], + ], + [ + 'apiName' => 'EnableLoadBalancerIpv6Internet', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:EnableLoadBalancerIpv6Internet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'ListListenerCertificates', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListListenerCertificates', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'CancelShiftLoadBalancerZones', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:CancelShiftLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], + [ + 'apiName' => 'CreateServerGroup', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/*'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], + ], + ], + [ + 'apiName' => 'CreateLoadBalancer', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nlb:AddressType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/*'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'EipAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], + ], + ], + [ + 'apiName' => 'AddServersToServerGroup', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:AddServersToServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:eni/{#ServerId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:eci:{#regionId}:{#accountId}:containergroup/{#ServerId}'], + ], + ], + ], + [ + 'apiName' => 'GetListenerHealthStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetListenerHealthStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'DeleteSecurityPolicy', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], + ], + ], + [ + 'apiName' => 'ListServerGroups', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListServerGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/*'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], + ], + ], + [ + 'apiName' => 'GetLoadBalancerAttribute', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetLoadBalancerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'UpdateLoadBalancerProtection', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerProtection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], + [ + 'apiName' => 'UpdateListenerAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateListenerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nlb:SecurityPolicyId', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'UpdateLoadBalancerAddressTypeConfig', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerAddressTypeConfig', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nlb:AddressType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'StartListener', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:StartListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'UntagResources', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:UntagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'AttachCommonBandwidthPackageToLoadBalancer', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:AttachCommonBandwidthPackageToLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'CommonBandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:CommonBandwidthPackage/{#CommonBandwidthPackageId}'], + ], + ], + ], + [ + 'apiName' => 'ListServerGroupServers', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListServerGroupServers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:serverGroup/{#ServerGroupId}'], + ], + ], + ], + [ + 'apiName' => 'DeleteListener', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'UpdateSecurityPolicyAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateSecurityPolicyAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ], + ], + ], + [ + 'apiName' => 'UpdateLoadBalancerAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'GetListenerAttribute', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetListenerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'CreateSecurityPolicy', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/*'], + ], + ], + ], + [ + 'apiName' => 'DisableLoadBalancerIpv6Internet', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:DisableLoadBalancerIpv6Internet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'StopListener', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:StopListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'StartShiftLoadBalancerZones', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:StartShiftLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ], + ], + ], + [ + 'apiName' => 'UpdateLoadBalancerZones', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateLoadBalancerZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'CreateListener', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:CreateListener', + 'authLevel' => 'operate', + 'actionConditions' => [ + ['conditionKey' => 'nlb:ListenerProtocol', 'validationType' => 'always'], + ['conditionKey' => 'nlb:SecurityPolicyId', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'], + ], + ], + ], + [ + 'apiName' => 'ListLoadBalancers', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListLoadBalancers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/*'], + ], + ], + ], + [ + 'apiName' => 'ListSecurityPolicy', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListSecurityPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/*'], + ], + ], + ], + [ + 'apiName' => 'DisassociateAdditionalCertificatesWithListener', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:DisassociateAdditionalCertificatesWithListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'LoadBalancerJoinSecurityGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:LoadBalancerJoinSecurityGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityGroup', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:securitygroup/{#SecurityGroupId}'], + ], + ], + ], + [ + 'apiName' => 'ListAsynJobs', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:ListAsynJobs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'TagResources', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nlb:TagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'conditional', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'DetachCommonBandwidthPackageFromLoadBalancer', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:DetachCommonBandwidthPackageFromLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'UpdateServerGroupServersAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateServerGroupServersAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], + ], + ], + [ + 'apiName' => 'DescribeHdMonitorRegionConfig', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:DescribeHdMonitorRegionConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteServerGroup', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], + ], + ], + [ + 'apiName' => 'DeleteLoadBalancer', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:DeleteLoadBalancer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'SetHdMonitorRegionConfig', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:SetHdMonitorRegionConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'MoveResourceGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:MoveResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:serverGroup/{#serverGroupId}'], + ], + ], + ], + [ + 'apiName' => 'GetJobStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nlb:GetJobStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'LoadBalancerLeaveSecurityGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:LoadBalancerLeaveSecurityGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}'], + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'SecurityGroup', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:securitygroup/{#SecurityGroupId}'], + ], + ], + ], + [ + 'apiName' => 'RemoveServersFromServerGroup', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nlb:RemoveServersFromServerGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], + ], + ], + [ + 'apiName' => 'AssociateAdditionalCertificatesWithListener', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:AssociateAdditionalCertificatesWithListener', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:loadbalancer/{#LoadBalancerId}'], + ], + ], + ], + [ + 'apiName' => 'UpdateServerGroupAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nlb:UpdateServerGroupAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NLB', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServerGroupId}'], + ], + ], + ], + ], + 'resourceTypes' => [ + ['validationType' => 'conditional', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/{#ServergroupId}'], + ['validationType' => 'conditional', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/{#LoadbalancerId}'], + ['validationType' => 'conditional', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/{#SecurityPolicyId}'], + ['validationType' => 'always', 'resourceType' => 'Listener', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:listener/*'], + ['validationType' => 'always', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:servergroup/*'], + ['validationType' => 'always', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ['validationType' => 'always', 'resourceType' => 'LoadBalancer', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:loadbalancer/*'], + ['validationType' => 'always', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ['validationType' => 'conditional', 'resourceType' => 'EipAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'conditional', 'resourceType' => 'NetworkInterface', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:eni/{#ServerId}'], + ['validationType' => 'conditional', 'resourceType' => 'ContainerGroup', 'arn' => 'acs:eci:{#regionId}:{#accountId}:containergroup/{#ServerId}'], + ['validationType' => 'always', 'resourceType' => 'CommonBandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:CommonBandwidthPackage/{#CommonBandwidthPackageId}'], + ['validationType' => 'always', 'resourceType' => 'ServerGroup', 'arn' => 'acs:nlb:{#regionId}:{#AccountId}:serverGroup/{#ServerGroupId}'], + ['validationType' => 'always', 'resourceType' => 'SecurityPolicy', 'arn' => 'acs:nlb:{#regionId}:{#accountId}:securitypolicy/*'], + ['validationType' => 'always', 'resourceType' => 'SecurityGroup', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:securitygroup/{#SecurityGroupId}'], ], ], ]; -- cgit v1.2.3