summaryrefslogtreecommitdiff
path: root/data/en_us/nlb
diff options
context:
space:
mode:
Diffstat (limited to 'data/en_us/nlb')
-rw-r--r--data/en_us/nlb/2022-04-30/api-docs.php12024
1 files changed, 12024 insertions, 0 deletions
diff --git a/data/en_us/nlb/2022-04-30/api-docs.php b/data/en_us/nlb/2022-04-30/api-docs.php
new file mode 100644
index 0000000..5fac110
--- /dev/null
+++ b/data/en_us/nlb/2022-04-30/api-docs.php
@@ -0,0 +1,12024 @@
+<?php return [
+ 'version' => '1.0',
+ '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',
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeRegions',
+ 'DescribeZones',
+ ],
+ ],
+ [
+ 'id' => 175092,
+ 'title' => 'Network Load Balancer instances',
+ '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',
+ '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',
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateSecurityPolicy',
+ 'DeleteSecurityPolicy',
+ 'UpdateSecurityPolicyAttribute',
+ 'ListSecurityPolicy',
+ 'ListSystemSecurityPolicy',
+ ],
+ ],
+ [
+ 'id' => 183551,
+ 'title' => 'Resource groups',
+ 'type' => 'directory',
+ 'children' => [
+ 'MoveResourceGroup',
+ ],
+ ],
+ [
+ 'id' => 175122,
+ 'title' => 'Asynchronous tasks',
+ 'type' => 'directory',
+ 'children' => [
+ 'GetJobStatus',
+ 'ListAsynJobs',
+ ],
+ ],
+ [
+ 'id' => 175132,
+ 'title' => 'Tags',
+ 'type' => 'directory',
+ 'children' => [
+ 'TagResources',
+ 'UntagResources',
+ 'ListTagResources',
+ ],
+ ],
+ ],
+ 'components' => [
+ 'schemas' => [],
+ ],
+ 'apis' => [
+ 'DescribeHdMonitorRegionConfig' => [
+ 'summary' => 'Queries the storage configurations of fine-grained monitoring.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'add 必选',
+ 'description' => 'The ID of the region where the resources are deployed.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<GetJodResponse>',
+ 'description' => 'RpcResponse<GetJodResponse>',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'DescribeHDMonitor.Fail',
+ 'errorMessage' => 'DescribeHDMonitor Fail.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'SetHdMonitorRegionConfig' => [
+ 'summary' => 'Configures storage for fine-grained monitoring.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '207971',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbNC4CZR',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RegionId',
+ 'in' => 'query',
+ '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',
+ ],
+ ],
+ [
+ '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<GetJodResponse>',
+ 'description' => 'RpcResponse'."\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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'EnableHDMonitor.Fail',
+ 'errorMessage' => 'EnableHDMonitor Fail.',
+ ],
+ ],
+ ],
+ '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',
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ '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' => '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<DescribeRegionsResponse>',
+ 'description' => 'RpcResponse<DescribeRegionsResponse>',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SystemBusy',
+ 'errorMessage' => 'System is busy, please try again later.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"China (Hangzhou)\\",\\n \\"RegionEndpoint\\": \\"nlb.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeRegionsResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <Regions>\\n <LocalName>华东1(杭州)</LocalName>\\n <RegionEndpoint>nlb.cn-hangzhou.aliyuncs.com</RegionEndpoint>\\n <RegionId>cn-hangzhou</RegionId>\\n </Regions>\\n</DescribeRegionsResponse>","errorExample":""}]',
+ 'title' => '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServiceCode',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The service code. Set the value to **nlb**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'nlb',
+ ],
+ ],
+ [
+ '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' => '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<DescribeZonesResponse>',
+ 'description' => 'The response parameters.'."\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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Zones\\": [\\n {\\n \\"LocalName\\": \\"杭州 可用区G\\",\\n \\"ZoneId\\": \\"cn-hangzhou-g\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeZonesResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <Zones>\\n <LocalName>华东 1 可用区G</LocalName>\\n <ZoneId>cn-hangzhou-g</ZoneId>\\n </Zones>\\n</DescribeZonesResponse>","errorExample":""}]',
+ 'title' => 'DescribeZones',
+ ],
+ 'CreateLoadBalancer' => [
+ 'summary' => 'Creates a Network Load Balancer (NLB) instance in a specified region.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'paid',
+ 'abilityTreeCode' => '141875',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbS3YPBZ',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerType',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The type of the Server Load Balancer (SLB) instance. Set the value to **network**, which indicates an NLB instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'network',
+ 'default' => 'network',
+ 'enum' => [],
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerName',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'AddressType',
+ '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' => [],
+ ],
+ ],
+ [
+ 'name' => 'AddressIpVersion',
+ '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' => [],
+ ],
+ ],
+ [
+ 'name' => 'VpcId',
+ '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****',
+ ],
+ ],
+ [
+ 'name' => 'ZoneMappings',
+ '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,
+ ],
+ ],
+ [
+ 'name' => 'BandwidthPackageId',
+ '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****',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerBillingConfig',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ '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',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the resource group to which the instance belongs.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'rg-atstuj3rtop****',
+ ],
+ ],
+ [
+ 'name' => '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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' => 'DeletionProtectionConfig',
+ '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,
+ ],
+ ],
+ [
+ 'name' => 'ModificationProtectionConfig',
+ '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,
+ ],
+ ],
+ [
+ '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 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' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'response',
+ 'description' => 'response'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 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' => 'ResourceNotFound.VSwitch',
+ 'errorMessage' => 'The specified resource of vSwitch is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.Vpc',
+ 'errorMessage' => 'The specified resource of Vpc is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"LoadbalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"OrderId\\": 20230000\\n}","errorExample":""},{"type":"xml","example":"<CreateLoadBalancerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <LoadbalancerId>nlb-83ckzc8d4xlp8o****</LoadbalancerId>\\n <OrderId>20230000</OrderId>\\n</CreateLoadBalancerResponse>","errorExample":""}]',
+ '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.',
+ ],
+ 'DeleteLoadBalancer' => [
+ 'summary' => 'Deletes a Network Load Balancer (NLB) instance.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the NLB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nlb-wb7r6dlwetvt5j****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 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\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteLoadBalancerResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DeleteLoadBalancerResponse>","errorExample":""}]',
+ 'title' => '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',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the NLB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nlb-83ckzc8d4xlp8o****',
+ ],
+ ],
+ [
+ 'name' => 'AddressType',
+ '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' => [],
+ ],
+ ],
+ [
+ '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****',
+ ],
+ '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,
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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 => [
+ 'headers' => [],
+ 'schema' => [
+ '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' => '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' => 'DuplicatedParam.AllocationId',
+ 'errorMessage' => 'The param of AllocationId is duplicated.',
+ ],
+ [
+ 'errorCode' => 'ResourceInConfiguring.loadbalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.EipAlreadyInBandwidthPackage',
+ 'errorMessage' => 'The operation is not allowed because of EipAlreadyInBandwidthPackage.',
+ ],
+ [
+ 'errorCode' => 'ResourceInConfiguring.%s',
+ 'errorMessage' => 'The specified resource of %s is being configured, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.AddressTypeNotChanged',
+ 'errorMessage' => 'The operation is not allowed because of AddressTypeNotChanged.',
+ ],
+ [
+ 'errorCode' => 'Mismatch.ZoneIdAndVswitchId',
+ 'errorMessage' => 'The ZoneIdAndVswitchId is mismatched for %s and %s.',
+ ],
+ [
+ 'errorCode' => 'TagInvokeError',
+ 'errorMessage' => 'listTagsByResourceIds: InvalidResourceId.NotFound : The specified ResourceIds are not found in our records.',
+ ],
+ [
+ 'errorCode' => 'DryRunOperation',
+ 'errorMessage' => 'Request validation has been passed with DryRun flag set.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ [
+ 'errorCode' => 'Throttling.User',
+ 'errorMessage' => 'Request was denied due to api flow control.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ResourceNotFound.loadBalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.AnycastInstance',
+ 'errorMessage' => 'The specified resource of AnycastInstance is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerAddressTypeConfigResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateLoadBalancerAddressTypeConfigResponse>","errorExample":""}]',
+ 'title' => '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",
+ ],
+ 'UpdateLoadBalancerAttribute' => [
+ 'summary' => 'Updates the attributes, including the name, of a Network Load Balancer (NLB) instance.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '141877',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb12YEWG',
+ 'FEATUREslb4N3NIV',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The NLB instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nlb-wb7r6dlwetvt5j****',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerName',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'CrossZoneEnabled',
+ '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',
+ ],
+ ],
+ [
+ '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 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-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":"<UpdateLoadBalancerAttributeResponse>\\n <RequestId>7294679F-08DE-16D4-8E5D-1625685DC10B</RequestId>\\n <JobId>aab74cfa-3bc4-48fc-80fc-0101da5a****</JobId>\\n</UpdateLoadBalancerAttributeResponse>","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",
+ '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,
+ ],
+ 'required' => true,
+ 'maxItems' => 10,
+ 'minItems' => 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 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',
+ ],
+ ],
+ [
+ '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 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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'JobId' => [
+ 'description' => 'The ID of the asynchronous task.'."\n",
+ 'type' => 'string',
+ 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ResourceInCreating.loadbalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.ProtectedPrivateIPv4AddressChanged',
+ 'errorMessage' => 'The operation is not allowed because of ProtectedPrivateIPv4AddressChanged.',
+ ],
+ [
+ 'errorCode' => 'OperationFailed.vSwitchNotSupportIpv6',
+ 'errorMessage' => 'The operation failed because of vSwitchNotSupportIpv6.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.%s',
+ 'errorMessage' => 'The operation is not allowed because of %s.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied.ZoneVSwitchChanged',
+ 'errorMessage' => 'The operation is not allowed because of ZoneVSwitchChanged.',
+ ],
+ [
+ 'errorCode' => 'InvalidZones',
+ 'errorMessage' => 'The current zone list is illegal.',
+ ],
+ [
+ 'errorCode' => 'ResourceInConfiguring.loadbalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.',
+ ],
+ [
+ 'errorCode' => 'SystemBusy',
+ 'errorMessage' => 'System is busy, please try again later.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotEnough.VSwitchIp',
+ 'errorMessage' => 'The specified resource of VSwitchIp is not enough.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'UnauthorizedZone',
+ 'errorMessage' => 'The specified zone of %s is not authorized.',
+ ],
+ ],
+ [
+ [
+ '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\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateLoadBalancerZonesResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateLoadBalancerZonesResponse>","errorExample":""}]',
+ 'title' => '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The NLB instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nlb-83ckzc8d4xlp8o****',
+ ],
+ ],
+ [
+ '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' => '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' => 'response',
+ 'description' => 'response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ResourceNotFound.loadBalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.Ipv6Gateway',
+ 'errorMessage' => 'The specified resource of Ipv6Gateway is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableLoadBalancerIpv6InternetResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</EnableLoadBalancerIpv6InternetResponse>","errorExample":""}]',
+ 'title' => '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' => [],
+ ],
+ ],
+ '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' => '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 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' => 'response',
+ 'description' => 'response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.loadBalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableLoadBalancerIpv6InternetResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DisableLoadBalancerIpv6InternetResponse>","errorExample":""}]',
+ 'title' => 'DisableLoadBalancerIpv6Internet',
+ ],
+ 'LoadBalancerLeaveSecurityGroup' => [
+ 'summary' => 'Disassociates a Network Load Balancer (NLB) instance from a security group.',
+ '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 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',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The NLB instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nlb-83ckzc8d4xlp8o****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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' => 'response',
+ 'description' => 'response'."\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' => 'ResourceInConfiguring.loadbalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.SecurityGroup',
+ 'errorMessage' => 'Authentication is failed for SecurityGroup.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ResourceNotFound.%s',
+ 'errorMessage' => 'The specified resource of %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":"<LoadBalancerLeaveSecurityGroupResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</LoadBalancerLeaveSecurityGroupResponse>","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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ '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****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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' => 'response',
+ 'description' => 'Associates the NLB instance with a security group.'."\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' => '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.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.SecurityGroup',
+ 'errorMessage' => 'Authentication is failed for SecurityGroup.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ResourceNotFound.loadBalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.SecurityGroup',
+ 'errorMessage' => 'The specified resource of SecurityGroup 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":"<LoadBalancerJoinSecurityGroupResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</LoadBalancerJoinSecurityGroupResponse>","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",
+ ],
+ 'UpdateLoadBalancerProtection' => [
+ 'summary' => 'Enables or disables the deletion protection feature.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the NLB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nlb-83ckzc8d4xlp8o****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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' => 'response',
+ 'description' => 'Modifies deletion protection settings.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ResourceInConfiguring.%s',
+ 'errorMessage' => 'The specified resource of %s is being configured, please try again later.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ [
+ 'errorCode' => 'IdempotenceSignatureMismatch',
+ 'errorMessage' => 'The idempotence token of request is same with the prev one, but the signature is different.',
+ ],
+ [
+ 'errorCode' => 'Conflict.Lock',
+ 'errorMessage' => 'The Lock [%s] is conflict.',
+ ],
+ [
+ 'errorCode' => 'ResourceInConfiguring.loadbalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is being configured, please try again later.',
+ ],
+ [
+ 'errorCode' => 'DryRunOperation',
+ 'errorMessage' => 'Request validation has been passed with DryRun flag set.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.deletionProtectionReason',
+ 'errorMessage' => 'The param of deletionProtectionReason is illegal.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.modificationProtectionReason',
+ 'errorMessage' => 'The param of modificationProtectionReason is illegal.',
+ ],
+ [
+ 'errorCode' => 'ResourceInCreating.loadbalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is creating, please try again later.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => '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":"<UpdateLoadBalancerProtectionResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</UpdateLoadBalancerProtectionResponse>","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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '141871',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb12YEWG',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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****',
+ ],
+ 'required' => false,
+ 'maxItems' => 10,
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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' => 'dns 地址',
+ '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' => '负载均衡实例名称',
+ '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****',
+ ],
+ ],
+ [
+ '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,
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ '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,
+ ],
+ ],
+ [
+ '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****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'RegionId',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'response',
+ 'description' => 'response'."\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",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The NLB instances.'."\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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"LoadBalancers\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"LoadBalancerName\\": \\"NLB1\\",\\n \\"LoadBalancerType\\": \\"Network\\",\\n \\"AddressType\\": \\"Internet\\",\\n \\"AddressIpVersion\\": \\"ipv4\\",\\n \\"Ipv6AddressType\\": \\"Internet\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"LoadBalancerBusinessStatus\\": \\"Normal\\",\\n \\"OperationLocks\\": [\\n {\\n \\"LockType\\": \\"SecurityLocked\\",\\n \\"LockReason\\": \\"业务异常\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"CreateTime\\": \\"2022-07-18T17:22:45Z\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"DNSName\\": \\"nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"VSwitchId\\": \\"vsw-bp1rmcrwg3erh1fh8****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"EniId\\": \\"eni-bp12f1xhs5yal61a****\\",\\n \\"PrivateIPv4Address\\": \\"192.168.3.32\\",\\n \\"AllocationId\\": \\"eip-bp1aedxso6u80u0qf****\\",\\n \\"PublicIPv4Address\\": \\"120.XX.XX.69\\",\\n \\"Ipv6Address\\": \\"2001:db8:1:1:1:1:1:1\\",\\n \\"PrivateIPv4HcStatus\\": \\"Healthy\\",\\n \\"PrivateIPv6HcStatus\\": \\"Healthy\\"\\n }\\n ],\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-bp10uag3q0jkxu72****\\"\\n ],\\n \\"CrossZoneEnabled\\": true,\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"Reason\\": \\"实例运行中\\",\\n \\"EnabledTime\\": \\"2022-12-01T17:22:45Z\\"\\n },\\n \\"ModificationProtectionConfig\\": {\\n \\"Status\\": \\"ConsoleProtection\\",\\n \\"Reason\\": \\"业务保障期\\",\\n \\"EnabledTime\\": \\"2022-12-01T17:22:45Z\\"\\n },\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"ValueTest\\"\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListLoadBalancersResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <LoadBalancers>\\n <RegionId>cn-hangzhou</RegionId>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n <LoadBalancerName>NLB1</LoadBalancerName>\\n <LoadBalancerType>Network</LoadBalancerType>\\n <AddressType>Internet</AddressType>\\n <AddressIpVersion>ipv4</AddressIpVersion>\\n <Ipv6AddressType>Internet</Ipv6AddressType>\\n <LoadBalancerStatus>Active</LoadBalancerStatus>\\n <LoadBalancerBusinessStatus>Normal</LoadBalancerBusinessStatus>\\n <OperationLocks>\\n <LockType>SecurityLocked</LockType>\\n <LockReason>业务异常</LockReason>\\n </OperationLocks>\\n <VpcId>vpc-bp1b49rqrybk45nio****</VpcId>\\n <CreateTime>2022-07-18T17:22Z</CreateTime>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <DNSName>nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com</DNSName>\\n <ZoneMappings>\\n <VSwitchId>vsw-bp1rmcrwg3erh1fh8****</VSwitchId>\\n <ZoneId>cn-hangzhou-a</ZoneId>\\n <LoadBalancerAddresses>\\n <EniId>eni-bp12f1xhs5yal61a****</EniId>\\n <PrivateIPv4Address>192.168.3.32</PrivateIPv4Address>\\n <AllocationId>eip-bp1aedxso6u80u0qf****</AllocationId>\\n <PublicIPv4Address>120.XX.XX.69</PublicIPv4Address>\\n <Ipv6Address>2001:db8:1:1:1:1:1:1</Ipv6Address>\\n <PrivateIPv4HcStatus>Healthy</PrivateIPv4HcStatus>\\n <PrivateIPv6HcStatus>Healthy</PrivateIPv6HcStatus>\\n </LoadBalancerAddresses>\\n <Status>Active</Status>\\n </ZoneMappings>\\n <BandwidthPackageId>cbwp-bp1vevu8h3ieh****</BandwidthPackageId>\\n <SecurityGroupIds>sg-bp10uag3q0jkxu72****</SecurityGroupIds>\\n <CrossZoneEnabled>true</CrossZoneEnabled>\\n <LoadBalancerBillingConfig>\\n <PayType>PostPay</PayType>\\n </LoadBalancerBillingConfig>\\n <DeletionProtectionConfig>\\n <Enabled>true</Enabled>\\n <Reason>实例运行中</Reason>\\n <EnabledTime>2022-12-01T17:22Z</EnabledTime>\\n </DeletionProtectionConfig>\\n <ModificationProtectionConfig>\\n <Status>ConsoleProtection</Status>\\n <Reason>业务保障期</Reason>\\n <EnabledTime>2022-12-01T17:22Z</EnabledTime>\\n </ModificationProtectionConfig>\\n <Tags>\\n <Key>KeyTest</Key>\\n <Value>ValueTest</Value>\\n </Tags>\\n </LoadBalancers>\\n <TotalCount>10</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListLoadBalancersResponse>","errorExample":""}]',
+ 'title' => 'ListLoadBalancers',
+ ],
+ 'GetLoadBalancerAttribute' => [
+ 'summary' => 'Queries the details about a Network Load Balancer (NLB) instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbZQW9H1',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The NLB instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nlb-83ckzc8d4xlp8o****',
+ ],
+ ],
+ [
+ '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' => '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' => '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'DuplicatedParam.%s',
+ 'errorMessage' => 'The param of %s is duplicated.',
+ ],
+ [
+ 'errorCode' => 'OperationFailed.GetXipFailed',
+ 'errorMessage' => 'Operation failed because GetXipFailed.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ResourceNotFound.loadBalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"LoadBalancerName\\": \\"NLB1\\",\\n \\"LoadBalancerType\\": \\"network\\",\\n \\"AddressType\\": \\"Internet\\",\\n \\"AddressIpVersion\\": \\"ipv4\\",\\n \\"Ipv6AddressType\\": \\"Internet\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"LoadBalancerBusinessStatus\\": \\"Normal\\",\\n \\"OperationLocks\\": [\\n {\\n \\"LockType\\": \\"SecurityLocked\\",\\n \\"LockReason\\": \\"业务异常。\\"\\n }\\n ],\\n \\"VpcId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"CreateTime\\": \\"2022-07-02T02:49:05Z\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"DNSName\\": \\"nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com\\",\\n \\"ZoneMappings\\": [\\n {\\n \\"VSwitchId\\": \\"vsw-bp1rmcrwg3erh1fh8****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"LoadBalancerAddresses\\": [\\n {\\n \\"EniId\\": \\"eni-bp12f1xhs5yal61a****\\",\\n \\"PrivateIPv4Address\\": \\"192.168.3.32\\",\\n \\"AllocationId\\": \\"eip-bp1aedxso6u80u0qf****\\",\\n \\"PublicIPv4Address\\": \\"120.XX.XX.69\\",\\n \\"Ipv6Address\\": \\"2001:db8:1:1:1:1:1:1\\",\\n \\"PrivateIPv4HcStatus\\": \\"Healthy\\",\\n \\"PrivateIPv6HcStatus\\": \\"Healthy\\",\\n \\"Ipv4LocalAddresses\\": [\\n \\"192.168.36.16\\"\\n ],\\n \\"Ipv6LocalAddresses\\": [\\n \\"2408:4005:357:ba00:64a2:221f:5685:8854\\"\\n ]\\n }\\n ],\\n \\"Status\\": \\"Active\\"\\n }\\n ],\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"SecurityGroupIds\\": [\\n \\"sg-bp10uag3q0jkxu72****\\"\\n ],\\n \\"CrossZoneEnabled\\": true,\\n \\"LoadBalancerBillingConfig\\": {\\n \\"PayType\\": \\"PostPay\\"\\n },\\n \\"Cps\\": 100,\\n \\"DeletionProtectionConfig\\": {\\n \\"Enabled\\": true,\\n \\"Reason\\": \\"实例运行中\\",\\n \\"EnabledTime\\": \\"2022-11-02T02:49:05Z\\"\\n },\\n \\"ModificationProtectionConfig\\": {\\n \\"Status\\": \\"ConsoleProtection\\",\\n \\"Reason\\": \\"业务保障期\\",\\n \\"EnabledTime\\": \\"2022-12-02T02:49:05Z\\"\\n },\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"KeyTest\\",\\n \\"TagValue\\": \\"ValueTest\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetLoadBalancerAttributeResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <RegionId>cn-hangzhou</RegionId>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n <LoadBalancerName>NLB1</LoadBalancerName>\\n <LoadBalancerType>network</LoadBalancerType>\\n <AddressType>Internet</AddressType>\\n <AddressIpVersion>ipv4</AddressIpVersion>\\n <Ipv6AddressType>Internet</Ipv6AddressType>\\n <LoadBalancerStatus>Active</LoadBalancerStatus>\\n <LoadBalancerBusinessStatus>Normal</LoadBalancerBusinessStatus>\\n <OperationLocks>\\n <LockType>SecurityLocked</LockType>\\n <LockReason>业务异常。</LockReason>\\n </OperationLocks>\\n <VpcId>vpc-bp1b49rqrybk45nio****</VpcId>\\n <CreateTime>2022-07-02T02:49:05Z</CreateTime>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <DNSName>nlb-wb7r6dlwetvt5j****.cn-hangzhou.nlb.aliyuncs.com</DNSName>\\n <ZoneMappings>\\n <VSwitchId>vsw-bp1rmcrwg3erh1fh8****</VSwitchId>\\n <ZoneId>cn-hangzhou-a</ZoneId>\\n <LoadBalancerAddresses>\\n <EniId>eni-bp12f1xhs5yal61a****</EniId>\\n <PrivateIPv4Address>192.168.3.32</PrivateIPv4Address>\\n <AllocationId>eip-bp1aedxso6u80u0qf****</AllocationId>\\n <PublicIPv4Address>120.XX.XX.69</PublicIPv4Address>\\n <Ipv6Address>2001:db8:1:1:1:1:1:1</Ipv6Address>\\n <PrivateIPv4HcStatus>Healthy</PrivateIPv4HcStatus>\\n <PrivateIPv6HcStatus>Healthy</PrivateIPv6HcStatus>\\n </LoadBalancerAddresses>\\n <Status>Active</Status>\\n </ZoneMappings>\\n <BandwidthPackageId>cbwp-bp1vevu8h3ieh****</BandwidthPackageId>\\n <SecurityGroupIds>sg-bp10uag3q0jkxu72****</SecurityGroupIds>\\n <CrossZoneEnabled>true</CrossZoneEnabled>\\n <LoadBalancerBillingConfig>\\n <PayType>PostPay</PayType>\\n </LoadBalancerBillingConfig>\\n <Cps>100</Cps>\\n <DeletionProtectionConfig>\\n <Enabled>true</Enabled>\\n <Reason>实例运行中</Reason>\\n <EnabledTime>2022-11-02T02:49:05Z</EnabledTime>\\n </DeletionProtectionConfig>\\n <ModificationProtectionConfig>\\n <Status>ConsoleProtection</Status>\\n <Reason>业务保障期</Reason>\\n <EnabledTime>2022-12-02T02:49:05Z</EnabledTime>\\n </ModificationProtectionConfig>\\n <Tags>\\n <TagKey>KeyTest</TagKey>\\n <TagValue>ValueTest</TagValue>\\n </Tags>\\n</GetLoadBalancerAttributeResponse>","errorExample":""}]',
+ 'title' => '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ '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****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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<LoadBalancerZonesResponse>',
+ 'description' => 'RpcResponse'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ResourceInConfiguring.loadbalancer',
+ 'errorMessage' => '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.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ResourceNotFound.loadBalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"<StartShiftLoadBalancerZonesResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n</StartShiftLoadBalancerZonesResponse>","errorExample":""}]',
+ 'title' => '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ZoneMappings',
+ '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",
+ '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,
+ ],
+ 'required' => true,
+ 'maxItems' => 1,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the NLB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nlb-83ckzc8d4xlp8o****',
+ ],
+ ],
+ [
+ '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<LoadBalancerZonesResponse>',
+ 'description' => 'RpcResponse'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IncorrectStatus.ZoneId',
+ 'errorMessage' => 'The zoneId status of eni [%s] is incorrect.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.%s',
+ 'errorMessage' => 'Authentication is failed for %s.',
+ ],
+ [
+ '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\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"<CancelShiftLoadBalancerZonesResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n</CancelShiftLoadBalancerZonesResponse>","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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '141889',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbC68LB1',
+ 'FEATUREslb4PUXNB',
+ 'FEATUREslbGDCN1S',
+ 'FEATUREslbUZZGGD',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerProtocol',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '监听协议',
+ 'description' => 'The listener protocol. Valid values: **TCP**, **UDP**, and **TCPSSL**.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'TCP',
+ 'enum' => [],
+ ],
+ ],
+ [
+ 'name' => 'ListenerPort',
+ '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',
+ ],
+ ],
+ [
+ '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' => 'tcp_80',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => 'add 必选',
+ 'description' => 'The ID of the NLB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nlb-83ckzc8d4xlp8o****',
+ ],
+ ],
+ [
+ '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****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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' => 'CertificateIds',
+ 'in' => 'formData',
+ 'style' => 'repeatList',
+ '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"
+ ."\n"
+ .'> You can specify only one server certificate.'."\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 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****',
+ ],
+ 'required' => false,
+ 'maxItems' => 10,
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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 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<CreateListenerResponse>',
+ '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":"<CreateListenerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <ListenerId>lsn-bp1bpn0kn908w4nbw****</ListenerId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</CreateListenerResponse>","errorExample":""}]',
+ 'title' => '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<UpdateOrDeleteListenerResponse>',
+ 'description' => 'RpcResponse<UpdateOrDeleteListenerResponse>',
+ '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":"<DeleteListenerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DeleteListenerResponse>","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<StopOrStartListenerResponse>',
+ '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":"<StartListenerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</StartListenerResponse>","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<StopOrStartListenerResponse>',
+ '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":"<StopListenerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</StopListenerResponse>","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",
+ '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',
+ ],
+ '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',
+ ],
+ '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',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<UpdateOrDeleteListenerResponse>',
+ '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****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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":"<UpdateListenerAttributeResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateListenerAttributeResponse>","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"
+ ."\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"
+ ."\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',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ '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****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'RegionId',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'SecSensorEnabled',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<ListListenersResponse>',
+ 'description' => 'The operation to query listeners.'."\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",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The listeners.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ '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' => '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"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n",
+ 'type' => 'boolean',
+ 'example' => 'false',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SystemBusy',
+ 'errorMessage' => 'System is busy, please try again later.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Listeners\\": [\\n {\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Created\\",\\n \\"Value\\": \\"TF\\"\\n }\\n ],\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"ListenerId\\": \\"lsn-ga6sjjcll6ou34l1et****\\",\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ListenerPort\\": 443,\\n \\"StartPort\\": \\"233\\",\\n \\"EndPort\\": \\"455\\",\\n \\"ListenerDescription\\": \\"tcpssl_443\\",\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"IdleTimeout\\": 900,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_1\\",\\n \\"CertificateIds\\": [\\n \\"123157******\\"\\n ],\\n \\"CaCertificateIds\\": [\\n \\"139a00******\\"\\n ],\\n \\"CaEnabled\\": false,\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"AlpnEnabled\\": false,\\n \\"AlpnPolicy\\": \\"HTTP1Only\\",\\n \\"SecSensorEnabled\\": false,\\n \\"ProxyProtocolEnabled\\": false,\\n \\"ProxyProtocolV2Config\\": {\\n \\"Ppv2VpcIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpsIdEnabled\\": false\\n },\\n \\"Cps\\": 1000,\\n \\"Mss\\": 200\\n }\\n ],\\n \\"TotalCount\\": 4,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListListenersResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <Listeners>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n <ListenerId>lsn-ga6sjjcll6ou34l1et****</ListenerId>\\n <ListenerProtocol>TCPSSL</ListenerProtocol>\\n <ListenerPort>443</ListenerPort>\\n <StartPort>233</StartPort>\\n <EndPort>455</EndPort>\\n <ListenerDescription>tcpssl_443</ListenerDescription>\\n <ServerGroupId>sgp-ppdpc14gdm3x4o****</ServerGroupId>\\n <IdleTimeout>900</IdleTimeout>\\n <SecurityPolicyId>tls_cipher_policy_1_1</SecurityPolicyId>\\n <CertificateIds>12315790212_166f8204689_1714763408_70998****</CertificateIds>\\n <CaCertificateIds>139a00604ad-cn-east-hangzh****</CaCertificateIds>\\n <CaEnabled>false</CaEnabled>\\n <ListenerStatus>Running</ListenerStatus>\\n <RegionId>cn-hangzhou</RegionId>\\n <AlpnEnabled>false</AlpnEnabled>\\n <AlpnPolicy>ALPN</AlpnPolicy>\\n <SecSensorEnabled>false</SecSensorEnabled>\\n <ProxyProtocolEnabled>false</ProxyProtocolEnabled>\\n <Cps>1000</Cps>\\n <Mss>200</Mss>\\n </Listeners>\\n <TotalCount>4</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListListenersResponse>","errorExample":""}]',
+ 'title' => 'ListListeners',
+ ],
+ 'GetListenerAttribute' => [
+ 'summary' => 'Queries the details of a Network Load Balancer (NLB) listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbC68LB1',
+ 'FEATUREslb4PUXNB',
+ 'FEATUREslbGDCN1S',
+ 'FEATUREslbUZZGGD',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'update or delete必选, add在custom中生成',
+ 'description' => 'The listener ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lsn-bp1bpn0kn908w4nbw****@233',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<GetListenerAttributeResponse>',
+ '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",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The server certificates.'."\n",
+ 'type' => 'string',
+ 'example' => '12315790212_166f8204689_1714763408_70998****',
+ ],
+ ],
+ '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",
+ '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****',
+ ],
+ ],
+ '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',
+ ],
+ '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"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n",
+ 'type' => 'boolean',
+ 'example' => 'false',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ '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',
+ ],
+ 'Tags' => [
+ 'description' => 'The tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags for the execution.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SystemBusy',
+ 'errorMessage' => 'System is busy, please try again later.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.loadBalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.listener',
+ 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\",\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@233\\",\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ListenerPort\\": 233,\\n \\"StartPort\\": \\"233\\",\\n \\"EndPort\\": \\"455\\",\\n \\"ListenerDescription\\": \\"tcpssl_443\\",\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"IdleTimeout\\": 900,\\n \\"SecurityPolicyId\\": \\"tls_cipher_policy_1_0\\",\\n \\"CertificateIds\\": [\\n \\"123157******\\"\\n ],\\n \\"CaCertificateIds\\": [\\n \\"139a00******\\"\\n ],\\n \\"CaEnabled\\": false,\\n \\"AlpnEnabled\\": false,\\n \\"AlpnPolicy\\": \\"HTTP1Only\\",\\n \\"ProxyProtocolEnabled\\": false,\\n \\"ProxyProtocolV2Config\\": {\\n \\"Ppv2VpcIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpIdEnabled\\": false,\\n \\"Ppv2PrivateLinkEpsIdEnabled\\": false\\n },\\n \\"SecSensorEnabled\\": false,\\n \\"ListenerStatus\\": \\"Running\\",\\n \\"Cps\\": 1000,\\n \\"Mss\\": 166,\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"ac-cus-tag-4\\",\\n \\"TagValue\\": \\"ON\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetListenerAttributeResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <RegionId>cn-hangzhou</RegionId>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n <ListenerId>lsn-ga6sjjcll6ou34l1et****</ListenerId>\\n <ListenerProtocol>TCPSSL</ListenerProtocol>\\n <ListenerPort>233</ListenerPort>\\n <StartPort>233</StartPort>\\n <EndPort>455</EndPort>\\n <ListenerDescription>tcpssl_443</ListenerDescription>\\n <ServerGroupId>sgp-ppdpc14gdm3x4o****</ServerGroupId>\\n <IdleTimeout>900</IdleTimeout>\\n <SecurityPolicyId>tls_cipher_policy_1_0</SecurityPolicyId>\\n <CertificateIds>12315790212_166f8204689_1714763408_70998****</CertificateIds>\\n <CaCertificateIds>139a00604ad-cn-east-hangzh****</CaCertificateIds>\\n <CaEnabled>false</CaEnabled>\\n <AlpnEnabled>false</AlpnEnabled>\\n <AlpnPolicy>HTTP1Only</AlpnPolicy>\\n <ProxyProtocolEnabled>false</ProxyProtocolEnabled>\\n <SecSensorEnabled>false</SecSensorEnabled>\\n <ListenerStatus>Running</ListenerStatus>\\n <Cps>1000</Cps>\\n <Mss>166</Mss>\\n</GetListenerAttributeResponse>","errorExample":""}]',
+ 'title' => 'GetListenerAttribute',
+ ],
+ 'GetListenerHealthStatus' => [
+ 'summary' => 'Queries the health check status of a Network Load Balancer (NLB) listener.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '142934',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbL239O5',
+ 'FEATUREslbVDXH6N',
+ ],
+ ],
+ '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',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<GetListenerHealthStatusResponse>',
+ 'description' => 'The health check status of the listener.'."\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",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The health check status of the server group of the listener.'."\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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SystemBusy',
+ 'errorMessage' => 'System is busy, please try again later.',
+ ],
+ ],
+ 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\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ListenerHealthStatus\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@80\\",\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"ServerGroupInfos\\": [\\n {\\n \\"HeathCheckEnabled\\": true,\\n \\"ServerGroupId\\": \\"sgp-ppdpc14gdm3x4o****\\",\\n \\"NonNormalServers\\": [\\n {\\n \\"Status\\": \\"Initial\\",\\n \\"Port\\": 80,\\n \\"Reason\\": {\\n \\"ReasonCode\\": \\"CONNECT_TIMEOUT\\"\\n },\\n \\"ServerId\\": \\"i-bp1bt75jaujl7tjl****\\",\\n \\"ServerIp\\": \\"192.168.8.10\\"\\n }\\n ]\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<GetListenerHealthStatusResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ListenerHealthStatus>\\n <ListenerId>lsn-agkd9gmjx8nd85jjs0****</ListenerId>\\n <ListenerPort>80</ListenerPort>\\n <ListenerProtocol>TCPSSL</ListenerProtocol>\\n <ServerGroupInfos>\\n <HeathCheckEnabled>true</HeathCheckEnabled>\\n <ServerGroupId>sgp-ppdpc14gdm3x4o****</ServerGroupId>\\n <NonNormalServers>\\n <Status>Initial</Status>\\n <Port>80</Port>\\n <Reason>\\n <ReasonCode>CONNECT_TIMEOUT</ReasonCode>\\n </Reason>\\n <ServerId>i-bp1bt75jaujl7tjl****</ServerId>\\n <ServerIp>192.168.8.10</ServerIp>\\n </NonNormalServers>\\n </ServerGroupInfos>\\n </ListenerHealthStatus>\\n <TotalCount>10</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</GetListenerHealthStatusResponse>","errorExample":""}]',
+ 'title' => 'GetListenerHealthStatus',
+ ],
+ 'ListListenerCertificates' => [
+ 'summary' => 'Queries the server certificate of a TCP/SSL listener.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '141873',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'CertificateIds',
+ 'in' => 'formData',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The server certificate. Only one server certificate is supported.'."\n"
+ ."\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******',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<ListListenerCertificatesResponse>',
+ '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',
+ ],
+ 'CertificateIds' => [
+ 'description' => 'The server certificates.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The server certificates.',
+ 'type' => 'string',
+ 'example' => '[ "931****-cn-hangzhou"]',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'OperationDenied.Protocol',
+ 'errorMessage' => 'The operation is not allowed because of %s.',
+ ],
+ [
+ 'errorCode' => 'IllegalParam.%s',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.loadbalancer',
+ 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.listener',
+ 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2198BD6D-9EBB-5E1C-9C48-E0ABB79CF831\\",\\n \\"CertificateIds\\": [\\n \\"[ \\\\\\"931****-cn-hangzhou\\\\\\"]\\"\\n ],\\n \\"Certificates\\": [\\n {\\n \\"CertificateId\\": \\"12315790343_166f8204689_1714763408_70998****\\",\\n \\"IsDefault\\": true,\\n \\"Status\\": \\"Associating\\",\\n \\"CertificateType\\": \\"Server\\"\\n }\\n ],\\n \\"TotalCount\\": 1,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListListenerCertificatesResponse>\\n <RequestId>2198BD6D-9EBB-5E1C-9C48-E0ABB79CF831</RequestId>\\n <CertificateIds>[ \\"931****-cn-hangzhou\\"]</CertificateIds>\\n <Certificates>\\n <CertificateId>12315790343_166f8204689_1714763408_70998****</CertificateId>\\n <IsDefault>true</IsDefault>\\n <Status>Associating</Status>\\n <CertificateType>Server</CertificateType>\\n </Certificates>\\n <TotalCount>1</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListListenerCertificatesResponse>","errorExample":""}]',
+ 'title' => 'ListListenerCertificates',
+ ],
+ 'AssociateAdditionalCertificatesWithListener' => [
+ 'summary' => 'Associates additional certificates with a listener that uses SSL over TCP.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '177212',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbEI2GF0',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AdditionalCertificateIds',
+ 'in' => 'formData',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'title' => 'server扩展证书列表',
+ '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****',
+ ],
+ 'required' => true,
+ 'maxItems' => 15,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'ListenerId',
+ 'in' => 'formData',
+ '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',
+ ],
+ ],
+ [
+ '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<AdditionalCertificatesWithListenerResponse>',
+ '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' => '365F4154-92F6-4AE4-93F8-7FF34B540710',
+ ],
+ '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' => '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.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => '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.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'asynchronous',
+ 'callback' => 'Nlb::2022-04-30::GetJobStatus',
+ 'callbackInterval' => 5000,
+ 'maxCallbackTimes' => 10,
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<AssociateAdditionalCertificatesWithListenerResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</AssociateAdditionalCertificatesWithListenerResponse>","errorExample":""}]',
+ 'title' => '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",
+ ],
+ 'DisassociateAdditionalCertificatesWithListener' => [
+ 'summary' => 'Disassociates additional certificates from a listener that uses SSL over TCP.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '177213',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbEI2GF0',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AdditionalCertificateIds',
+ 'in' => 'formData',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'title' => 'server扩展证书列表',
+ 'description' => 'The additional certificates. You can disassociate up to 15 additional certificates 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,
+ ],
+ ],
+ [
+ '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' => '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' => '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** 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<AdditionalCertificatesWithListenerResponse>',
+ 'description' => 'RpcResponse'."\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****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.listener',
+ 'errorMessage' => 'The specified resource %s is not found.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.loadBalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is not found.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'asynchronous',
+ 'callback' => 'Nlb::2022-04-30::GetJobStatus',
+ 'callbackInterval' => 5,
+ 'maxCallbackTimes' => 10,
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DisassociateAdditionalCertificatesWithListenerResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DisassociateAdditionalCertificatesWithListenerResponse>","errorExample":""}]',
+ 'title' => '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ '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' => [],
+ ],
+ ],
+ [
+ 'name' => 'VpcId',
+ 'in' => 'formData',
+ '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****',
+ ],
+ ],
+ [
+ 'name' => 'AnyPortEnabled',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable multi-port forwarding. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false** (default)'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ 'default' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ConnectionDrainEnabled',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '是否开启连接优雅中断',
+ 'description' => 'Specifies whether to enable connection draining. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false** (default)'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ 'default' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ConnectionDrainTimeout',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'Scheduler',
+ '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' => [],
+ ],
+ ],
+ [
+ 'name' => 'PreserveClientIpEnabled',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConfig',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '健康检查配置',
+ 'description' => 'The configurations of health checks.'."\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",
+ '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',
+ ],
+ ],
+ ],
+ '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****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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' => '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 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' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<CreateServerGroupResponse>',
+ 'description' => 'Creates a server group.'."\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****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => '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.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateServerGroupResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</CreateServerGroupResponse>","errorExample":""}]',
+ 'title' => '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbWFW5HS',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ ],
+ [
+ 'name' => 'Servers',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The backend servers that you want to add.'."\n"
+ ."\n"
+ .'> You can add up to 200 backend servers in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The backend server that you want to add.'."\n"
+ ."\n"
+ .'> You can add up to 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 **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',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => true,
+ 'maxItems' => 200,
+ ],
+ ],
+ [
+ '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<AddServersToServerGroupResponse>',
+ 'description' => 'RpcResponse<AddServersToServerGroupResponse>',
+ '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****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => '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' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<AddServersToServerGroupResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</AddServersToServerGroupResponse>","errorExample":""}]',
+ 'title' => 'AddServersToServerGroup',
+ ],
+ 'DeleteServerGroup' => [
+ 'summary' => 'Deletes a Network Load Balancer (NLB) server group.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<DeleteServerGroupResponse>',
+ 'description' => 'RpcResponse<DeleteServerGroupResponse>',
+ '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****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteServerGroupResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DeleteServerGroupResponse>","errorExample":""}]',
+ 'title' => 'DeleteServerGroup',
+ 'description' => 'You can delete server groups that are not associated with listeners.',
+ ],
+ 'RemoveServersFromServerGroup' => [
+ 'summary' => 'Deletes server groups from a Network Load Balancer (NLB) instance.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ ],
+ [
+ 'name' => 'Servers',
+ 'in' => 'formData',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The backend servers. You can specify up to 200 backend servers in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The backend server. You can specify up to 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 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',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => true,
+ 'maxItems' => 200,
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<RemoveServersFromServerGroupResponse>',
+ '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',
+ ],
+ '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****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => '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.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<RemoveServersFromServerGroupResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</RemoveServersFromServerGroupResponse>","errorExample":""}]',
+ 'title' => 'RemoveServersFromServerGroup',
+ ],
+ 'UpdateServerGroupAttribute' => [
+ 'summary' => 'Modifies the configurations of a Network Load Balancer (NLB) server group.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '141878',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbVDXH6N',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '服务器组ID',
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ ],
+ [
+ 'name' => 'ServerGroupName',
+ 'in' => 'formData',
+ 'schema' => [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'IpVersionAffinityMode',
+ 'in' => 'formData',
+ 'schema' => [
+ 'type' => 'string',
+ 'enum' => [
+ 'NonAffinity',
+ 'Affinity',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PreserveClientIpEnabled',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConfig',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'title' => '健康检查配置',
+ 'description' => 'Health check configurations.'."\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',
+ ],
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ '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' => '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 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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<UpdateServerGroupAttributeResponse>',
+ 'description' => 'Updates the configuration of a server group.'."\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****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ResourceNotFound.serverGroup',
+ 'errorMessage' => 'The specified resource of serverGroup is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateServerGroupAttributeResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateServerGroupAttributeResponse>","errorExample":""}]',
+ 'title' => '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb3GOGI0',
+ 'FEATUREslbBEALOE',
+ 'FEATUREslb3DZO9R',
+ 'FEATUREslbWFW5HS',
+ 'FEATUREslbBYQ1MP',
+ 'FEATUREslbYU1H2O',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The server group ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ ],
+ [
+ 'name' => 'Servers',
+ '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,
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<UpdateServerGroupServersAttributeResponse>',
+ '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',
+ ],
+ '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****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.%s',
+ 'errorMessage' => 'Authentication is failed for %s.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => '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.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateServerGroupServersAttributeResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateServerGroupServersAttributeResponse>","errorExample":""}]',
+ 'title' => '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '141872',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbVDXH6N',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupIds',
+ '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,
+ ],
+ ],
+ [
+ '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.'."\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",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.'."\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"
+ ."\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",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Test',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'NextToken',
+ '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****',
+ ],
+ ],
+ [
+ 'name' => 'MaxResults',
+ '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',
+ ],
+ ],
+ [
+ '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<ListServerGroupsResponse>',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SystemBusy',
+ 'errorMessage' => 'System is busy, please try again later.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.%s',
+ 'errorMessage' => 'Authentication is failed for %s.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B28E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ServerGroups\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"ServerGroupName\\": \\"NLB_ServerGroup\\",\\n \\"ServerGroupType\\": \\"Instance\\",\\n \\"AddressIPVersion\\": \\"ipv4\\",\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"Scheduler\\": \\"Wrr\\",\\n \\"Protocol\\": \\"TCP\\",\\n \\"HealthCheck\\": {\\n \\"HealthCheckEnabled\\": false,\\n \\"HealthCheckType\\": \\"TCP\\",\\n \\"HealthCheckConnectPort\\": 200,\\n \\"HealthyThreshold\\": 2,\\n \\"UnhealthyThreshold\\": 3,\\n \\"HealthCheckConnectTimeout\\": 200,\\n \\"HealthCheckInterval\\": 10,\\n \\"HealthCheckDomain\\": \\"$SERVER_IP\\",\\n \\"HealthCheckUrl\\": \\"/test/index.html\\",\\n \\"HealthCheckHttpCode\\": [\\n \\"http_2xx\\"\\n ],\\n \\"HttpCheckMethod\\": \\"GET\\",\\n \\"HealthCheckReq\\": \\"hello\\",\\n \\"HealthCheckExp\\": \\"ok\\",\\n \\"HealthCheckHttpVersion\\": \\"HTTP1.0\\"\\n },\\n \\"ConnectionDrainEnabled\\": false,\\n \\"ConnectionDrainTimeout\\": 200,\\n \\"PreserveClientIpEnabled\\": true,\\n \\"AnyPortEnabled\\": false,\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"ServerGroupStatus\\": \\"Available\\",\\n \\"AliUid\\": 0,\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"RelatedLoadBalancerIds\\": [\\n \\"nlb-83ckzc8d4xlp8o****\\"\\n ],\\n \\"ServerCount\\": 2,\\n \\"IpVersionAffinityMode\\": \\"Affinity\\"\\n }\\n ],\\n \\"TotalCount\\": 1,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListServerGroupsResponse>\\n <RequestId>54B28E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <ServerGroups>\\n <RegionId>cn-hangzhou</RegionId>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <ServerGroupName>NLB_ServerGroup</ServerGroupName>\\n <ServerGroupType>Instance</ServerGroupType>\\n <AddressIPVersion>ipv4</AddressIPVersion>\\n <VpcId>vpc-bp15zckdt37pq72zv****</VpcId>\\n <Scheduler>Wrr</Scheduler>\\n <Protocol>TCP</Protocol>\\n <HealthCheck>\\n <HealthCheckEnabled>false</HealthCheckEnabled>\\n <HealthCheckType>TCP</HealthCheckType>\\n <HealthCheckConnectPort>200</HealthCheckConnectPort>\\n <HealthyThreshold>2</HealthyThreshold>\\n <UnhealthyThreshold>3</UnhealthyThreshold>\\n <HealthCheckConnectTimeout>200</HealthCheckConnectTimeout>\\n <HealthCheckInterval>200</HealthCheckInterval>\\n <HealthCheckDomain>$SERVER_IP</HealthCheckDomain>\\n <HealthCheckUrl>/test/index.html</HealthCheckUrl>\\n <HealthCheckHttpCode>http2xx</HealthCheckHttpCode>\\n <HttpCheckMethod>GET</HttpCheckMethod>\\n </HealthCheck>\\n <ConnectionDrainEnabled>false</ConnectionDrainEnabled>\\n <ConnectionDrainTimeout>200</ConnectionDrainTimeout>\\n <PreserveClientIpEnabled>true</PreserveClientIpEnabled>\\n <AnyPortEnabled>false</AnyPortEnabled>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <ServerGroupStatus>Available</ServerGroupStatus>\\n <Tags>\\n <Key>Test</Key>\\n <Value>Test</Value>\\n </Tags>\\n <RelatedLoadBalancerIds>nlb-83ckzc8d4xlp8o****</RelatedLoadBalancerIds>\\n <ServerCount>2</ServerCount>\\n </ServerGroups>\\n <TotalCount>1</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListServerGroupsResponse>","errorExample":""}]',
+ 'title' => 'ListServerGroups',
+ 'description' => "\n",
+ ],
+ 'ListServerGroupServers' => [
+ 'summary' => 'Queries servers in a server group of a Network Load Balancer (NLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '141867',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb3GOGI0',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the server group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sgp-atstuj3rtoptyui****',
+ ],
+ ],
+ [
+ 'name' => 'ServerIds',
+ 'in' => 'formData',
+ 'style' => 'repeatList',
+ '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****',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ ],
+ ],
+ [
+ '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',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ ],
+ ],
+ [
+ '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****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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<ListServerGroupServersResponse>',
+ 'description' => 'The operation to query servers.'."\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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SystemBusy',
+ 'errorMessage' => 'System is busy, please try again later.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ResourceNotFound.serverGroup',
+ 'errorMessage' => 'The specified resource of serverGroup is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"Servers\\": [\\n {\\n \\"ServerId\\": \\"i-bp67acfmxazb4p****\\",\\n \\"ServerType\\": \\"Ecs\\",\\n \\"ServerIp\\": \\"192.168.2.1\\",\\n \\"Port\\": 80,\\n \\"Weight\\": 100,\\n \\"ServerGroupId\\": \\"sgp-atstuj3rtoptyui****\\",\\n \\"Description\\": \\"ECS\\",\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"Status\\": \\"Available\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListServerGroupServersResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <Servers>\\n <ServerId>ecs-bp67acfmxazb4p****</ServerId>\\n <ServerType>Ecs</ServerType>\\n <ServerIp>192.168.2.1</ServerIp>\\n <Port>80</Port>\\n <Weight>100</Weight>\\n <ServerGroupId>sgp-atstuj3rtoptyui****</ServerGroupId>\\n <Description>ECS</Description>\\n <ZoneId>cn-hangzhou-a</ZoneId>\\n <Status>Available</Status>\\n </Servers>\\n <TotalCount>10</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListServerGroupServersResponse>","errorExample":""}]',
+ 'title' => 'ListServerGroupServers',
+ ],
+ 'DetachCommonBandwidthPackageFromLoadBalancer' => [
+ 'summary' => 'Disassociates a Network Load Balancer (NLB) instance from an Internet Shared Bandwidth 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' => 'BandwidthPackageId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cbwp-bp1pzf0ym72pu3y76****',
+ ],
+ ],
+ [
+ '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 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' => 'response',
+ 'description' => 'response',
+ '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' => 'OperationDenied.%s',
+ 'errorMessage' => 'The operation is not allowed because of %s.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotAssociated.loadbalancer',
+ 'errorMessage' => 'Thre resource is not associated with loadbalancer.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'ResourceNotFound.loadBalancer',
+ 'errorMessage' => 'The specified resource of loadbalancer is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<DetachCommonBandwidthPackageFromLoadBalancerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</DetachCommonBandwidthPackageFromLoadBalancerResponse>","errorExample":""}]',
+ 'title' => 'DetachCommonBandwidthPackageFromLoadBalancer',
+ ],
+ 'AttachCommonBandwidthPackageToLoadBalancer' => [
+ 'summary' => 'Associates an Internet Shared Bandwidth instance with a Network Load Balancer (NLB) instance.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '141865',
+ 'abilityTreeNodes' => [
+ 'FEATUREslb12YEWG',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the NLB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nlb-83ckzc8d4xlp8o****',
+ ],
+ ],
+ [
+ 'name' => 'BandwidthPackageId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cbwp-bp1pzf0ym72pu3y76****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'JobId' => [
+ 'description' => 'The ID of the asynchronous task.'."\n",
+ 'type' => 'string',
+ 'example' => '72dcd26b-f12d-4c27-b3af-18f6aed5****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 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.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<AttachCommonBandwidthPackageToLoadBalancerResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</AttachCommonBandwidthPackageToLoadBalancerResponse>","errorExample":""}]',
+ 'title' => 'AttachCommonBandwidthPackageToLoadBalancer',
+ ],
+ 'CreateSecurityPolicy' => [
+ 'summary' => 'Creates a custom security policy for a TCP/SSL listener.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '141883',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbAZREFH',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'TlsVersions',
+ 'in' => 'formData',
+ 'style' => 'repeatList',
+ '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",
+ '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',
+ ],
+ 'required' => true,
+ 'maxItems' => 4,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ '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',
+ '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"
+ ."\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 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',
+ ],
+ 'required' => true,
+ 'maxItems' => 32,
+ ],
+ ],
+ [
+ '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' => '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. 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,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<CreateSecurityPolicyResponse>',
+ 'description' => 'RpcResponse<CreateSecurityPolicyResponse>',
+ '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****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IllegalParam',
+ 'errorMessage' => 'The param of %s is illegal.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicyId\\": \\"sp-wuytp9pa******\\",\\n \\"JobId\\": \\"72dcd26b-f12d-4c27-b3af-18f6aed5****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateSecurityPolicyResponse>\\n <RequestId>D7A8875F-373A-5F48-8484-25B07A61F2AF</RequestId>\\n <SecurityPolicyId>tls-bp14bb1e7dll4f****</SecurityPolicyId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</CreateSecurityPolicyResponse>","errorExample":""}]',
+ 'title' => 'CreateSecurityPolicy',
+ ],
+ 'DeleteSecurityPolicy' => [
+ 'summary' => 'Deletes a custom TLS security policy from a Network Load Balancer (NLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SecurityPolicyId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the TLS security policy.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tls-bp14bb1e7dll4f****',
+ ],
+ ],
+ [
+ '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 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<DeleteSecurityPolicyResponse>',
+ 'description' => 'RpcResponse<DeleteSecurityPolicyResponse>',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ResourceInUse.SecurityPolicy',
+ 'errorMessage' => 'The specified resource of SecurityPolicy is in use.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ResourceNotFound.securitypolicy',
+ 'errorMessage' => 'The specified resource of securitypolicy is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteSecurityPolicyResponse>\\n <RequestId>D7A8875F-373A-5F48-8484-25B07A61F2AF</RequestId>\\n</DeleteSecurityPolicyResponse>","errorExample":""}]',
+ 'title' => 'DeleteSecurityPolicy',
+ ],
+ 'UpdateSecurityPolicyAttribute' => [
+ 'summary' => 'Modifies the configurations of a security policy for a Network Load Balancer (NLB) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '141876',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbGDCN1S',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'TlsVersions',
+ '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,
+ ],
+ ],
+ [
+ 'name' => 'SecurityPolicyId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the TLS security policy.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tls-bp14bb1e7dll4f****',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'Ciphers',
+ '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"
+ ."\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 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',
+ ],
+ 'required' => false,
+ 'maxItems' => 32,
+ ],
+ ],
+ [
+ '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<UpdateSecurityPolicyAttributeResponse>',
+ '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":"<UpdateSecurityPolicyAttributeResponse>\\n <RequestId>D7A8875F-373A-5F48-8484-25B07A61F2AF</RequestId>\\n <SecurityPolicyId>tls-bp14bb1e7dll4f****</SecurityPolicyId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UpdateSecurityPolicyAttributeResponse>","errorExample":""}]',
+ 'title' => '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',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SecurityPolicyIds',
+ '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,
+ ],
+ ],
+ [
+ 'name' => 'SecurityPolicyNames',
+ '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,
+ ],
+ ],
+ [
+ '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' => 'ResourceGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The resource group ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'rg-atstuj3rtop****',
+ ],
+ ],
+ [
+ '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****',
+ ],
+ ],
+ [
+ 'name' => 'MaxResults',
+ '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',
+ ],
+ ],
+ [
+ '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<ListSecurityPolicyResponse>',
+ 'description' => 'The details about the queried TLS security policies.'."\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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SystemBusy',
+ 'errorMessage' => 'System is busy, please try again later.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\",\\n \\"SecurityPolicies\\": [\\n {\\n \\"SecurityPolicyId\\": \\"sp-wuytp9pa******\\\\n\\",\\n \\"SecurityPolicyName\\": \\"TLSCipherPolicy\\",\\n \\"TlsVersion\\": \\"TLSv1.0\\",\\n \\"Ciphers\\": \\"ECDHE-ECDSA-AES128-SHA\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"Test\\",\\n \\"Value\\": \\"Test\\"\\n }\\n ],\\n \\"RelatedListeners\\": [\\n {\\n \\"ListenerId\\": \\"lsn-bp1bpn0kn908w4nbw****@443\\",\\n \\"ListenerPort\\": 443,\\n \\"ListenerProtocol\\": \\"TCPSSL\\",\\n \\"LoadBalancerId\\": \\"nlb-83ckzc8d4xlp8o****\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"SecurityPolicyStatus\\": \\"Available\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListSecurityPolicyResponse>\\n <RequestId>D7A8875F-373A-5F48-8484-25B07A61F2AF</RequestId>\\n <SecurityPolicies>\\n <SecurityPolicyId>tls-bp14bb1e7dll4f****</SecurityPolicyId>\\n <SecurityPolicyName>TLSCipherPolicy</SecurityPolicyName>\\n <TlsVersion>TLSv1.0</TlsVersion>\\n <Ciphers>ECDHE-ECDSA-AES128-SHA</Ciphers>\\n <RegionId>cn-hangzhou</RegionId>\\n <Tags>\\n <Key>Test</Key>\\n <Value>Test</Value>\\n </Tags>\\n <RelatedListeners>\\n <ListenerId>lsn-bp1bpn0kn908w4nbw****</ListenerId>\\n <ListenerPort>443</ListenerPort>\\n <ListenerProtocol>TCPSSL</ListenerProtocol>\\n <LoadBalancerId>nlb-83ckzc8d4xlp8o****</LoadBalancerId>\\n </RelatedListeners>\\n <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n <SecurityPolicyStatus>Available</SecurityPolicyStatus>\\n </SecurityPolicies>\\n <TotalCount>10</TotalCount>\\n <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n <MaxResults>20</MaxResults>\\n</ListSecurityPolicyResponse>","errorExample":""}]',
+ 'title' => 'ListSecurityPolicy',
+ ],
+ 'ListSystemSecurityPolicy' => [
+ 'summary' => 'Queries the default TLS policy.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ '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<ListSystemSecurityPolicyResponse>',
+ 'description' => 'The operation to query the default TLS policy.'."\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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '179098',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbZQW9H1',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NewResourceGroupId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the new resource group.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'rg-aekzjcnrv3vvqhq',
+ ],
+ ],
+ [
+ 'name' => 'ResourceType',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the resource.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nlb-nrnrxwd15en27r****',
+ ],
+ ],
+ [
+ 'name' => 'RegionId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The region ID of the resource.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<MoveResourceGroupResponse>',
+ 'description' => 'RpcResponse<MoveResourceGroupResponse>',
+ '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****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IllegalParam.resourceType',
+ 'errorMessage' => 'The param of resourceType is illegal.',
+ ],
+ [
+ 'errorCode' => 'OperationFailed.StatusCheckFail.ResourceGroup',
+ 'errorMessage' => 'The operation failed because of StatusCheckFail.ResourceGroup.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'GetJobStatus' => [
+ 'summary' => 'Queries the result of an asynchronous operation performed on a Network Load Balancer (NLB) instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<GetJodResponse>',
+ 'description' => 'RpcResponse<GetJodResponse>',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SystemBusy',
+ 'errorMessage' => 'System is busy, please try again later.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ResourceNotFound.JobId',
+ 'errorMessage' => 'The specified resource of JobId is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"Status\\": \\"Succeeded\\"\\n}","errorExample":""},{"type":"xml","example":"<GetJobStatusResponse>\\n <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n <Status>Succeeded</Status>\\n</GetJobStatusResponse>","errorExample":""}]',
+ 'title' => 'GetJobStatus',
+ ],
+ 'ListAsynJobs' => [
+ 'summary' => 'Queries the results of multiple asynchronous operations performed on a Network Load Balancer (NLB) instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '259936',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbZQW9H1',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ '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******',
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SystemBusy',
+ 'errorMessage' => 'System is busy, please try again later.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.NoPermission',
+ 'errorMessage' => 'Authentication is failed for NoPermission.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ResourceNotFound.JobId',
+ 'errorMessage' => 'The specified resource of JobId is not found.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'TagResources' => [
+ 'summary' => 'Adds tags to specified resources.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '141891',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbTUH0QC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of the resources. You can specify up to 50 resource IDs in each call.'."\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,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ '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 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,
+ ],
+ ],
+ [
+ 'name' => 'ResourceType',
+ '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',
+ ],
+ ],
+ [
+ '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<BaseResult>',
+ 'description' => 'Add tags to resources.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IllegalParam',
+ 'errorMessage' => 'The param of %s 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.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"<TagResourcesResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</TagResourcesResponse>","errorExample":""}]',
+ 'title' => 'TagResources',
+ ],
+ 'UntagResources' => [
+ 'summary' => 'Removes tags from resources.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '141866',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbTUH0QC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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****',
+ ],
+ 'required' => true,
+ 'maxItems' => 50,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'TagKey',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The keys of the tags that you want to remove. You can remove at most 20 tags in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The key of the tag that you want to remove. 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,
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ResourceType',
+ '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',
+ ],
+ ],
+ [
+ '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. 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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'RegionId',
+ 'in' => 'formData',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<BaseResult>',
+ 'description' => 'Removes tags.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IllegalParam',
+ 'errorMessage' => 'The param of %s 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\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"<UntagResourcesResponse>\\n <RequestId>54B48E3D-DF70-471B-AA93-08E683A1B45</RequestId>\\n <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>\\n</UntagResourcesResponse>","errorExample":""}]',
+ 'title' => 'UntagResources',
+ ],
+ 'ListTagResources' => [
+ 'summary' => 'Queries the tags of a resource.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '141863',
+ 'abilityTreeNodes' => [
+ 'FEATUREslbS3YPBZ',
+ 'FEATUREslb01BKVK',
+ ],
+ ],
+ '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',
+ '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,
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'formData',
+ 'style' => 'flat',
+ '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 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",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'product',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'NextToken',
+ '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****',
+ ],
+ ],
+ [
+ 'name' => 'MaxResults',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'RegionId',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'RpcResponse<ListTagResourcesResponse>',
+ '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',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ 'endpoints' => [
+ [
+ 'regionId' => 'cn-qingdao',
+ 'endpoint' => 'nlb.cn-qingdao.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-beijing',
+ 'endpoint' => 'nlb.cn-beijing.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-zhangjiakou',
+ 'endpoint' => 'nlb.cn-zhangjiakou.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-zhengzhou-jva',
+ 'endpoint' => 'nlb.cn-zhengzhou-jva.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-wulanchabu',
+ 'endpoint' => 'nlb.cn-wulanchabu.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou',
+ 'endpoint' => 'nlb.cn-hangzhou.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai',
+ 'endpoint' => 'nlb.cn-shanghai.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-nanjing',
+ 'endpoint' => 'nlb.cn-nanjing.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-fuzhou',
+ 'endpoint' => 'nlb.cn-fuzhou.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shenzhen',
+ 'endpoint' => 'nlb.cn-shenzhen.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-heyuan',
+ 'endpoint' => 'nlb.cn-heyuan.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-guangzhou',
+ 'endpoint' => 'nlb.cn-guangzhou.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-chengdu',
+ 'endpoint' => 'nlb.cn-chengdu.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-wuhan-lr',
+ 'endpoint' => 'nlb.cn-wuhan-lr.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hongkong',
+ 'endpoint' => 'nlb.cn-hongkong.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-northeast-1',
+ 'endpoint' => 'nlb.ap-northeast-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-northeast-2',
+ 'endpoint' => 'nlb.ap-northeast-2.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-1',
+ 'endpoint' => 'nlb.ap-southeast-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-3',
+ 'endpoint' => 'nlb.ap-southeast-3.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-5',
+ 'endpoint' => 'nlb.ap-southeast-5.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-6',
+ 'endpoint' => 'nlb.ap-southeast-6.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'us-east-1',
+ 'endpoint' => 'nlb.us-east-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'us-west-1',
+ 'endpoint' => 'nlb.us-west-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'eu-west-1',
+ 'endpoint' => 'nlb.eu-west-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'eu-central-1',
+ 'endpoint' => 'nlb.eu-central-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-south-1',
+ 'endpoint' => 'nlb.ap-south-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'me-east-1',
+ 'endpoint' => 'nlb.me-east-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai-finance-1',
+ 'endpoint' => 'nlb.cn-shanghai-finance-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shenzhen-finance-1',
+ 'endpoint' => 'nlb.cn-shenzhen-finance-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-7',
+ 'endpoint' => 'nlb.ap-southeast-7.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-beijing-finance-1',
+ 'endpoint' => 'nlb.cn-beijing-finance-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'me-central-1',
+ 'endpoint' => 'nlb.me-central-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-heyuan-acdr-1',
+ 'endpoint' => 'nlb.cn-heyuan-acdr-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'na-south-1',
+ 'endpoint' => 'nlb.na-south-1.aliyuncs.com',
+ ],
+ ],
+];